jueves, abril 19, 2007

Ya ha llegado el libro

Ahora mismo acabo de recibir el libro que pedí hace unos días: Software Libre: Herramientas de Seguridad, ha llegado en perfecto estado, no tiene ni un rasguño, y el cd pues también ha venido bien. El cd contiene las herramientas de seguridad explicadas en el libro así como algo de documentación, ya lo veré mas despacio, al igual que el libro, ya que ahora mismo iba a empezar a hacer la tarea, pero queridos lectores me he acordado de vosotros y he pensado voy a informarles ahora mismo. He hecho un par de fotos, no se ve muy bien, están hechas con el móvil, pero bueno aquí están:


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 ;-)