Bettercap - Una herramienta completa, modular y de fácil uso para realizar ataques Man-In-The-Middle estudiada a fondo.
Buen día a todos nuestros lectores, hoy vamos a explicarles las principales funciones de esta poderosa herramienta, así como su instalación, principales funciones y sus modos de uso.
¿Qué es Bettercap?
BetterCAP es una herramienta potente, flexible y portátil creada para realizar varios tipos de ataques MITM contra una red, manipular HTTP , HTTPS y tráfico TCP en tiempo real, buscar credenciales y mucho más.
Ataques Man-In-The-Middle.
En la criptografía y la seguridad informática , un ataque de hombre en el medio (a menudo abreviado a MITM , MitM , MIM , MiM o MITMA ) es un ataque donde el atacante secretamente transmite y posiblemente altera la comunicación entre dos partes que creen que son comunicándose directamente entre sí . A través de una analogía de ajedrez se pueden pensar los ataques de hombre en el medio .
Alguien que apenas sabe jugar al ajedrez , afirma que puede jugar dos grandes maestros simultáneamente y ganar un juego o sacar ambos . Espera a que el primer gran maestro haga un movimiento y luego hace este mismo movimiento contra el segundo gran maestro . Cuando el segundo gran maestro responde , Mallory hace el mismo juego contra el primero. El juega todo el juego de esta manera y no puede perder.
Un ataque de hombre en el medio (MITM) es una estrategia similar y puede utilizarse contra muchos protocolos criptográficos . Un ejemplo de ataques de hombre en el medio es la escucha activa , en la que el atacante establece conexiones independientes con las víctimas y transmite mensajes entre ellos para hacerles creer que están hablando directamente entre sí a través de una conexión privada , cuando de hecho la toda la conversación es controlada por el atacante . El atacante debe ser capaz de interceptar todos los mensajes relevantes que pasan entre las dos víctimas e inyectar nuevos . Esto es sencillo en muchas circunstancias ; por ejemplo , un atacante dentro del rango de recepción de un punto de acceso inalámbrico Wi - Fi no cifrado , puede insertarse como un hombre en el medio.
Esta es una descripción genérica, sobre todo porque (si estamos hablando de ataques MITM de red), la lógica y los detalles dependen en gran medida de la técnica que se está utilizando (más en la sección de spoofing).
Sin embargo, podemos simplificar el concepto con un ejemplo. Cuando se conecta a alguna red (su red doméstica, WiFi público, StarBucks, etc.), el router / switch es responsable de reenviar todos sus paquetes al destino correcto, durante un ataque MITM "forzamos" a la red a considerar nuestra dispositivo como el enrutador (nosotros "spoofeamos/suplantamos" la dirección original del ranurador / del interruptor de cierta manera):
Sin embargo, podemos simplificar el concepto con un ejemplo. Cuando se conecta a alguna red (su red doméstica, WiFi público, StarBucks, etc.), el router / switch es responsable de reenviar todos sus paquetes al destino correcto, durante un ataque MITM "forzamos" a la red a considerar nuestra dispositivo como el enrutador (nosotros "spoofeamos/suplantamos" la dirección original del ranurador / del interruptor de cierta manera):
Una vez que esto ocurre, todo el tráfico de la red pasa a través de su computadora en lugar del enrutador/switch legítimo y en ese momento usted puede hacer prácticamente todo lo que quiere, desde sólo sniffear datos específicos (correos electrónicos, contraseñas, cookies, etc de otras personas en su red) hasta interceptar y procesar activamente todas las peticiones de algún protocolo específico con el fin de modificarlas (puede, por ejemplo, reemplazar todas las imágenes de todos los sitios web visitados por todos, eliminar conexiones, etc.).
BetterCap es responsable de proporcionar al investigador de seguridad todo lo que necesita en una sola herramienta que funciona simplemente en sistemas GNU / Linux, Mac OS X y OpenBSD.
BetterCap es responsable de proporcionar al investigador de seguridad todo lo que necesita en una sola herramienta que funciona simplemente en sistemas GNU / Linux, Mac OS X y OpenBSD.
¿Por qué Bettercap?
Usted podría pensar que Bettercap es sólo otra herramienta que ayuda a script-kiddies a dañar las redes ... pero es mucho más que eso, sus casos de uso son muchos, por ejemplo:
* Muchos profesionales de la penetración probadores encontrar un gran compañero en bettercap desde su primer lanzamiento.
* Los ingenieros inversos lo utilizan para invertir o modificar protocolos de red cerrados.
* Los ingenieros inversos lo utilizan para invertir o modificar protocolos de red cerrados.
* Los investigadores de seguridad de Móvil/IoT están aprovechando las capacidades de bettercap para probar la seguridad de los sistemas móviles.
¿Por qué otra herramienta MITM?
Esto es exactamente lo que estás pensando ahora mismo, ¿no? :D Pero permítete pensarlo por 5 minutos más ... lo que deberías estar preguntando es:
¿Existe una herramienta MITM completa, modular, portátil y fácil de extender?
Si su respuesta es "ettercap", permítanme decirles algo:
* Ettercap era una gran herramienta, pero hizo su tiempo.
* Ettercap filtros no funcionan la mayoría de las veces, son obsoletos y difíciles de implementar debido al lenguaje específico en el que se implementan.
* Ettercap es inestable en grandes redes ... intenta lanzar un escaneo en una red más grande que el usual /24.
* A menos que seas un desarrollador de C / C ++, no puedes extender fácilmente ettercap ni crear tu propio módulo.
Además:
* Los módulos MITM e ICMP spoofing en ettercap son completamente inútiles.
* Ettercap no proporciona un sniffer de credenciales inteligente y completamente personalizable, lo hacemos.
Instalación
BetterCap viene empaquetado como una gema de Ruby , lo que significa que necesitará un intérprete Ruby (> = 1.9) y un entorno RubyGems instalado. Además, es totalmente compatible con las plataformas GNU / Linux, Mac OS X y OpenBSD .
Dependencias
Todas las dependencias de Ruby se instalarán automáticamente a través del sistema GEM, sin embargo algunas GEMS necesitan bibliotecas nativas para compilar como son build-essential ruby-dev libpcap-dev, instalalas.
Instalación en Kali Linux:
apt install bettercap
Instalación en ArchLinux (Pentesting).
pacman -S bettercap
Una vez instalado podemos ver las opciones disponibles usando el comando bettercap --help, cómo usuario root.
Opciones generales
Las siguientes son las principales opciones que determinan el comportamiento general de BetterCap, estas opciones no son obligatorias , de hecho bettercap detectará automáticamente todo lo que necesita para trabajar, solo necesitará usar una o más de las siguientes opciones para especificar algunos comportamientos personalizados en casos específicos.
Ejemplos
Atacar objetivos específicos:
sudo bettercap -T 192.168.1.10,192.168.1.11
Ataca un objetivo específico mediante su dirección MAC:
sudo bettercap -T 01:23:45:67:89:10
Atacar una gama de direcciones IP:
sudo bettercap -T 192.168.1.1-30
Atacar una subred específica:
sudo bettercap -T 192.168.1.1/24
Modificar la dirección MAC de la interfaz durante el ataque:
sudo bettercap --random-mac
Opciones
-I, --interface IFACE
BetterCAP detectará automáticamente su interfaz de red predeterminada y la utilizará, si desea hacerla usar otra interfaz (cuando tenga más de uno, digamos eth0 y wlan0 ) puede usar esta opción.
BetterCAP detectará automáticamente su interfaz de red predeterminada y la utilizará, si desea hacerla usar otra interfaz (cuando tenga más de uno, digamos eth0 y wlan0 ) puede usar esta opción.
--use-mac ADDRESS
Cambia la dirección MAC de la interfaz a este valor antes de realizar el ataque.
--random-mac
Cambia la dirección MAC de la interfaz a una aleatoria antes de realizar el ataque.
-G, --gateway ADDRESS
Lo mismo ocurre con la puerta de enlace, o bien permite que bettercap lo detecte automáticamente o especifique manualmente su dirección.
-T, --target ADDRESS1,ADDRESS2
Si no se especifica un destino específico en la línea de comandos, bettercap añadirá como target cada una de las direcciones de la red. Hay casos en los que ya conoce la dirección IP o MAC de su(s) destino(s), en estos casos puede utilizar esta opción.
--ignore ADDRESS1,ADDRESS2
Ignore estas direcciones IP si se encuentran durante la búsqueda de objetivos.
--no-discovery
Hace que bettercap no busque activamente hosts, solo use la cache ARP actual, por defecto desactivada .
--no-target-nbns
Deshabilite la resolución de nombre de host NBNS de destino.
--packet-throttle NUMBER
Número de segundos (puede ser un número decimal) para esperar entre cada paquete a enviar.
--check-updates
Verificará si hay alguna actualización disponible y luego sale.
-h, --help
Muestra las opciones disponibles.
Spoofing
Como se describió anteriormente en la sección de introducción, la suplantación es el corazón de cada ataque MITM. Estas opciones determinarán qué técnica de spoofing utilizar y cómo utilizarla.
BetterCap ya incluye un spoofer ARP (funcionando tanto en modo dúplex completo como medio duplex), un spoofer de DNS y el primer spoofer de ICMP DoubleDirect totalmente funcional y totalmente automatizado en el mundo.
Ejemplos
Utilice el viejo, pero efectivo ARP spoofing:
sudo bettercap o sudo bettercap -S ARP o sudo bettercap --spoofer ARP
Utilice un ataque de suplantación de redireccionamiento ICMP de full duplex :
sudo bettercap -S ICMP o sudo bettercap --spoofer ICMP
Desactivar el spoofing:
sudo bettercap -S NONE o sudo bettercap --spoofer NONE o sudo bettercap --no-spoofing
Prohibir que una dirección IP se conecte a la red (En este caso 192.168.1.2):
sudo bettercap -T 192.168.1.2 --kill
Opciones
-S, --spoofer NAME
Módulo Spoofer a utilizar, disponible: ARP , ICMP , NONE - por defecto: ARP .
Módulo Spoofer a utilizar, disponible: ARP , ICMP , NONE - por defecto: ARP .
--no-spoofing
Deshabilitar spoofing.
--kill
En lugar de reenviar paquetes, este conmutador hará que las conexiones de destino sean eliminadas.
En lugar de reenviar paquetes, este conmutador hará que las conexiones de destino sean eliminadas.
--full-duplex
Habilitar MITM dúplex completo, esto hará el ataque de bettercap entre en el/los objetivo(s) y el enrutador.
Sniffing y recolección de credenciales
El sniffer incorporado es actualmente capaz de diseccionar e imprimir desde la red (o desde un archivo PCAP previamente capturado) las siguientes informaciones:
* URLs visitadas.
* Hosts HTTPS que están siendo visitados.
* HTTP POSTed datos.
* Autenticaciones HTTP Basic y Digest.
* HTTP POSTed datos.
* Autenticaciones HTTP Basic y Digest.
* Cookies HTTP.
* Credenciales de FTP.
* Credenciales de IRC.
* Credenciales POP, IMAP y SMTP.
* Credenciales NTLMv1 / v2 (HTTP, SMB, LDAP, etc).
* Credenciales del protocolo DICT.
* Credenciales del MPD.
* Credenciales NNTP.
* Mensajes DHCP y autenticación.
* Credenciales de inicio de sesión de REDIS.
* RLOGIN credenciales.
* Credenciales SNPP.
Y más!
* Credenciales de FTP.
* Credenciales de IRC.
* Credenciales POP, IMAP y SMTP.
* Credenciales NTLMv1 / v2 (HTTP, SMB, LDAP, etc).
* Credenciales del protocolo DICT.
* Credenciales del MPD.
* Credenciales NNTP.
* Mensajes DHCP y autenticación.
* Credenciales de inicio de sesión de REDIS.
* RLOGIN credenciales.
* Credenciales SNPP.
Y más!
Ejemplos
Utilice bettercap como un sniffer de red local simple:
sudo bettercap --local o sudo bettercap -L
Utilice el archivo capture.pcap en su directorio personal como fuente de paquetes:
sudo bettercap --sniffer-source ~/archivo.pcap
Spoof toda la red y guardar todos los paquetes en el archivo capture.pcap en su directorio personal:
sudo bettercap --sniffer-output ~/archivo.pcap
Spoofear toda la red, pero sólo sniffear tráfico HTTP:
sudo bettercap --sniffer-filter "tcp port http"
Spoofear toda la red y extraer los datos de los paquetes que contienen la palabra "contraseña":
sudo bettercap --custom-parser ".*password.*"
Utilice bettercap como un sniffer de red local simple:
sudo bettercap --local o sudo bettercap -L
Utilice el archivo capture.pcap en su directorio personal como fuente de paquetes:
sudo bettercap --sniffer-source ~/archivo.pcap
Spoof toda la red y guardar todos los paquetes en el archivo capture.pcap en su directorio personal:
sudo bettercap --sniffer-output ~/archivo.pcap
Spoofear toda la red, pero sólo sniffear tráfico HTTP:
sudo bettercap --sniffer-filter "tcp port http"
Spoofear toda la red y extraer los datos de los paquetes que contienen la palabra "contraseña":
sudo bettercap --custom-parser ".*password.*"
Opciones
-X, --sniffer
Habilitar el sniffer.
Habilitar el sniffer.
-L, --local
De forma predeterminada, bettercap sólo analizará los paquetes procedentes de/a otras direcciones de la red, si también desea procesar los paquetes enviados o recibidos desde su propia computadora puede utilizar esta opción (NOTA: habilitará el sniffer).
--sniffer-source FILE
Carga los paquetes del archivo PCAP especificado en lugar de la interfaz de red (NOTA: habilitará el sniffer).
--sniffer-output FILE
Guarda todos los paquetes en el archivo PCAP especificado (NOTA: activará el sniffer).
--sniffer-filter EXPRESSION
Configura el sniffer para usar este filtro BPF (NOTA: habilitará el sniffer).
-P, --parsers PARSERS
Lista separada por comas de analizadores de paquetes para habilitar, * para todos (NOTA: habilitará el sniffer), disponible: COOKIE , CREDITCARD , DHCP , DICT , FTP , HTTPAUTH , HTTPS , IRC , MAIL , MPD , MYSQL , NNTP , NTLMSS , PGSQL , POST , REDIS , RLOGIN , SNMP , SNPP , URL , WHATSAPP , predeterminado a * .
--custom-parser EXPRESSION
Utilice una expresión regular personalizada para capturar y mostrar datos sniffeados. (NOTA: habilitará al sniffer).
Acerca de Proxying.
Bettercap se suministra con un proxy HTTP/HTTPS (con SSL Stripping y HSTS Bypass) y TCP transparente que se puede utilizar para manipular HTTP / HTTPS o tráfico TCP de bajo nivel en tiempo de ejecución, por ejemplo, puede usar el proxy HTTP / HTTPS para inyectar javascripts en los objetivos que visitan páginas (BeEF sería una gran elección: D), reemplazar todas las imágenes, etc o utilizar el TCP para otros protocolos.
Una vez habilitados uno o más proxies, bettercap se hará cargo de las reglas de spoofing y firewall necesarias para redirigir el tráfico de sus objetivos al proxy.
De forma predeterminada, los proxies builtin no harán otra cosa que registrar todas las solicitudes, además puede especificar un "módulo" para usar y podrá cargar uno de los complementos integrados (o los suyos) y manipular todo el tráfico como lo haga me gusta.
De forma predeterminada, los proxies builtin no harán otra cosa que registrar todas las solicitudes, además puede especificar un "módulo" para usar y podrá cargar uno de los complementos integrados (o los suyos) y manipular todo el tráfico como lo haga me gusta.
HTTP / HTTPS
Bettercap trae integrados proxies transparentes HTTP y HTTPS que se pueden utilizar para manipular el tráfico HTTP y HTTPS en tiempo de ejecución (inyectar javascripts en las páginas visitadas, reemplazar las imágenes, etc.). De forma predeterminada, los proxies integrados no harán otra cosa que registrar solicitudes HTTP(S), pero si especifica un argumento --proxy-module , podrá cargar uno de los módulos incorporados (o el suyo) y manipular el tráfico HTTP como te gusta.
Los módulos incorporados son:
InjectJS ( --proxy-module injectjs ): Se utiliza para inyectar código javascript / archivos dentro de páginas HTML.
InjectCSS ( --proxy-module injectcss ): Se utiliza para inyectar código CSS / archivos dentro de páginas HTML.
InjectHTML ( --proxy-module injecthtml ): Se utiliza para inyectar código HTML dentro de páginas HTML.
Los módulos proxy HTTP/HTTPS pueden requerir argumentos de línea de comandos adicionales, siempre es una buena idea mirar sus menús de ayuda específicos:
bettercap --proxy-module NOMBRE_DEL_MODULO -h
Módulo de ejemplo
Puede implementar fácilmente un módulo para inyectar datos en páginas o simplemente inspeccionar las peticiones / respuestas creando un archivo ruby y pasarlo a bettercap con el argumento --proxy-module , lo siguiente es un módulo de ejemplo que inyecta algunos contenidos en la etiqueta de título de cada página html, puede encontrar otros módulos de ejemplos en el repositorio dedicado de módulos proxy.
HTTP
SSL Stripping.SSL stripping es una técnica introducida por Moxie Marlinspike (El creador de Signal Private Messenger, la aplicación de mensajería más segura del mundo) durante BlackHat DC 2009, la descripción del sitio web de esta técnica va como:
"Se secuestrará de forma transparente el tráfico HTTP en una red, observará los enlaces HTTPS y los redireccionamientos y, a continuación, asignará esos vínculos a vínculos HTTP parecidos o enlaces HTTPS similares a homógrafos. "
En resumen, esta técnica reemplazará cada enlace https en páginas web que el objetivo está navegando con http , así que si una página normalmente se veía así:
... <a href = "https://www.facebook.com/"> Iniciar sesión </ a > ...
Durante un ataque de SSL stripping su código HTML se modificará como:
... <a href = "http://www.facebook.com/"> Iniciar sesión </ a > ...
Siendo un ataque MITM, esto nos permite sniffear y modificar páginas que normalmente no podríamos ver.
Desvío HSTS
El SSL stripping funcionó bastante bien hasta 2010, cuando se introdujo la especificación HSTS , Wikipedia dice:"HTTP Strict Transport Security (HSTS) es un mecanismo de política de seguridad web que ayuda a proteger sitios web contra ataques de degradación del protocolo y secuestro de cookies. Permite a los servidores web declarar a los navegadores web (u otros agentes de usuario) que sólo deben interactuar con él mediante conexiones HTTPS seguras y nunca a través del protocolo HTTP inseguro. HSTS es un protocolo de seguimiento de normas IETF y se especifica en RFC 6797. "
Por otra parte las políticas de HSTS se han incorporado a los principales navegadores, lo que significa que ahora, incluso con un ataque SSL stripping ejecutándose, el navegador se conectará a HTTPS de todos modos, incluso si se especifica el esquema http:// , haciendo inútil el ataque.
Por esta razón, Leonardo Nve Egea presentó sslstrip + (o sslstrip2) durante BlackHat Asia 2014. Esta herramienta era una mejora sobre la versión original de Moxie, creada específicamente para eludir las políticas de HSTS. Dado que las reglas HSTS la mayoría de las veces se aplican en base a cada nombre de host, el truco es rebajar los enlaces HTTPS a HTTP y añadir un nombre de dominio secundario personalizado a ellos. Cada enlace resultante no será válido para ningún servidor DNS, pero ya que estamos MITMing podemos resolver estos nombres de host de todos modos.
Tomemos la página de ejemplo anterior:
... <a href = "https://www.facebook.com/"> Iniciar sesión </ a > ...
Un ataque de derivación de HSTS lo cambiará a algo como:
... <a href = "http://wwww.facebook.com/"> Iniciar sesión </ a > ...
Tenga en cuenta que https ha sido degradado a http y www reemplazado por wwww.
Cuando la "víctima" haga clic en ese enlace, no se aplicará ninguna regla HSTS (ya que no hay regla para tal subdominio que acabamos de crear) y el software MITM (BetterCap en nuestro caso) se encargará de la resolución DNS, lo que nos permite ver y alterar el tráfico que se supone no podemos ver.
Demostración
El siguiente video muestra cómo realizar ataques SSL Stripping y HSTS Bypass para capturar las credenciales de inicio de sesión de Facebook de un destino específico.
# Empty lines or lines starting with # will be ignored.
# redirect *.google.com to the attacker ip address
local .*google\.com
# redirect *.microsoft.com to 10.10.10.10
10.10.10.10 .*microsoft\.com
Entonces todo lo que te queda por hacer es ejecutar:
sudo bettercap --dns dns.conf
--dns FILE
Activa el servidor DNS y utiliza este archivo como una tabla de resolución de hosts.
--dns-port PORT
Establecer el puerto del servidor DNS, por defecto es el 5300.
Con esto finalizamos este post acerca de bettercap, si tienen alguna recomendación o duda pueden hacernos saber en los comentarios o en nuestra sala de chat.
Síguenos en Facebook, Twitter y unete a nuestra charla en Riot. También puedes dejar su donación a nuestra cuenta Paypal.
Tomemos la página de ejemplo anterior:
... <a href = "https://www.facebook.com/"> Iniciar sesión </ a > ...
Un ataque de derivación de HSTS lo cambiará a algo como:
... <a href = "http://wwww.facebook.com/"> Iniciar sesión </ a > ...
Tenga en cuenta que https ha sido degradado a http y www reemplazado por wwww.
Cuando la "víctima" haga clic en ese enlace, no se aplicará ninguna regla HSTS (ya que no hay regla para tal subdominio que acabamos de crear) y el software MITM (BetterCap en nuestro caso) se encargará de la resolución DNS, lo que nos permite ver y alterar el tráfico que se supone no podemos ver.
Demostración
El siguiente video muestra cómo realizar ataques SSL Stripping y HSTS Bypass para capturar las credenciales de inicio de sesión de Facebook de un destino específico.
DNS
Si desea realizar spoofing de DNS, debe especificar el argumento en la línea de comandos --dns FILE, donde el valor FILE es el nombre de un archivo compuesto por entradas como las siguientes:# Empty lines or lines starting with # will be ignored.
# redirect *.google.com to the attacker ip address
local .*google\.com
# redirect *.microsoft.com to 10.10.10.10
10.10.10.10 .*microsoft\.com
Entonces todo lo que te queda por hacer es ejecutar:
sudo bettercap --dns dns.conf
--dns FILE
Activa el servidor DNS y utiliza este archivo como una tabla de resolución de hosts.
--dns-port PORT
Establecer el puerto del servidor DNS, por defecto es el 5300.
Con esto finalizamos este post acerca de bettercap, si tienen alguna recomendación o duda pueden hacernos saber en los comentarios o en nuestra sala de chat.
Síguenos en Facebook, Twitter y unete a nuestra charla en Riot. También puedes dejar su donación a nuestra cuenta Paypal.
Muy buen post, de los pocos post tan completos que se encuentran en español, excelente blog.
ResponderBorrarComo podría utilizar bettercap para modificar las imágenes de una pagina? me interesaría saber como hacerlo....
ResponderBorrar