Transferring Files -- FR
đ Introduction
Dans le cadre dâun test dâintrusion, il est frĂ©quent de devoir transfĂ©rer des fichiers vers ou depuis la machine cible. Ces fichiers peuvent ĂȘtre :
Des scripts dâĂ©numĂ©ration (comme
linpeas.sh)Des exploits locaux
Des reverse shells ou payloads personnalisés
Des fichiers de configuration, des résultats, voire des flags.
Quand on dispose dâun shell interactif complet (ex. SSH), cela ne pose pas de difficultĂ©. En revanche, lorsquâon obtient un shell limitĂ© (reverse shell, web shellâŠ), on doit souvent ruser pour transfĂ©rer les fichiers.
Voici les principales mĂ©thodes que jâai Ă©tudiĂ©es et que je peux appliquer selon la situation.
đ MĂ©thode 1 â Serveur HTTP Python + wget ou curl
wget ou curlCâest lâapproche que jâutilise le plus souvent. Elle consiste Ă hĂ©berger le fichier sur ma machine attaquante via un petit serveur HTTP, puis Ă le tĂ©lĂ©charger depuis la machine cible.
đ Ătapes
CÎté attaquant :
Je me place dans le répertoire contenant le fichier à transférer, puis je lance :
python3 -m http.server 8000Cela met en place un serveur HTTP sur le port 8000.
CÎté cible :
Si
wgetest disponible :Si
curlest utilisĂ© :â ïž Cette mĂ©thode suppose que la cible a accĂšs Ă Internet (ou au moins Ă ma machine via lâIP VPN).
đ MĂ©thode 2 â scp (copie via SSH)
scp (copie via SSH)Si jâai des identifiants valides SSH sur la machine cible, je peux envoyer un fichier directement via la commande scp :
Je lâutilise surtout lorsque je suis dans un contexte de post-exploitation et que l'accĂšs SSH est disponible.
đ§Ź MĂ©thode 3 â Encodage en Base64
Certaines machines ne disposent pas de wget, curl, ou ne peuvent pas sortir vers Internet. Dans ce cas, je peux encoder mon fichier en base64, copier/coller la sortie dans le shell distant, puis le décoder.
đ Ătapes
Sur ma machine :
Je copie ensuite la chaßne générée.
Sur la cible :
đ§ Cette mĂ©thode fonctionne mĂȘme dans les contextes trĂšs restreints, bien quâelle soit plus lente et fastidieuse.
â
VĂ©rification de lâintĂ©gritĂ©
a. Vérification du format :
Permet de confirmer que le binaire est valide (ex. ELF 64-bit).
b. Vérification par hash MD5 :
Je compare le hash du fichier original et du fichier transféré :
Les deux valeurs doivent ĂȘtre identiques.
đ SynthĂšse
Python HTTP Server
Shell reverse, machine sortante
Rapide, simple
Nécessite accÚs réseau sortant
SCP
AccĂšs SSH disponible
Sécurisé, direct
Nécessite mot de passe ou clé
Base64
Aucun outil réseau disponible
Fonctionne mĂȘme en environnement trĂšs restreint
Long, fastidieux
đ§ Ce quâil faut retenir
Le transfert de fichiers est une compĂ©tence fondamentale en post-exploitation. La mĂ©thode utilisĂ©e dĂ©pend du contexte rĂ©seau, des outils disponibles et des permissions sur la machine cible. Dans tous les cas, il est crucial de pouvoir sâadapter et de connaĂźtre plusieurs techniques pour pallier les restrictions rencontrĂ©es.
Last updated