Caso práctico de uso de un AP falso

En la pasada entrada vimos cómo instalar un punto de acceso falso (en adelante rogue AP) sin airbase. Aprovechando que ya lo tenemos montado, vamos a ver un caso práctico de cómo aprovechan estos ap para nuestra desgracia...

Imaginad que estáis en la universidad, una cafetería, la casa de tu madre y no disponéis de una red inalámbrica "segura". O mejor, ¿cuántos amigos tenéis que en dichos establecimientos urgan en su móvil para encontrar una red abierta??. O para más inri, nuestro propio móvil nos avisa de que existen redes abiertas disponibles a nuestro alcance...

Claro está, que nos sentimos seguros puesto que disponemos de HTTPS que cifra todas nuestras comunicaciones importantes o, mejor dicho, desde hace un tiempo los protocolos que viajaban en texto plano como http, smtp, ftp, pop se les ha añadido una capa adicional de protección: SSL (Secure Sockets Layer) o protocolo de capa de conexión segura, un adicional al protocolo el cual trabaja con certificados y son utilizados en los protocolos que se mencionaron antes.

Vale, hasta aquí bien... ¿Qué nos puede pasar? ¿quién se va a poner a destripar nuestras conexiones, aparte cifradas (con el trabajo que eso puede suponer)? Acepto webstart como animal acuático....conectando.

Es justamente aquí donde el atacante (en este caso pasivo) hace uso de su Rogue AP y de otra herramienta llamada ssltrip.

Ssltrip no es ni más ni menos que un proxy transparente que reemplaza todas las peticiones HTTPS de una página web por HTTP.

Veamos como la complicación del ataque es desmesurada...

La víctima

Hemos quedado que hemos tenido la desgracia de conectarnos a una red que no conocemos, detrás de la cual hay un señor que se aburre mucho y, por ejemplo, nos disponemos a enviar un mail a nuestra novia...

Veamos qué pasa en la máquina del atacante cinco minutos antes:

Levantamos nuestro rogue AP con el script que confeccionamos en la entrada anterior.

Pasamos a la fase dos del ataque, la de "y se van a poner a descifrar mi conexión si tiene que ser complicadísimo" si en efecto "mu complicao"...

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

iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 10000

sslstrip -l 10000 -a -w captura.cap


Ya está... complicadísimo llevar a cabo este ataque, incluso para más comodidad podemos implementar estas líneas en un script que llamaremos setupsslarip.sh... levantaremos nuestro falso AP y sslstrip al unísono:

Veamos cómo se desarrollan los acontecimientos:
La víctima se conecta a nuestro AP y, como hemos mencionado antes, se conecta al servicio de Gmail y escribe un mensaje a su novia... ¡¡¡Bingo!!! Miramos el archivo captura.cap y entre muchísima información así a vote pronto nos llama la atención la siguiente línea:



Tras conectarse con su móvil Android 4.1.2 podemos ver toda su navegación e incluso el login en Gmail....

Si combinamos esta técnica "tan compleja" con otras que hemos visto estas semanas (que tampoco suponen un trabajo desmesurado) podemos reventar cualquier resquicio de privacidad de nuestra víctima...
 
Un saludo!!!! y sed buenos :P

9 comentarios :

  1. El prerouting no tendría que ir al 443?

    ResponderEliminar
    Respuestas
    1. No es necesario aunque no estaria de mas añadir esta linea....
      iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 10000
      gracias por la observación

      Eliminar
  2. Me ha costado un poco de primeras entender el post pero... ¡¡con qué facilidad nos pueden robar nuestra privacidad!! Y lo peor es que nosotros parte del delito por haber empezado robando internet... es una cadena!

    ResponderEliminar
  3. Y que pasa cuando el navegador usa hsts? En este caso el servidor web denegara la peticion al venir de un puerto 80 no?

    ResponderEliminar
  4. no en el caso https el navegador comunicara por defecto por el 443, lo cual previmos en el prerouting...el problema no viene dado por el puerto....por ejemplo gmail, Parece están utilizando una política estricta https (hsts) apoyado por FF4 y Chrome (pero no IE, obviamente, jajaja), que efectivamente hace sslstrip inútil en estos días... facebook creo que tambien detecta la hacion de despojar a la cabecera , alo cual no se por que nos transfiere a otro server en el cual es posible hacer login....lo investigare....

    Bueno que me estoy liando... si esta bien implementado en el navegador (como es el ejemplo de chrome) hsts mitiga el ataque...no funcionaria ssltrip

    ResponderEliminar
  5. Lo del prerouting del 443 no lo veo. Si el cliente ya ha iniciado una conexión SSL no vas a poder cambiarle la conexión sin que se dé cuenta. SSLstrip contra el cliente solo maneja sesiones HTTP

    ResponderEliminar
    Respuestas
    1. iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 10000....

      SSLStrip está dirigida a hacer engañar al usuario haciéndole pensar que se encuentra en un sitio de Internet con cifrado SSL (HTTPS), cuando en realidad todos los datos están transmitiendo en abierto (HTTP). Luego como tu bien dices y creo que esta esplicado en la entrada...... SSLTRIP se comunica con el cliente por HTTP.....SSLStrip también también puede engañar al servidor HTTP, cuyo presunto cifrado queda anulado aunque el sitio siga comportándose como si funcionara con SSL...

      Podemos 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.

      a no ser que el servidor aplique una politica stricta hsts creo no estoy seguro no e hecho muchas pruevas ya que la entrada es un mero ejemplo...no una tesis doctoral....aunque me esta empezando a picar el gusanillo a ver que se puede sacar con el codigo de moxi....

      un saludo

      Eliminar
    2. Vale, eso suponiendo que entra a gmail, etc desde el navegador y que no estaba ya autenticado. Si usa una app de android en vez de la web y el navegador y ya esta autenticado, no manda ni recibe pass/user, supongo... (token?), en ese caso de poco sirve supongo no?, hoy en dia todos los servicios tiran de app comodas.

      Eliminar
    3. si no me equivoco, la app lo que hace es iniciar sesion que tu no veas si lo hace no quieredecir que no lo haga,, lo mejor en estos casos para estar seguro es provar,provar y provar...

      Eliminar