martes, octubre 09, 2018

Bettercap 2: La evolución de la navaja suiza de red y el poder de los Caplets

Hace un par de años hablé sobre Bettercap y MITMf dos herramientas que permiten llevar a cabo pruebas de ataques en redes IPv4 & IPv6 modernos. Con Bettercap hablamos de la facilidad de uso y de la facilidad de extensión. Respecto a MITMf, quizá una de mis favoritas, hablamos sobre todas las posibilidades que la herramienta ofrece. La primera escrita en Ruby, la segunda en Python. El autor de Bettercap decidió migrar la herramienta al lenguaje Go, dejando atrás a Ruby. Además, la herramienta ha sufrido un cambio de repositorio oficial.

Figura 1: Bettercap 2: La evolución de la navaja suiza de red y el poder de los Caplets

En febrero de este año Evilsocket, investigador de seguridad autor de Bettercap, lanzó un comunicado en su sitio web. Estaba lanzando la segunda generación de Bettercap con el cambio de lenguaje y la reimplementación de la mayoría de funcionalidades.

Figura 2: Comunicado de BetterCap 2.0

Lo interesante de la nueva generación de Bettercap no era solo el disponer de ataques MITM de red modernos, si no poder monitorizar y hacer ataques 802.11 y BLE, incluso desde un macOS. Esto es algo que me llamó la atención, por lo que quise encontrar hueco para probarlo.

¿Qué cosas ha cambiado Bettercap 2?

Realmente son más de las que uno puede pensar. En principio, uno puede pensar que ha perdido en flexibilidad, ya que ahora la herramienta no se ejecuta con parámetros, se ejecuta de forma interactiva como veremos más adelante. Esto realmente la hace más flexible, más configurable, pero uno debe aprender un poco la sintaxis para interactuar.

¿Qué son los Caplets?

Quizá la cosa más interesante, junto a los ataques BLE y WiFi, sea la posibilidad de utilizar Caplets. Un Caplet es un fichero con extensión .cap que implementa un script de Bettercap. No deja de ser un fichero de texto que por cada línea dispone de una instrucción a ejecutar, tal y como ocurre con los ficheros RC de Metasploit.

Figura 3: Caplets en Bettercap 2.0

Dentro del proyecto Bettercap podemos encontrar un repositorio con un gran número de Caplets, que entiendo irá creciendo con el paso del tiempo. Sin duda, una forma sencilla de poder implementar ciertas configuraciones y ataques. Obligatorio echar un ojo al código y a las instrucciones que ejecutan estos caplets.

Interactuando y entendiendo el nuevo Bettercap

Cuando se ejecuta Bettercap aparece un prompt que indica la dirección IP. Si tabulamos en el prompt veremos las diferentes opciones, entre las que encontraremos caplets, de los cuales hablaremos más adelante. Principalmente encontramos módulos como:
Events. Con este módulo podemos controlar el tipo de información visualizamos, aplicar filtro sobre ésta, etcétera. 
Arp. Con este módulo podemos realizar ataques de ARP Spoofing. 
Wifi. Con este módulo se puede monitorizar el estado de redes y montar puntos de acceso de tipo Rogue. 
Wol. Generación de tramas de tipo Wake On Lan. 
http y https proxy. Este tipo de soluciones implementan proxies http y https con diferentes opciones como la inyección de código Javascript, manipulación de tráfico, generación de certificados, SSL Strip, etcétera. 
Net. Este módulo permite sniffar la red a través de una interfaz o de otras. Se puede almacenar la información en un PCAP y mostrar en la interfaz el tipo de tráfico obtenido.  
Servidores Rogue. de tipo MySQL y http. 
Compatibilidad con IPv6. Perfecto para probar todos los ataques del libro de Ataques en rede IPv4 & IPv6.
Figura 4: Funciones de Bettercap 2.0

A modo de ejemplo y de facilidad de uso configuraremos un ataque de tipo ARP Spoofing. Con dos líneas en Bettercap obtenemos el efecto deseado. El comando set, configura el parámetro targets dentro del módulo Spoof, tal y como se puede ver en la imagen siguiente. Una vez configurado los targets se puede arrancar el envenenamiento a través de la instrucción arp.spoof on.

Figura 5: Configurando un arp spoofing

Con la opción help se pueden ver los módulos que hay en ejecución y cuáles no. Es un interesante comando para poder los módulos que disponemos en la herramienta.

Figura 6: Módulos de la herramienta

Ahora si queremos activar el proxy http podemos configurar los siguientes parámetros. Se puede configurar el puerto del proxy, la dirección a la que hacer bind, configurar si queremos SSL Strip a través del proxy, si queremos inyectar código Javascript en el HTML con la opción http.proxy.injectjs o si queremos ejecutar algún tipo de script con la opción http.proxy.script.

Figura 7: Configuración de proxy http

En la siguiente imagen se puede ver cómo se puede configurar el proxy y cómo se activa el sniffer para poder visualizar el tráfico o volcarlo en un fichero.

Figura 8:  Volcado de info de proxy

Aquí se puede jugar con events.stream, ya que si lo configuramos a false no se visualizará por pantalla, pero podemos indicar a net.sniff con el comando set net.sniff.output dónde queremos volcar el buffer de red a un fichero PCAP.

PoC: Funcionando con Caplets

Los caplets son scripts que están para facilitarnos la vida. Es muy interesante abrirlos y ver cómo están configurando Bettercap. Para este pequeño ejemplo vamos a utilizar uno que utiliza el Proxy http para volcarnos el contenido de las peticiones http. Desde el terminal se hace uso del parámetro caplet para indicar el script que queremos utilizar, mientras que con el parámetro eval se puede indicar una serie de instrucciones que queremos ejecutar, serán complementarias a lo que marca el caplet.

Figura 9: Usando un caplet

En este caso, tenemos ahora mismo funcionando el proxy y se ha realizado a través del parámetro eval un ataque de ARP Spoofing como el anterior. Como se puede ver en la imagen, se muestran las cabeceras http y el contenido de formularios y cualquier cosa que vaya en el protocolo.

Figura 10: Caplet funcionando

Por último, indicar que con la opción caplets.update podemos actualizar los scripts disponibles y que automatizan el uso de la herramienta. No dudes en estudiarlos y poder ampliar funcionalidades a través de ellos. Por otro lado, la opción show de caplets permite mostrar el número de caplets disponibles en la máquina por Bettercap2.

Figura 11: Caplets disponibles

Sin duda, una herramienta para estudiar y practicar. Hay que llevarla en la mochila en cualquier Ethical Hacking, ya que su segunda generación aporta una frescura y un potencial más que interesante. Parece que Bettercap es un proyecto muy vivo.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

1 comentario:

  1. POr favor disculpen mi ignorancia pero un ataque arpspoof con bettercap es detectable por los antivirus, si es asi que forma hay de realizarlo sin ser detectado

    ResponderEliminar