En alguna ocasión os he hablado de
MITMf, un framework que implementa diversos ataques basados en interceptar una comunicación y colocarse en medio de ésta. Últimamente están saliendo herramientas que nos ayudan a automatizar y simplificar las pruebas de auditoria de red. Hoy hablaré sobre
Bettercap, una evolución de la famosa navaja suiza de red
Ettercap que ayuda a implementar los
Ataques en redes de datos IPv4& IPv6. Vamos a verlo.
 |
| Figura 1: Bettercap, una katana para realizar ataques de red |
Bettercap está escrito en código
Ruby y se aprovecha de la flexibilidad y potencial de dicho lenguaje. En
la propia página de Bettercap se preguntan, ¿Por qué otra herramienta de
MiTM? y los propios desarrolladores explican este hecho porque
Bettercap es completo, actualizado, modular, portable y fácil de extender por cualquier usuario. Si alguien argumenta que
Bettercap es un
Ettercap le contestan lo siguiente:
 |
| Figura 2: Explicación de por qué utilizar Bettercap |
La instalación de
Bettercap es realmente sencilla. Tiene dependencias, pero ejecutando
gem install bettercap el proceso se lleva a cabo completamente. En caso de necesitar alguna librería se puede utilizar
apt-get para completar el proceso. Una vez instalado, dispondremos de un binario, el cual podremos ejecutar.
Una vez instalado, lo mejor es comprobar todas las opciones que la herramienta proporciona. A continuación se pueden ver las opciones por módulos:
• Spoofing.
• Discovery.
• Sniffer.
• TCP-Proxy.
• HTTP-Proxy.
• HTTPS-Proxy.
• SSLStrip.
• HTTP-Server.
• DNS-Server.
Cada módulo dispone de diversas opciones parametrizables, lo cual hace que la herramienta sea flexible y muy potente. Como primer ejemplo, vamos a ver cómo realizar un
sniffing básico, almacenando lo que pasa por la interfaz de red en un fichero
PCAP. Además, vamos a aplicar un filtro al
sniffer mediante el uso del parámetro
–P.
 |
| Figura 4: Protocolos que pueden analizarse con Bettercap |
Los protocolos “
filtrables” se pueden consultar en la documentación del sitio web de
Bettercap. A continuación se muestran los protocolos que serán tratados por la herramienta:
PoC: Sniffando con Bettercap y aplicando filtros
En esta prueba de concepto se configura
Bettercap como
sniffer. Se debe indicar al
framework que no se quiere realizar
spoofing mediante el parámetro
–no-spoofing, tal y como se puede ver en la imagen. Si analizamos el tráfico que genera
Bettercap, el módulo de
Discovery está habilitado por defecto, por lo que veremos cómo se está realizando un
ARP Scan de forma constante. Es decir, enviando
ARP Request a todas las direcciones
IP de la red. En la imagen se puede ver como la herramienta nos indica rápidamente las máquinas con las que tenemos conectividad, esto es debido al módulo de
Discovery.
Con el parámetro
–L indicamos a
Bettercap que “
parsée” los paquetes que llegan al equipo, e implícitamente habilita el modo
sniffer, el cual se activa con el parámetro
–X. Por otro lado, el parámetro
–sniffer-output hace que todo lo que llega a la interfaz se almacene en el fichero, en este caso
better.pcap.
 |
| Figura 5: Bettercap en modo sniffer |
En la propia pantalla se puede visualizar las peticiones que se han realizado, aunque todo queda almacenado en el fichero
PCAP. El código de colores ayuda a visualizar la información de manera sencilla y útil.
PoC: ARP Spoofing by default
En esta prueba de concepto configuraremos a
Bettercap con el módulo de
ARP Spoofing y aplicaremos un filtro para poder visualizar el tráfico que sea solo
HTTP o al puerto
80 TCP. El escenario propuesto para esta prueba de concepto es el siguiente:
• Una máquina Windows será la víctima.
• Un router con el que la máquina Windows se comunica para enviar peticiones y tráfico hacia a Internet.
• Una máquina con Kali Linux con Bettercap instalado.
Desde
Bettercap ejecutamos la instrucción
bettercap –sniffer-filter “tcp port 80”. Esto por defecto activa los módulos de
Spoofing,
Discovery y
Sniffer. Hay que recordar que para no habilitar el módulo de
Spoofing habría que indicarlo con el parámetro
–no-spoofing. El filtro nos permite filtrar la información no deseada y centrarnos en lo deseado, en este caso, tráfico
HTTP. Si quisiéramos realizar un
ARP Spoofing contra dos máquinas concretas, podríamos utilizar con el parámetro
–T la dirección
IP a suplantar, por ejemplo
–T 192.168.1.35 y con
–G 192.168.1.1 indicamos la dirección
IP del
router.
 |
| Figura 6: Ataque de ARP Spoofing con Bettercap |
El ataque de suplantación se puede realizar a través de
ARP Spoofing o con
ICMP Redirect. Con el parámetro
–spoofer se puede indicar
ARP,
ICMP o
NONE. Por defecto, si no se indica se lanzará
ARP Spoofing. Además, si no se indican direcciones
IP a las que
spoofear, el ataque se llevará a cabo contra toda la red de ámbito local y todos los equipos que se encuentren disponibles en la red.
PoC: SSL Strip 2 con Bettercap
En esta prueba de concepto vamos a configurar un
SSLStrip+ o
SSLStrip2 de
Leonardo Nve, el cual viene implementado con
Bettercap y se puede utilizar de forma muy sencilla, como ya se vio con
MITMf en el artículo de “
Ataques man in the middle a HSTS: SSLStrip 2 & Delorean”.
Bettercap es compatible con el
SSLStrip de
Moxie Marlinspike, por lo que también se puede utilizar. Configuramos el módulo de
Proxy para reenviar todo el tráfico dirigido al puerto
80 a
Bettercap, le indicamos el
target con el parámetro
–T y con el parámetro
–P le indicamos que “
parsée” las peticiones
POST.
 |
| Figura 7: Ejecución de bettercap en modo proxy |
El parámetro
–proxy-module permite inyectar código
HTML,
CSS o
Javascript. Esto es interesante si se quiere modificar el contenido de un recurso, e intentar ejecutar código del lado del navegador tal y como se hacía con el trabajo de "
Owning bad guys {and mafia} using Javascript botnets". Un posible objetivo podría ser la inyección de código
HTML con intención de lograr un
Phishing en la página o conseguir que el navegador realizara peticiones a un recurso externo el cual devolviera un
exploit.
En la documentación de
Bettercap viene un ejemplo de lo que se verá cuando el
Bypass de
HSTS funcione. Sabemos que el
bypass de
HSTS es parcial y que depende de una serie de condiciones, pero si las cumplimos, la eliminación de la cabecera
HSTS por parte de
Bettercap es fundamental para que nos funcione el ataque. Recordando las condiciones nos encontramos con:
• El navegador Firefox o Chrome no debe tener cacheado el dominio en su caché HSTS, es decir, el Max-Age no debe estar insertado en el navegador. En caso de que esté cacheado durante N segundos, lo que se indique en Max-Age, las peticiones a ese dominio no se realizarán nunca por HTTP, y serán siempre por HTTPS.
• En el caso de tener cacheado dicho dominio o esté en una lista precargada, podríamos realizar un ataque de tipo Delorean, creado por José Selvi. Con este ataque se busca provocar la caducidad de dichas entradas en la caché del navegador. Este ataque se logra interceptando peticiones NTP de las máquinas y llevándolas hacia el futuro.
 |
| Figura 8: Ataque de HSTS bypass cambiando el dominio de la víctima |
En la imagen se puede ver cómo
Bettercap muestra “
Found stripped HTTPS link”. El módulo de
SSLStrip está funcionando y podemos ver cómo todo pasa por nuestro
Proxy, el cual hemos arrancado con el parámetro
–proxy. Es fundamental el cambio de las “
www” a las “
wwww”. Estamos apoyándonos en un servidor
DNS que está devolviendo la dirección
IP del mismo
Facebook en este caso.
 |
| Figura 9: Ataque ejecutado con éxito saltándose el sistema HSTS |
Si analizamos las peticiones
POST nos encontramos con información jugosa. Por ejemplo,
SSLStrip+ nos ha funcionado y vemos como el usuario introdujo su dirección de
e-mail y su
contraseña “dadada”. Las peticiones pueden verse en texto plano, cuando en un uso normal estarían protegidas bajo
HTTPS, pero de esta forma tenemos acceso al contenido.
 |
| Figura 10: Captura de credenciales en texto plano |
Conclusión final
Bettercap es una herramienta llena de posibilidades con la que podemos realizar gran parte de los ataques de red modernos y que permite ser ampliada de forma sencilla gracias al lenguaje sobre el que está programada. Sin duda,
Bettercap es una de las herramientas que debemos llevar en la mochila en una auditoria interna y/o de red.
Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking" y “Pentesting con Powershell”