elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 07:34  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Bypassing DEP.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Bypassing DEP.  (Leído 2,580 veces)
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.781


Toys in the attic.


Ver Perfil
Bypassing DEP.
« en: 21 Febrero 2009, 23:43 »

Hola gente, estuve haciendo un exploit para un pequeño programa vulnerable que hize, para aprender como es el tema del manejo de la heap y stack.
Funciona bien la shellcode me abre el CMD pero solo si le desactivo el DEP, obviamente no puedo pretender que la persona a la q estoy atacando me desactive el DEP asi puedo hackearlo felizmente.

Estuve buscando por todos lados, analizando el exploit ms08_067 netapi de metasploit, pero esta en ruby y mucho no lo entiendo. Tambien estuve leyendo un par de articulos que encontre en un post mas abajo, pero no dan nada concreto. Lo que necesito saber es como tengo q armar el payload, x ejemplo para explotar este programa con DEP desactivado, es asi:

Padding + jmp esp address + shellcode + system() ret address.

Padding: Relleno necesario para llegar a sobreescribir la ret address.
Jmp ESP Address: Direccion en memoria en la cual hay un jmp esp o un call esp.
Shellcode: "codigo arbitrario".
Ret address: Direccion en memoria de mscvrt.system().

Ahora, para explotar con DEP activado, como seria???

Un abrazo
APOKLIPTICO
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Trancek

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
Re: Bypassing DEP.
« Respuesta #1 en: 22 Febrero 2009, 17:00 »

Sin DEP:
Padding + jmp esp address + shellcode + system() ret address.

Con DEP:
Padding + jmp esp address + DesactivarDep+shellcode + system() ret address.


DesactivarDep, si kieres hay un articulo muy bueno en ingles:
http://www.uninformed.org/?v=2&a=4&t=txt


De todas formas te recomiendo k uses shellcodes que sean mas universales y no dependan de direcciones aunque el mismo que usamos para desactivar el DEP usa direcciones harcodeadas.

---------------DesactivarDep----------------------

$evil .= "\x80\x20\x95\x7c";    //mov     al,0x1 -->Salta al cmp
$evil .= "\xff\xff\xff\xff";   //padding -->Tal vez te toque ir jugando con esto al igual que el otro padding, para que quede bien.
$evil .= "\xf8\xd3\x91\x7c";   //cmp     al,0x1 -->Luego va saltando hasta llegar donde queremos, mirar abajo
$evil .= "\xff\xff\xff\xff";    //padding

Bueno para que no sea muy largo ahi tienes un pekeño resumen, te tocara ir viendo con el olly los registros y demas para cambiar cosas,
acuerdate de cambiar las direcciones, pero suelen ser muy parecidas en windows xp, x ej en el mio era distinta.

En el documento iras viendo mejor, por ejemplo en el ms08-067, solo se usaba una direccion en este varias para llegar al tema interesante
que es lo siguiente, que hace que se desactive DEP de forma rapida y puedas explotar ese programa.

//Codigo y argumentos para desactivar DEP

7c935d6d 6a04             push    0x4
7c935d6f 8d45fc           lea     eax,[ebp-0x4]
7c935d72 50               push    eax
7c935d73 6a22             push    0x22
7c935d75 6aff             push    0xff
7c935d77 e8b188fdff       call    ntdll!ZwSetInformationProcess (7c90e62d)
7c935d7c e9c076feff       jmp  ntdll!LdrpCheckNXCompatibility+0x5c (7c91d441)

Espero que te sirva, sino ahi te dejo un enlace de un documento sobre un exploit que hice saltandome el DEP

http://ricardonarvaja.info/WEB/CONCURSOS%202008/CONCURSO%206/Concurso%206%20-%205%20-Explotar%20DAP%20con%20proteccion%20DEP%20-%20Trancek%20.rar
En línea

APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.781


Toys in the attic.


Ver Perfil
Re: Bypassing DEP.
« Respuesta #2 en: 22 Febrero 2009, 17:15 »

Gracias! esto es justo lo q buscaba...


PD: preguntas
1) Como hago para evitar los 0x7C??? Es que son el caracter "|" y lo tengo q pasar por command line y no se puede...
2) Como consigo las address esas???
3) Si se supone que no puedo ejecutar el jmp esp address, como puede llegar al "DesactivarDep"????
« Última modificación: 22 Febrero 2009, 17:21 por APOKLIPTICO » En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Trancek

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
Re: Bypassing DEP.
« Respuesta #3 en: 22 Febrero 2009, 21:53 »

primero me confundi con las prisas, seria asi:

Padding + DesactivarDep+ jmp esp address shellcode + system() ret address.

Puff para evitar lo 7C, en este caso sta jodido, ya que necesitarias buscar en alguna libreria que lo desactivase el mismo codigo que te puse, el del push 0x4...etc.

Tal vez pudieras hacerlo de otra forma, pero te dije la sencilla, ya se complicaria bastante y en un programa tan sencillo no tienes apenas codigo para andar jugando con saltos para intentar hacer lo k kieras, asi que te va a ser jodido, te aconsejo que lo pruebes con otro que no use el pipe de los huevos jeje.

El tema de buscar las address, no me acuerdo como las busque yo, pero por ejemplo para el cmp al,1 y mov al,1 puedes buscarla con el olly en ntdll(search command) o con programitas especializados que te buscan mejor que el olly(no me se ahora el nombre d ninguno pero los hay, en metasploit creo que esta algo de eso, mira el exploit de hd moore ms08-067 ahi creo k usa la herramienta para buscarlo) y lo otro esta facil, es buscar la llamada:
--
call    ntdll!ZwSetInformationProcess

y que encima tenga el mismo codigo que te puse antes, ya que son los argumentos.

Pero es eso te recomiendo que primero lo intentes con otro programa mas facilillo y que no ande jodiendo con ciertos caracteres, si jode que sea solo con null o algo
En línea

APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.781


Toys in the attic.


Ver Perfil
Re: Bypassing DEP.
« Respuesta #4 en: 22 Febrero 2009, 23:08 »

Te explico, hize un programa simple vulnerable, pero que el payload se le pasa por la linea de comandos...
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Trancek

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
Re: Bypassing DEP.
« Respuesta #5 en: 23 Febrero 2009, 17:41 »

ya vi que le pasabas los argumentos de ese modoen el otro tema, por eso te aconsejo para que vayas iniciandote otro programa que no filtre el 7C u otros caracteres que puedan ser usados en direcciones. Ya que ese metodo es el mas sencillo, y al ser la primera vez si te metes en cosas mas raras t vas a perder, se pierde cualkiera lo se por propia experiencia jeje, asi que si eso pilla un programa aunque sea cmercial de milw0m y modificalo para explotarlo con DEP, con el metodo ese.

Saludos
En línea

Yibam

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Bypassing DEP.
« Respuesta #6 en: 29 Abril 2009, 21:18 »

que pasa Trancek !!!!

Estaba en este for y no te esperaba ver, je je je, que tal?

Te lanzas a un equipo para el concurso 15??? Animate...

Yo estoy acabando el tute del 14 El Maldito Format String, je jeje y en cuanto acabe si quieres nos ponemos ...

Bueno, leyendo lo del DEP, lo que escribes:


Padding + DesactivarDep+ jmp esp address shellcode + system() ret address.

jmp esp address shellcode?? No lo entiendo ...,

Un saludo, nos vemos ...

En línea
Trancek

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
Re: Bypassing DEP.
« Respuesta #7 en: 1 Mayo 2009, 00:41 »

De vez en cuando me paso por aqui, pero me veras mas por crackslatinos estan ahi lso cracks jeje,

<
Padding + DesactivarDep+ jmp esp address shellcode + system() ret address.
>

Lo anterior lo puse porque dijo APO que su bug lo explotaba asi:
Padding + jmp esp address + shellcode + system() ret address.

Pero yibam veras que normalmente va a ser asi:
Padding + jmp esp address + DesactivarDep+shellcode

Lo d system() ret address me imagino que lo usaria para ejecutar algo de la shellcode, ni idea.


La cosa que si quieres ver algo mas interesante del DEP, exale un vistazo al exploit MS08-067 de metasploit, usa otra dll que no es ntdll.dll y solo usa una direccion para bypassear el DEP, ademas creo recordar que no habia un 7C de esos problematicos en el interprete de comandos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bypassing Shelll Problemas
Bugs y Exploits
rikrdo_mat 8 1,407 Último mensaje 18 Diciembre 2010, 07:10
por berz3k
Bypassing AVs inyectando con shells alfanuméricas
Bugs y Exploits
Shell Root 2 1,043 Último mensaje 29 Diciembre 2010, 02:52
por Devilboy.Devil
[XSS] Bypassing de Magics Quotes y otros filtros
Nivel Web
@Sthéfano 0 1,281 Último mensaje 19 Julio 2011, 09:59
por @Sthéfano
DEP bypassing en Windows
Bugs y Exploits
Ivanchuk 2 514 Último mensaje 9 Enero 2012, 22:18
por CloudswX
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines