jueves, 24 de octubre de 2013

Ataque MiTM y SslStrip (Descifrando todo el tráfico HTTPS) Obteniendo Contraseñas

La auditoría se realiza en un entorno formado por una red LAN donde se encuentran varios equipos conectados, todos de mi propiedad.

Para este caso, voy a realizar un ataque en conjunto, donde lo primero que realizaré será un ataque MiTM (Man In The Middle).
Realizar el Ataque MitM

Voy a usar Backtrack 5, la que considero la suite mas completa de pentesting a día de hoy. Abrimos un terminal y en la consola ejecutamos el siguiente comando:

ettercap -G .

ettercap -G
Hacemos clic en Sniff > Unified Sniffing y seleccionamos la interfaz de red. A continuación seleccionamos Hosts > Scan for Hosts y cuando termine el escaneo, se podrá observar los equipos detectados en la red.

Hosts detectados en la red tras el escaneo

Ahora se va a elegir a las víctimas para el ataque MiTM. Iré añadiendo los objetivos, como objetivo 1 (Target 1) incluiré al equipo 192.168.126.141 y como objetivo 2 (Target 2) al Router 192.168.126.2.

El siguiente paso es lanzar el ataque, seleccionamos MiTM > Arp Poisoning > Sniff Remote Connections y aceptamos.

Lanzando el ataque MiTM
Hacemos clic en Start > Start Sniffing y ya tendremos todo lanzado.

Podemos analizar el tráfico mediante la pestaña View > Connections y View > Profiles.

Tráfico capturado hacia la web de Marca.com con la pestaña Profiles

Ahora entra en juego nuestra siguiente carta, SslStrip. Lo primero que realizaré será parar el ataque MiTM desde el menú de Ettercap (Stop MiTM Attack(s)). Si no se hiciese así, pododemos tener problemas con la red y la tabla ARP.

Para lanzar el ataque con SslStrip

1º Volvemos a arrancar ettercap -G en la terminal mientras que en otra terminal ejecutamos lo siguiente:  echo "1" > /proc/sys/net/ipv4/ip_forward

2º Nos aseguramos que está en 1 usando: cat /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/ip_forward  y 
cat /proc/sys/net/ipv4/ip_forward
 3º Del menú de herramientas de Backtrack, seleccionamos  Information Gathering -> Network Analysis -> SSL Analysis -> SSLStrip. En esa misma consola, ejecutamos el siguiente comando sudo python ./setup.py install.

sudo python ./setup.py install
O se puede ejecutar chmod g+x ./sslstrip.py y posteriormente ./sslstrip.py -l

4º Escaneamos los host con Ettercap, lo visualizamos con Hosts List y añadimos los equipos como objetivos. Posteriormente En la pestaña MiTM, hacemos clic en ARP Poisnoning, marcamos la primera casilla y ok. Todo este paso es exactamente igual al que hicimos para el Ataque MiTM.

5º En una consola, ejecutamos el siguiente comando: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080.

Configuración de Iptables
Es muy importante, limpiar o dejar las iptables como estaban, para ello, ejecutamos el mismo comando anterior pero sustituimos el parámetro -A por -D.

6º Abrimos la consola de SslStrip y ejecutamos: sudo sslstrip -l 8080 -w /root/Desktop/log.txt.

Los resultados de la auditoría podemos consultarlos mediante el mismo log que hemos generado:

resultado del sslstrip en el log.txt

O podemos consultarlo mediante el snifer:

resultado del sslstrip en el sniffer

A partir de este momento, todas las webs por las cuales visite la victima serán visualizadas, además, si se introducen contraseñas en web HTTPS, SslStrip romperá la seguridad y nos mostrará el usuario y contraseña tanto en el fichero log como en el propio sniffer.

¿Es el HTTPS (Protocolo seguro de transferencia de hipertexto) realmente seguro?