El HTTPS (Hypertext Transfer Protocol Secure) nos permite navegar por Internet de forma segura, ya que el navegador web establece una comunicación segura, encriptada y autenticada punto a punto, desde nuestro navegador web hasta el servidor web al que nos estamos conectando. HTTPS es la versión segura de HTTP, ya que en HTTP toda la información se envía sin ningún tipo de encriptación, por lo que si alguien intercepta las comunicaciones, podrá ver absolutamente todo lo que se está enviando y/o recibiendo, incluidas las contraseñas. Hoy en este artículo te vamos a mostrar cómo hacer un Ataque Man in the Middle para capturar tráfico de red y descifrar el tráfico HTTPS por configurar un proxy HTTP/HTTPS usando la popular herramienta bettercap para Linux.

¿Qué es HTTPS y para qué sirve?
Actualmente, la gran mayoría de webs como la de este artículo, webs bancarias, de comercio electrónico en general y un largo etcétera, cuentan con el protocolo HTTPS para dar seguridad a los clientes. HTTPS es la versión segura de HTTP , donde todas las comunicaciones son cifradas y autenticadas punto a punto, además, también se comprueba la integridad de todos los datos. Debemos recordar que el cifrado nos proporciona confidencialidad , es decir, aunque alguien capture el tráfico de datos, no podrá descifrarlo porque todo está encriptado punto a punto, aunque existen técnicas para ponernos en el “medio” de la comunicación y proceder a descifrar dicho tráfico. Autenticación significa que somos quienes decimos ser, es decir, establecemos comunicación con el servidor web, y un tercero no podrá hacerse pasar por nosotros para que la información también le sea enviada. Finalmente, integridad es una característica muy importante de la criptografía, esta nos permite verificar que todos los datos que salen de un origen, llegan a un destino sin ningún tipo de modificación. Si alguien es capaz de interferir en la comunicación de los datos, y los modifica, el protocolo HTTPS (y todos los protocolos que participan) lo detectará automáticamente y no aceptará dichos datos.
HTTPS hace uso del protocolo TLS para brindar seguridad a sus comunicaciones, la gran mayoría de las conexiones HTTPS hacen uso de TLSv1.2 y TLSv1.3 , este último protocolo es mucho más rápido y también más seguro que TLSv1.2, ya que solo admite ciertos conjuntos de cifrado seguro, no permite la incorporación de conjuntos de cifrado menos seguros como lo hace con TLSv1.2. Por supuesto, al usar TLS, a continuación hacemos uso del popular protocolo de capa de transporte TCP en su puerto 443 por defecto. En el caso de HTTP, por defecto se usa TCP directamente en su puerto 80, esto es muy importante que lo sepas por lo que te explicaremos próximamente.
Características e instalación de Bettercap
Bettercap es una herramienta muy poderosa que es compatible con las principales distribuciones basadas en Linux, algunas de sus principales características son las siguientes:
- Escaner de redes WiFi, permite ataques de desautenticación, también permite ataques sin clientes a asociaciones PMKID, permite capturar handshakes de clientes que usan protocolos WPA y WPA2.
- Escáner de dispositivos BLE (Bluetooth Low Energy) para leer y escribir información.
- Escáner de dispositivos inalámbricos que utilizan la banda de 2.4 GHz, como ratones inalámbricos, también permite ataques MouseJacking con inyección de datos.
- Permite ataques pasivos y activos a redes IP
- Permite realizar ataques MitM basados en ARP, DNS y también DHCPv6, para capturar toda la información.
- Permite crear un proxy HTTP/HTTPS para levantar tráfico HTTPS seguro y facilita enormemente el uso de scripts.
- Sniffer de red muy potente para recopilar credenciales de usuario.
- Escáner de puertos muy rápido, aunque para ello mejor usar Nmap que el rey de los escáneres de puertos.
- Tiene una poderosa API REST para realizar ataques fácilmente.
- Incorpora una interfaz gráfica de usuario para facilitar los ataques, aunque la terminal de mando es muy potente.
- Disponemos de una gran cantidad de módulos de diferentes categorías para ampliar funcionalidades.
En las distribuciones de Linux orientadas a la seguridad informática, se puede instalar bettercap por defecto. De lo contrario, tendremos que instalarlo nosotros mismos con todas las dependencias. La forma más fácil de usar Bettercap es usar Docker (versión 17.05 o superior), ya que se encuentra en los repositorios de software de Docker, y simplemente hacer lo siguiente:
docker pull bettercap/bettercap docker pull bettercap/dev
Y lo ejecutamos con:
docker run -it --privileged --net=host bettercap/bettercap -h
En caso de no disponer de Docker, tendremos que compilarlo desde el código fuente y necesitaremos las siguientes dependencias:
- build-essential
- libpcap-dev
- libusb-1.0-0-dev
- libnetfilter-cola-dev
Por ejemplo, en los sistemas operativos basados en Debian, se instala de la siguiente manera:
sudo apt update
sudo apt install golang git build-essential libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev
Posteriormente, tendremos que descargar el código fuente y compilarlo:
git clone https://github.com/bettercap/bettercap
cd mejor tapa
hacer construir
Una vez tengamos instalada esta herramienta de Bettercap podremos empezar a utilizarla, ejecutaremos a través de la consola de «bettercap» y veremos la versión.

Antes de comenzar, también podríamos ejecutar Bettercap con la interfaz gráfica de usuario web, para hacerlo debemos ejecutar el siguiente comando:
bettercap -eval "caplets.update; ui.update; q"
Y para lanzar el entorno gráfico, hacemos lo siguiente:
sudo bettercap -caplet http-ui

Si abrimos el navegador web y ponemos http://127.0.0.1 podremos acceder a la interfaz gráfica de usuario:

El nombre de usuario de la interfaz de usuario web de bettercap es "usuario" y la contraseña es "pasar", tal como aparece en el archivo de configuración:

Una vez accedemos al menú de administración de bettercap a través del navegador, podemos ver los siguientes menús:








Hay muchos ataques que se pueden ejecutar directamente desde la interfaz gráfica de usuario, pero te lo vamos a poner por comandos porque es casi igual de sencillo, sin embargo, también te vamos a enseñar a realizar ciertos ataques a través de la interfaz gráfica. interfaz de usuario.
Para que pueda descifrar las comunicaciones HTTPS
El escenario de prueba en el que hemos realizado todas las pruebas son dos VM en VMware en un entorno NAT, con la subred 192.168.248.0/24 y la puerta de enlace predeterminada 192.168.248.2.
- Máquina atacante: Kali Linux con IP 192.168.248.131
- Máquina víctima: Debian con IP 192.168.248.129
Lo primero que vamos a hacer es ejecutar el típico ataque ARP Spoofing para capturar todo el tráfico, el tráfico HTTPS estará encriptado y no podremos desencriptarlo. También capturaremos el tráfico ICMP, el tráfico TCP y UDP y el tráfico HTTP. Para poder hacer esto, simplemente debemos ejecutar los siguientes comandos:
sudo bettercap
Una vez dentro de bettercap, debemos ejecutar varios comandos para configurar el software. Lo primero que debemos hacer es definir el destino, en nuestro caso la máquina Debian con IP 192.168.248.129. No es necesario poner también la puerta de enlace por defecto.
set arp.spoof.targets 192.168.248.129
arp.parodia en

Si ejecutamos el comando de “ayuda”, bettercap nos dirá todo lo que está funcionando:

Una parte interesante es si ejecutamos “help arp.spoof”, ya que aparecerán todas las opciones disponibles en este módulo. Una de las opciones más interesantes es “arp.spoof.fullduplex”, esta opción permite ARP Spoofing tanto al objetivo como a la puerta de enlace predeterminada (gateway), pero si el router tiene protección contra ataques de ARP Spoofing, el ataque fallará. Nuestra recomendación es que siempre lo actives, por lo tanto, la lista de comandos sería la siguiente:
set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on

Una vez hecho esto, si en Kali Linux ejecutamos Wireshark para capturar todos los paquetes de la interfaz eth0, podremos ver todo el tráfico que entra y sale de la víctima. Si te fijas, tenemos el tráfico ICMP de 192.168.248.129, es decir, el equipo Debian que estamos atacando.

También capturaremos todos DNS, TCP, UDP y todo el tráfico de protocolo, incluido el tráfico cifrado, pero no podremos descifrarlo solo con ARP Spoofing.

Si entramos en bettercap a través del entorno gráfico, podemos hacer lo mismo, e incluso podemos seleccionar hacer un ARP Spoofing a la puerta de enlace predeterminada.
Para realizar este ataque a través de la interfaz gráfica, nos dirigimos a LAN, seleccionamos el objetivo o los objetivos, los agregamos a “arp.spoof.targets” y hacemos clic en “Full-Duplex spoofing”. Veremos la lista de equipos disponibles en la red local, si no aparecen, haga clic en el icono «Play» en el módulo de reconocimiento.

Una vez que sabemos cómo hacer el típico ataque ARP Spoofing, ahora vamos a hacer lo mismo, pero habilitando el proxy HTTP con ssltrip activado, para levantar todas las comunicaciones HTTPS.
Ejecutamos bettercap en Kali Linux como de costumbre:
bettercap
Una vez dentro, debemos configurar bettercap de la siguiente forma:
set http.proxy.sslstrip true
set net.sniff.verbose false
set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on
http.proxy on
net.sniff on
Cuando hayamos hecho esto, si la víctima visita un sitio con HTTPS, automáticamente se convertirá a HTTP y podremos capturar las credenciales del usuario. Abajo podéis ver perfectamente como he intentado iniciar sesión en pccomponentes, y me ha capturado tanto el nombre de usuario (correo electrónico) y también la contraseña. Lógicamente hemos introducido credenciales falsas para no mostrar las nuestras, por lo que devuelve un error 401.

Si navegamos por otros sitios web, también podemos ver todo el tráfico.

Si la web tiene HSTS (HTTP Strict Transport Seguridad) habilitado, no podremos "elevar" el tráfico HTTPS, por lo tanto, todo el tráfico estará encriptado.
¿Qué es HSTS y para qué sirve?
Como has visto, descifrar las comunicaciones HTTPS es muy sencillo, pero no siempre es posible. Actualmente, muchos sitios web utilizan el protocolo HSTS para proteger aún más las comunicaciones de sus usuarios. HSTS, o también conocido como HTTP Strict Transport Security, es una política de seguridad web que previene este mismo ataque que te acabamos de enseñar, gracias al uso de cookies, el servidor web “le dice” al navegador web, que siempre que regrese para acceder a su sitio web, use el protocolo HTTPS, por lo que la comunicación se cifrará punto a punto, e incluso si interceptamos la comunicación rastreando el tráfico, no podremos ver el tráfico intercambiado porque no podemos usar bettercap para "levantar" el TLS cifrado Estas cookies tienen una fecha de caducidad, pero una buena política de configuración (para el servidor web) es establecer un valor muy alto, por ejemplo, un año (max-age = 31536000).
El funcionamiento de HSTS es muy sencillo, existen algunos navegadores web que incorporan por defecto determinadas cookies HSTS, especialmente los “grandes” de Internet como Google y otros muchos tienen sus dominios en la lista de “precarga” de HSTS, por tanto, nosotros nunca podrá acceder a estos dominios a través del protocolo HTTP. Si el navegador detecta que no se puede acceder a este dominio a través de HTTPS, rechaza la conexión y no podremos conectarnos. Si el navegador detecta que el certificado digital del servidor está autofirmado, también denegará la conexión y no podremos conectarnos. De hecho, aunque accedamos al modo incógnito no podremos conectarnos. Todos los navegadores actuales suelen incorporar esta lista para proteger a los usuarios.
En el caso del “resto de Internet” como webs de comercio electrónico, bancos, medios de comunicación y muchos otros, tendremos que entrar al menos una vez, para que se descargue la cookie HSTS en nuestro navegador web y obtengamos esta protección . En este caso, si a partir de la segunda vez, el navegador detecta que no se puede acceder a ese dominio a través de HTTPS, rechazará la conexión y nos dará error al conectar. Además, si el navegador detecta que el certificado digital del servidor está autofirmado, también se denegará la conexión y no podremos conectarnos. Si quieres acceder a este sitio web (por el motivo que sea), deberás utilizar otro navegador web con el que no hayas accedido nunca antes, pero esto no es recomendable porque podrían estar atacándote, mejor no te conectes a la web.
Si queremos realizar un ataque a un usuario y entra en una web con HSTS, el único momento en el que se podría descifrar la conexión es antes de la primera conexión histórica del usuario (porque es un navegador nuevo, un ordenador recién formateado, nunca se ha entrado en esa web etc.) Imaginemos que el usuario víctima ha comprado un portátil nuevo, va a un hotel y se conecta por primera vez al banco con su navegador recién instalado, en este caso podríamos atacarlo porque todavía no lo hace tener la cookie HSTS en su navegador web. Para evitar esto, tenemos la directiva de "precarga" en los servidores web, pero debemos usarla con cuidado porque debemos registrarnos en la lista de precarga de HSTS, de lo contrario, los usuarios tendrán problemas para conectarse.
Como has visto, la política HSTS ayuda a proteger a los usuarios del sitio web de ataques pasivos y activos, esta medida de seguridad es una de las más importantes que se debe configurar en un servidor web, debido a que un atacante MitM tendrá una capacidad mínima para interceptar solicitudes y respuestas entre la víctima y el servidor web.
Bettercap incorpora un “caplet” que nos permite realizar una Ataque de secuestro HSTS y eludir esta protección, se basa en hacer DNS Spoofing y reenviar a la víctima a otro dominio bajo nuestro control, para luego capturar toda la información. Los caplets son scripts de Bettercap que vienen preconfigurados, pero que podemos modificar fácilmente, para descargarlos tenemos que ejecutar los siguientes comandos en la terminal de Linux:
git clone https://github.com/bettercap/caplets.git
cápsulas de cd
sudo make install
Una vez hecho lo ejecutamos poniendo:
bettercap -caplet RUTA
En la siguiente captura de pantalla se puede ver la ejecución del caplet por defecto:

Y aquí está el registro del ataque realizado:

Te recomendamos visitar el sitio web oficial de Bettercap donde encontrarás toda la información sobre esta gran herramienta.