sábado, 11 de diciembre de 2010

SSL al desnudo

Bah! Iba a hablar de Wikileaks pero medio mundo me chafó la idea, pensé en hacer uno de mis manuales simples con ilustraciones para que resulte diver-educativo. Llegó la hora de snifar al mismísimo HTTPS, no por desperdiciar la falsificación de certificados de Cain y Abel, pero si para desnudar a ese SSL tan duro.

Nadie mejor para la definición de concepto de Wikipedia:

Secure Sockets Layer -Protocolo de Capa de Conexión Segura- (SSL) y Transport Layer Security -Seguridad de la Capa de Transporte- (TLS), su sucesor, son protocolos criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Existen pequeñas diferencias entre SSL 3.0 y TLS 1.0, pero el protocolo permanece sustancialmente igual. El término "SSL" según se usa aquí, se aplica a ambos protocolos a menos que el contexto indique lo contrario.

El proceso de petición y respuestas del certificado al servidor se producen como muestra la siguiente imagen para conseguir la comunicación cifrada.




De las manos de Moxie Marlinspike, SSLstrip fue presentada en la concentración de seguridad informática BlackHat en 2009. Una nueva técnica que conseguía mediante un ataque mitm, convertir para la víctima las conexiones HTTPS en HTTP, lo que significaba texto plano en el envío y recepción de los paquetes que viajan en red.

Las pruebas se realizarán como siempre dentro de mi red lan, el primer paso será dirigirnos a la carpeta ipv4 dentro de la ruta /proc/sys/net/ipv4/, editaremos el archivo ip_forward, introduciremos un 1 en vez de un 0 que es el valor por defecto. Desde la shell podemos hacer el paso más rápido con

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

Usaremos Iptables para redirigir el tráfico HTTP, en el ejemplo utilizaremos el puerto 8080 y escribiremos la siguiente sentencia en la shell.

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

Para realizar el mitm, llevaremos a cavo la técnica del ARP Poisoning para conseguir un envenenamiento de las tablas de direcciones MAC de la red lan y engañar al equipo víctima haciéndolo creer que somos la puerta de enlace o gateway de la red.

Suena más enrevesado de lo que es en realidad, utilizaremos el software de arpspoof en mi caso, con la siguiente sentencia.

arpspoof -i interfaz -t ip_víctima ip_router





En la siguiente imagen se puede ver como comienza el envenenamiento de los mensajes ARP.



Ya tenemos todo preparado para ejecutar SslStrip!

sslstrip -w nombre -a -l 8080 http://www.enelpc.com/




De cara a la víctima, haremos la prueba con Gmail, observaremos como en la URL aparece HTTP y no salta obviamente ningún aviso sobre falsificación de certificados como ocurría anteriormente con Cain, gracias a esto el pobre que esté delante no sospechará nada.


 

Una vez introducidos los datos de acceso, le redirigirá automaticamente adentro del correo sin percatarse.



 El log con todo el tráfico guardado, se creará en la carpeta de nuestra sesión de usuario con el nombre elegido al principio del manual, en mi caso www.enelpc.com, lo podremos editar con cualquier editor de texto para observar su contenido. Buscaremos la canela fina que nos gusta, así que iremos directos a la variable php que contiene nuestra contraseña de Gmail, (Passwd).

 


 
Y ahí la tienen aunque prefiero hacerla un borrón antes de que me la robéis a mi, que sois unos listillos... jaja

Saludos 4n4les!

7 comentarios:

  1. que bueno 4n0ny! jeje me pareció interesante probar pero en "echo 1 > /proc/sys/net/ipv4/ip_forward" me dice acceso denegado, aun probando con sudo :S, y una pregunta, si el atacado tiene firewall bloqueará el ataque?

    un saludo!!

    ResponderEliminar
  2. Buenas Anónimo, prueba a darle permisos con chmod al archivo para escritura, posiblemente venga protegida y siempre con sudo. Da igual si tiene un firewall, pues no accedes en ningún momento al equipo, la única forma útil de mitigar el ataque, sería con un anti-arpspoof para prevenir los envenenamiento de direcciones mac, del cual hay varios por internet, pero nadie los suele utilizar en redes locales.

    Saludos!

    ResponderEliminar
  3. uy de Anónimo nada, se me olvidó poner Dr xD interesante tío, me encanta el blog jeje

    ResponderEliminar
  4. Increible
    PD:Me encanta tu blog, siempre con practicas bien explicadas y "diver-educativas" ajaj
    Salu2!!!

    ResponderEliminar
  5. Tapalo un poco que está como llegó al Mundo... >.<

    Saludos Hermano!!...

    ResponderEliminar
  6. Para el que no sepa utilizar los comando o lo que se esta haciendo aqui dejo este aporte: http://www.ac.usc.es/docencia/ASRII/Tema_3html/node11.html saludos!

    ResponderEliminar