4/05/2010

Karmetasploit en Backtrack (I)

Hace algún tiempo a través de PenTestIt descubrí algo que me sorprendió mucho a primera vista: Karmetasploit, en la introducción del proyecto nos cuentan un poco de historia:

"La versión original de KARMA dependía de una versión modificada del controlador Madwifi para tarjetas inalámbricas Atheros. Si bien este enfoque funciona, se limita a los tipos de tarjetas de red que se pueden utilizar y requiere un cierto esfuerzo para mantener el parche con la última versión del código fuente de madwifi. Para remediar esto, los desarrolladores de Aircrack-NG (específicamente Hirte) desarrolló punto de acceso en modo usuario que funciona con cualquier tarjeta inalámbrica que soporte el modo monitor y la inyección. Esta herramienta se llama 'airbase' y fue incluida en la versión 1.0rc1 de Aircrack-ng. No sólo resuelve los límites de hardware de utilizar un controlador madwifi parcheado, también hace mucho más fácil modificar e integrar nuevas funciones."

Después de realizar distintas pruebas(unas con más éxito que otras) siguiendo la información que iba encontrando observé que casi todos utilizaban las distintas posibilidades de combinación que ofrecen Aircrack-ng,
Karma y Metasploit para conseguir disferentes tipos de ataques. Este tema me llamó mucho la atención y se me ocurrió unficar todo esto así que voy a darle unas vueltas al tema a ver que sale de aquí. A las herramientas mencionadas hay que añadir un componente de ingeniería social para conseguir que la víctima se conecte al nuestro punto de acceso pero no va ser necesario, veremos aún teniendo nuestra propia conexión, tendemos a usar las de los demás :).

Como cliente víctima voy a usar un equipo con el sistema operativo Windows 7 ya que la mayoría de los ejemplos que hay por ahí prueban con Windows XP sin actualizar(más adelante entenderemos el porqué). El ataque se va a dividir en dos partes fundamentales:
- Montar el punto de acceso ficticio y dar acceso a las víctimas a Internet.
- Arrancar el Karmetasploit para que capture todo lo que pueda.


Para la primera utilizo la suite Aircrack-ng, más concretamente el paquete airbase-ng, recientemente descubrí una interfaz gráfica que soporta algunas de sus funcionalidades y que me resulta muy cómoda para ahorrarme el reescribir comandos y parámetros al realizar auditorías en redes inalámbricas. Se llama Gerix Wifi Cracker y está incluida en de Backtrack, no hay demasiado en la red sobre su uso, en este video los creadores muestran como utilizarlo para romper una clave WEP:

Creo el punto de acceso falso siguiendo estos pasos:
Paso 1 - Ponemos la tarjeta en modo monitor en la pestaña de Configuración (Enable/Disable Monitor Mode) y vemos que mantiene wlan0 como estaba y crea una nueva(mon0) en modo monitor.
Paso 2 - En Fake AP se configuran los parámetros de la red inalámbrica, la dejaremos sin contraseña, simplemente definiremos un nombre y un canal, marcando la opción Respond to all probes(recomendación de Karmetasploit) . Al arrancarlo se abre un xterm con el comando ejecutado en la cabecera de la ventana para que sepamos los parámetros exactos que se le pasan a airbase-ng:
Ahora si buscamos redes inalámbricas en el equipo cliente vemos que ya aparece la nueva.



Paso 3 - En este punto yo utilizo el siguiente script para compartir la conexión a internet y terminar la configuración del entorno :

#!/bin/bash
## NOTE: Replace YOURESSID with the essid you want
## to connect and its key(ASCII) and YOURIFACE for
## your interface with access to internet.

# delete old database
rm karma.db
# stops running services (if any)
killall dhcpd3
# connects to internet (if not)
ifconfig YOURIFACE down
iwconfig YOURIFACE essid YOURESSID key s:YOURKEY
dhclient YOURIFACE
# shares internet conexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -o YOURIFACE -j MASQUERADE
# ups fake access point interface
ifconfig at0 up 10.0.0.1 netmask 255.255.255.0
# starts dhcp and dns server
dhcpd3 -cf /root/dhcpd.conf at0
# starts tcpdump
tcpdump -i at0 -s 65535 -w capture5 &

Comentarios acerca de el script:
- Tuve que desinstalar el paquete dnsmasq-base porque había conflictos con el dhcpd3 ya que es un servidor DHCP también, entre otras cosas. La salida al arrancarlo dice que hay un error de permisos pero funciona igual.
- Pego a continuación mi fichero de configuración (/etc/dhcp3/dhcpd.conf), utilizo los DNS de Google porque así me ahorro el tener que configurar un servidor(en los ejemplos que ví lo suelen hacer con bind o con el dnsmasq) en la red local.

option domain-name-servers 10.0.0.1;
default-lease-time 60;
max-lease-time 72;
ddns-update-style none;
authoritative;
log-facility local7;

subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.254;
option routers 10.0.0.1;
# Google DNS server
option domain-name-servers 8.8.8.8;
}


- En la página del proyecto aconsejan realizar una captura con tcpdump por si Karmetasploit fallase, en este ejemplo el parámetro -s es para que "esnife" de forma que los paquetes puedan ser analizados posteriormente con el Wireshark.
- Como solo tengo una tarjeta inalámbrica en el equipo usaré
wlan0 para seguir conectado a internet y mon0 para crear la red inalámbrica, esto en teoría debería ser posible pero en la práctica a veces desconecta, lo soluciono reconectandola: iwconfig wlan0 essid ... & dhclient wlan0

Como me estoy alargando mucho dejo la segunda parte del ataque para otra entrada, lo que sí se puede hacer ya es usar algún
sniffer "de toda la vida" ya que todo lo que envía y recibe el usuario pasa por nuestra interfaz at0. Aprovechando que estoy usando el Messenger en el equipo víctima mientras escribo esto voy a probar con dsniff, que creo recordar que tenía una herramienta para capturar conversaciones, tras una pequeña búsqueda en Google... :)



Jesús Pérez