elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Problema al intentar explotar buffer overflow
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al intentar explotar buffer overflow  (Leído 5,484 veces)
Vannox991

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Problema al intentar explotar buffer overflow
« en: 3 Enero 2021, 22:10 pm »

Buenas! Estoy intentando desarrollar un exploit para una vulnerabilidad de un buffer overflow basado en SEH en una aplicación para Windows. Pero me encontré con el siguiente problema;  No encuentro ninguna dll sin safe seh, por lo que no puedo utilizar ninguna dll a mi favor.
Sólo el ejecutable no tiene la protección safe seh, pero todas las direcciones de este comienzan con 0x00, por lo que cuando paso cualquier dirección de estas por el payload sencillamente llegan mal escritas.

Realmente no se como seguir, agradecería mucho si alguien me puede hechar una mano con esto.

Gracias!
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #1 en: 4 Enero 2021, 13:34 pm »

Hola!

Qué binario es? Puedes dar más info? Quizás puedas hacer un shellcode que sólo necesite 1 dirección del ejecutable y la misma pueda pasarse al final del shellcode (para que el 0x00 se tome como fin de string).

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Vannox991

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #2 en: 4 Enero 2021, 14:12 pm »

Hola!

Qué binario es? Puedes dar más info? Quizás puedas hacer un shellcode que sólo necesite 1 dirección del ejecutable y la misma pueda pasarse al final del shellcode (para que el 0x00 se tome como fin de string).

Saludos!


Buenas! Gracias por su respuesta!
Lamentablemente no puedo dar más información sobre el programa ya que la vulnerabilidad la descubrí yo, por lo que se trata de un 0day...

Intentaré explicar mejor el problema:
Este problema me lo encuentro cuando tengo que sobreescibir el SEH Y apuntar hacia las instrucciones pop, pop, ret (instrucciones que las tengo que sacar De alguna dll). Como digo no logró hacer esto ya que todas las dll según me indica el comando !mona modules se encuentran protegidas con safeseh por lo que no logró hacer que el seh apunte a Estas direcciones de estas dll...
Si consigo sobreescibir el seh con éxito, pero Cuando se intenta dirigirse estas direcciones donde se encuentran las instrucciones pop, pop, ret  sencillamente se me genera una excepción causada supongo por el safeseh. Entonces sencillamente no puedo usar ninguna dll. Únicamente el mismo ejecutable me figura sin safe seh, pero este tampoco consigo usarlo con éxito ya que todas las direcciones del ejecutable comienzan con 0x00 por lo que por un motivo que desconozco el seh se sobreescribe mal (llega bien toda la dirección exceptuando por la parte de la misma que contiene el 00)

Es de mis primeras veces intentando explotar un buffer overflow por lo que no soy un experto en el tema. Tampoco entiendo al 100% la teoría por lo que es posible que haya cometido un montón de errores tratando de explicarme, pero creo que ya se entiende mejor mi problema...

Gracias!
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #3 en: 5 Enero 2021, 01:21 am »

Hola!

Prueba colocando todas A'es en el buffer y en el último DWORD pon la dirección del pop-pop-ret del exe (invertida, por supuesto.). El 0x00 final debería tomarse como fin de string y escribirse en el stack.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Vannox991

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #4 en: 5 Enero 2021, 02:21 am »

Hola!

Prueba colocando todas A'es en el buffer y en el último DWORD pon la dirección del pop-pop-ret del exe (invertida, por supuesto.). El 0x00 final debería tomarse como fin de string y escribirse en el stack.

Saludos!

Buenas!

Acabo de intentar lo que dices, pero me da otro problema...
En la "A" número 336 (que es donde se sobreescibe) coloco como me indicas la dirección de la secuencia de comandos pop, pop y ret del ejecutable y luego de eso termino la Sting, paso la String por el programa y se sobreescibe con la dirección correcta... Pero el problema ahora es que la cantidad de caracteres no consigue generar el buffer overflow correctamente, osea que EIP no logra apuntar a la dirección del pop, pop y ret... para que esto suceda me veo obligado a agregar mas valores de "A" al final de la Sting, por lo que volvemos al mismo problema de antes; se sobreescibe el EIP con el valor de la dirección mal escrita (Sale toda la dirección bien menos la parte del 0x00)

Se le ocurre alguna idea?

Gracias por la ayuda!

Un saludo.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #5 en: 6 Enero 2021, 16:29 pm »

Hola!

No coloques las A'es al final, agrégalas en el medio. Lo último del buffer que pasas siempre debe ser la address del pop-pop-ret.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Vannox991

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #6 en: 6 Enero 2021, 19:56 pm »

Hola!

No coloques las A'es al final, agrégalas en el medio. Lo último del buffer que pasas siempre debe ser la address del pop-pop-ret.

Saludos!

Buenas!

Claro, es lo que he intentado; lleno de letras A hasta completar los 332 bytes necesarios para producir el buffer overflow y ahí coloco la dirección del pop pop ret y termino la Sting... Con esto logro que se sobreescriba con la dirección correcta pero por algún motivo el buffer overflow no se produce correctamente. Para que el buffer overflow suceda, por algún motivo necesito agregar mas caracteres después de la posición donde se sobreescibe el Seh...

La Sting que me mencionas sería algo asi: A*332 + nSEH + SEH
Esta Sting consigue sobreescibir con éxito el seh pero por algún motivo el buffer overflow no tiene éxito.

Esta es la Sting que si consigue el buffer overflow, pero con la dirección escrita:  A*332 + nSEH + SEH + A*300

Como se puede apreciar en realidad necesito mas de 600 bytes para que suceda el buffer overflow correctamente, cantidad de bytes que es bastante mayor que la posición donde se sobreescibe el SEH

Espero se haya entendido

Gracias y un saludo!
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Problema al intentar explotar buffer overflow
« Respuesta #7 en: 7 Enero 2021, 00:39 am »

Hola!

Debugea el programa y pon un BP en el 1er pop al que retornas. Así podrás ver qué es lo que está pasando.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema Con Buffer Overflow « 1 2 »
Bugs y Exploits
Blackhawk222 10 6,810 Último mensaje 15 Enero 2011, 08:27 am
por Blackhawk222
Explotar un Buffer Overflow con "limitaciones" (0day en VDJ)
Bugs y Exploits
AlexAltea 5 5,915 Último mensaje 20 Abril 2013, 21:23 pm
por AlexAltea
Problema, return address buffer overflow (Cómo calcular la dirección del buffer?
Bugs y Exploits
Debci 6 7,355 Último mensaje 7 Abril 2014, 20:00 pm
por soez
Problema buffer overflow « 1 2 »
Bugs y Exploits
kr0m_ 19 11,055 Último mensaje 31 Agosto 2014, 21:27 pm
por dRak0
Intentando explotar buffer overflow
Bugs y Exploits
pepitopepote 2 5,089 Último mensaje 29 Noviembre 2017, 20:23 pm
por pepitopepote
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines