jueves, abril 19, 2007

Exploit para airodump-ng 0.7

Hace poco salió el advisory de un buffer overflow en airodump-ng 0.7, que ha día de hoy ya ha sido corregido, el caso es que permite la ejecución de código arbitrario y puede ser ejecutado remotamente, bueno yo me dispuse a explotar esta vulnerabilidad en mi red, montando para ello un laboratorio, el código lo sería compilado en el portátil y atacaría el sobremesa que tiene ubuntu, en el cual no he actualizado a la nueva versión de airodump-ng precisamente para esto. En principio la idea parece fácil, pero tuve varias complicaciones, copio el código a un archivo que llame airodump-remote.c. Y según las instrucciones que vienen en el mismo para compilarlo hay que ejecutar gcc -o airodump-remote airodump-remote.c -lorcon, lo ejecuto, salen muchos errores que según veo es por falta de la librería, bueno, entonces leo nuevamente el comentario que aparece al principio del código y leo que hace falta las librerías inyección wifi lorcon, que se pueden encontrar en http://802.11ninja.net. Antes de ir a esa web a buscarlas se me ocurrió que con un poco de suerte estarían disponibles vía apt, no lo estaban. Asi que nada a la pagina web, y veo que hay que descargar el código del svn del servidor, asi que instalo en mi pc subversion, ya que no lo tenía instalado para poder descargar el código, ejecuto apt-get install subversion, luego para conseguir el código ejecuto: svn co http://802.11ninja.net/svn/lorcon/trunk, voy al directorio donde se ha descargado, cd trunk, y ejecuto ./configure, para que compruebe las dependencias y cree el archivo Makefile adecuado para la compilación. Daba un error, faltaba una libreria del ssl, concretamente ssl.h, así que nada se me ocurrió que los mas lógico es que esta estuviera incluida en el paquete openssl, entonces: apt-get install openssl, ya está listo el configure no me da ningún error, y se ha creado correctamente, compilamos ejecutando make, e instalamos con make install. Salió un mensaje que decía que tenía que añadir la ruta donde se habían instalado a determinadas variables de entorno, este es el mensaje:

Libraries have been installed in:
/usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.


Simplemente pase del mensaje, a ver si por casualidad el exploit ya se compila, efectivamente sale bien la cosa. Lo ejecuto, pero no, da un error, dice que no encuentra una libre
ría compartida (shared library). Así que nada vuelvo a leer el mensaje que me dio al instalar las librerías lorcon, que añada el directorio donde se han instalado las librerías a la variable de entorno LD_LIBRARY_PATH y a LD_RUN_PATH, bueno sigo las indicaciones y miro las paginas man de ld y de ld.so, también mire el archivo /etc/ld.so.conf. No averigüé como hacerlo, pregunté en foro.elhacker.net en el foro de GNU/Linux, pero me interesaba una respuesta rápida, así que busqué en google y encontré la solución, tenía que ejecutar esto:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib

Ahora si que si, ejecuto el exploit ya compilado sin ningún argumento ./airodump-remote. Se ejecuta correctamente y muestra como debe utilizarse, algo que ya había leído en el código fuente. La maquina atacante ya esta lista, solo un detalle, esta es la manera de ejecutarlo:

./airodump-ng [return addr]

Un ejemplo:

./airodump-ng wlan0 prism54 11 1 0x8054934

El problema es que no sé cual es la dirección de retorno en Ubuntu, en el código pone las direcciones de retorno de Bactrack 2, y de Gentoo, así que no me sirve. Recordando algunos de mis conocimientos de C y un poco de google conseguí mas o menos entender parte del código, y creo que en Ubuntu tiene que ser la misma que aparece en el ejemplo que os he puesto arriba, ya lo comprobaré, si no es esa me tocara usar un debugger para comprobar cual es el estado de la variable ret_addr.

El pc de sobremesa que será la víctima solo tiene que ejecutar airodump-ng con la opción -w o --write que es la que se usa para que los datos se guarden. Bueno ya creo que esta todo listo para probarlo, así que lo probare cuando tenga tiempo, lo iba a hacer ayer por la tarde, pero me fui a casa de un amigo a estudiar, así que nada, lo haré cuando tenga tiempo, hoy tampoco podré porque tengo que hacer un trabajo para mañana. Sobre las pruebas que iba a hacer para intentar que honeypot funcionase, pues todavía no he podido hacerlas, cuando tenga tiempo las haré, quizás hoy o mañana, pero me inclino mas por mañana, haré lo que pueda.

Saludos ;-)

7 comentarios:

Unknown dijo...

Hola Neobius. Yo también tengo en casa un equipo de sobremesa y un portátil, y los uso para tener internet en ambas, el sobremesa es el servidor.Aunque todavía uso en ambas el sistema operativo XP. Según veo tu tienes sistemas operativos diferentes en cada equipo para tus experimentos?
Saludos.

Neobius dijo...

Hola Jospi, en el sobremesa tengo instalado Windows XP, Ubuntu Edgy y Troppix (una distro para hacking wireless, aunque ya esta un poco desfasada, ahora es mejor WifiSlax). En el portátil tengo Ubuntu Edgy, Windows Vista y WifiSlax. Por último en el servidor tengo Debian Etch.

Para estudiar seguridad informática conviene tener todas las plataformas, yo dispongo de Windows y de Linux, aunque también me estoy planteando instalar Solaris en alguna maquina, por cierto he pedido unos DVDs de OpenSolaris gratuitamente, según la web me llegaran entre 2 o 4 semanas. Me entere gracias al blog de keinek, si te interesa mira su post:

http://keinek.blogspot.com/2007/04/kit-de-opensolaris-2dvds-entrega-gratis.html

Aunque es cierto que a día de hoy tengo los dvds oficiales de Solaris, me los mandó SUN gratuitamente.

Por no hablar de OpenBSD, es otro sistema operativo que también me interesaría estudiar.

Bueno ya paro de escribir porque sino te voy a escribir aquí un post entero, ya si acaso escribiré algo sobre este tema.

Saludos ;-)

PD: Confirmame una cosa, a ti te interesa la seguridad informática no??

PD2: Esto es una mera curiosidad, que edad tienes jospi?

Unknown dijo...

Hola Neobius. En relación a todos esos sistemas operativos, me llama la atención, si se requiere mucho hardware para instalar un mínimo de sistemas operativos sin que interfieran uno con otro? Me interesa mucho instalar otros sistemas operativos en el hardware que tengo, pero hasta el momento no me he animado por falta de información (no que no haya, sino que no he tenido la decisión de investigar al respecto como ahora, leyendo tu blog me he animado lo suficiente, y voy a iniciar con la recomendación que me haces de Keinek,también lo escuche en el podcast de "Vidas en red".Respecto al PD: SI me interesa la seguridad informática, pero mis conocimientos de programación son pobres al momento, por eso las revistas que me he bajado del foro que me recomendaste van a ser una buena introducción para mi. Realmente me gustan mucho todos los temas, aunque más adelante buscare algo en que especializarme. En relación al PD 2: Te diré que, creo que soy el lector más veterano que tienes..Te cuadriplico la edad exactamente,si es que todavía tienes 15.

Neobius dijo...

Hola Jospi, mira para poder tener varios sistemas operativos no necesitas ningún hardware especial. Yo antes cuando solo tenía un pc de sobremesa normal y corriente tenía en el tres OS (sistemas operativos), y ninguno molestaba al otro, el único inconveniente es que no podia ejecutarlos simultaneamente, ya que un pc solo puede usar un sistema operativo a la vez, a no ser que se haga uso de la virtualización. Luego llego el servidor, un viejo pentium III de segunda mano, y ya tenia dos maquinas, cada una con su sistema operativo sin ningun problema, se entienden perfectamente independientemente del OS que tenga cualquier maquina de la red. Por ultimo el portátil, mas de lo mismo.

Puedes instalarte los OS que quieras sin que interfieran unos con otros.

Otra cosa, si quieres probar otros sistemas operativos puedes empezar por el que quieras pero yo antes que con solaris empezaría con algún linux amigable para empezar a familiariazarme con los entornos linux/unix, te recomendaria mejor algo tipo Ubuntu, que tambien puedes pedir cds si así lo deseas, la dirección para hacerlo es:

https://shipit.ubuntu.com

Otra cosa mas, si te interesa la seguridad informática lee, lee y lee y aprenderás, eso es lo que hago yo y ahora se mucho mas que lo que sabia hace tres años, cuando empecé :-)

Ya por último, todavía tengo 15 años, entonces tu tienes 60 no?? no se porque pero yo creía que tu tenías entre 20 y 30 años.

Saludos Jospi ;-)

PD: En tu último comentario dices que te interesa la seguridad informática pero que tus conocimientos de programación son pobres. No pasa nada, yo tampoco se mucho de programación, se algunas cosillas básicas, pero poco mas, no es ningún obstaculo no saber programación, aunque si la aprendes puedes ser un complemento muy útil. No te digo que no sea necesario, yo quiero aprender solo que ahora me dedico a otra cosa, pero es una de mis cosas pendientes, sin embargo cada día aprendo mas sobre seguridad informática y todavía no he aprendido a programar.

Unknown dijo...

Muchas Gracias Neobius por tus consejos, Bueno, me sorprendo que la edad te la he dado mal,exactamente no se porque te puse ese múltiplo,tengo 40 o sea que no calculaste tan mal como yo :).Saludos y seguimos en contacto.Ya pedi los cd´s de solaris, pero mejor inicio con Ubuntu como tu dices.., ya he visto el blog de Bravatsky o como se escriba, igual por tu recomendación y lo explica con un video.Saludos.

Neobius dijo...

Bueno y ubuntu vas a pedir el cd o te lo vas a descargar tu mismo? en cualquier caso espero que sea una buena experiencia.

Ah, el blog de Varsavsky, yo también lo leo, vi ese vídeo del que me hablas, la verdad es que no estaba nada mal. En general a mi me gusta bastante su blog o videoblog, porque teniendo en cuenta la cantidad de vídeos que pone...

Saludos Jospi ;-)

Anónimo dijo...

uuuuuuuuuuuuuuyyyyyyyyy las weonas se aman .... jospi y neobius ... amor eterno las yeguas JAJAJAJA