SSH: Tunel para navegar

Tras ver como Ettercap se merienda las tramas en texto plano, vamos a ver una contramedida antes de continuar la saga para crear un túnel SSH entre 2 puntos, tener en cuenta que la parte segura es la comunicación entre el cliente SSH y el servidor SSH, si comprometen al servidor estamos fucked, vayamos a la teoría:

ssh-tunnel

En resumen, crearemos un túnel entre nuestro cliente y el servidor donde las tramas irán cifradas, así pues dando por hecho que ya tenemos nuestro servidor montado vayamos a los posibles clientes:

Linux

ssh -D 9999 usuario@servidor -N

-D PUERTO_LOCAL Tunel SOCKS

-N no muestra la shell

Windows

Nos descargamos un cliente SSH como PuTTY y preparamos la conexión:

PuTTYconexionUbuntu

Vamos a la parte de SSH> Tunel y agregamos un nuevo tunnel de esta manera:

PuTTY

Tras agregarlo, volvemos a Sessions y creamos la sesión:

PuTTYSession

Ya estamos listos para el tunel

Android

Como diría el gran Juan Garrido, Simple y llanamente tenemos un túnel escuchando en nuestro puerto 9999 que enviara las peticiones a nuestro servidor SSH, ahora solo tenemos que configurarlo en nuestro navegador preferido como proxy SOCKS:

FirefoxConfSOCKSFirefox > Preferences / Opciones > Avanzado> Red > Configuración

Ahora si nuestro querido atacante intercepta el trafico mientras visitamos una de nuestros blogs favoritos vera algo parecido a esto:

L0ngin0x

wireCapturaCaptura SSL

En la siguiente entrada profundizaremos un poco más de MiTM versus SSH

Ettercap IV – ?: SSL

Anteriormente vimos como SSL evitaba que pudiésemos realizar un MiTM, ya que al ir cifrados por clave publica/privada aunque el atacante comprometa la conexión es incapaz de ver su contenido, pero en vez de daros la chapa de leer, la chica de Google os lo cuenta:

Por suerte (o desgracia) Ettercap a través de IPTABLES puede redireccionar el trafico dando un certificado falso que no esta firmado por una CA reconocida, para ello editamos el fichero etter.conf que puede estar o en /etc/etter.conf o C:\Archivos de programa\EttercapNG\share\etter.conf en Windows, yo como no se lo pregunto a BackTrack:

whereis

Editamos el fichero(s)  y tenemos que cambiar el UID y el GID a 0 para que use los permisos de Root y descomentar la linea de IPTABLES que pone redirect_command_on y redirect_command_off:

etterConfecc_uid =0

ecc_gid = 0

etterConf2

Si ahora lanzamos el ataque normal y corriente, los navegadores al no conocer el origen del certificado desconfiaran y nos mostrar un mensaje que seguro que os suena:

GoogleFirefox

Chrome

ChromeIEIE

Que decir, de nuevo la ultima palabra la tiene el usuario, siendo este el que escoge si añadirlo a Excepciones o no corriendo su propio riesgo, sin duda una alerta destacable es el caso de Chrome esta en rojo y no nos deja continuar, cosa que siempre asusta más…

Sí conseguimos que el usuario lo considere benigno, habremos asaltado la capa SSL y ettercap sera capaz de cazar las passwords:

SSLPassword

En wireshark no lo vemos por que el certificado se crea automáticamente cada vez que se reclama un certificado, en el man de Ettercap te lo cuentan:

HelpEttercapSSL

Para añadir un certificado en Wireshark basta con ir a Edit > Preferences > Protocols > SSL > Edit RSA List y añadir el certificado:

WiresharkSSLConf

 Edit > Preferences > Protocols > SSL >

Espero que os haya gustado y nos vemos en la próxima!