¡Hola! En este segundo artículo sobre el Bash Bunny explicaré paso a paso cómo crear nuestro primer payload.
Lo primero que tenemos que saber es que estos payloads normalmente están escritos en un lenguaje sospechosamente parecido a BASH, llamado Bunny Script, por lo que es muy recomendable saber algo de este lenguaje antes de ponernos a crearlo.
Bunny Script
El Bunny Script tiene una serie comandos para hacer todo el payload.- ATTACKMODE sirve para especificar la combinación de dispositivos a emular, como podría ser una tarjeta de red, un teclado o un dispositivo de almacenamiento.
- QUACK, introduce una pulsación de tecla, una cadena o le podemos indicar un archivo .txt con un Ducky Script.
- LED, controla el color y el estado del led. Aparte de indicarle un color, podemos indicarle unos patrones ya preestablecidos, como puede ser FINISH, FAIL o SETUP.
- Q, es un alias de QUACK.
- DUCKY_LANG sirve indicar el idioma del teclado que se usa para el QUACK.
Modos de ataque
Los distintos modos de ataque son:- SERIAL
- ECM_ETHERNET
- RNDIS_ETHERNET
- AUTO_ETHERNET*
- STORAGE
- HID
- OFF
Creando el script
Una vez visto un poco de
LED SETUP
ATTACKMODE AUTO_ETHERNET |
GET TARGET_IP
GET TARGET_HOSTNAME |
La carpeta /root/udisk es la misma que vemos cuando conectamos el conejo en modo armado.
Ahora antes de continuar vamos a comprobar por si no se ha asignado la IP al equipo para abortar el script si fuera necesario. Antes de salirnos le indicamos que ponga el led en FAIL.
if [ -z "${TARGET_IP}" ]; then
LED FAIL exit 1 fi |
LED ATTACK
nmap -O $TARGET_IP >> /root/udisk/loot/${TARGET_HOSTNAME}.log |
nmap $NMAP_OPTIONS $TARGET_IP >> /root/udisk/loot/${TARGET_HOSTNAME}.log
Una vez hecho esto, simplemente le hacemos un sync para sincronizar los datos y evitar perderlos. Antes de hacerlo ponemos el led en modo CLEANUP y al finalizar, FINISH.
LED CLEANUP
sync LED FINISH |
Hay que aclarar, que el modo del led no influye para nada en el funcionamiento del aparato, simplemente es para que nosotros veamos rápidamente cómo va el ataque.
Y para los que seáis de copiar y pegar el script directamente, aquí lo tenéis:
LED SETUP
ATTACKMODE AUTO_ETHERNET GET TARGET_IP GET TARGET_HOSTNAME if [ -z "${TARGET_IP}" ]; then LED FAIL exit 1 fi LED ATTACK nmap $NMAP_OPTIONS $TARGET_IP >> /root/udisk/loot/${TARGET_HOSTNAME}.log LED CLEANUP sync LED FINISH |
Probando el payload
Todo esto es muy bonito, pero ahora vamos a verlo realmente en acción.
Para ello, lo primero que hay que hacer es introducir el payload en una de las carpetas (switch1 o switch2) habiendo conectado previamente el conejo en modo armado.
Una vez puesto el payload, extraemos el equipo con seguridad y procedemos a ponerlo en el modo de ataque que corresponda.
Si te has quedado con ganas de indagar más, puedes ver la wiki oficial ( https://wiki.bashbunny.com/#!payload_development.md ).
Y, ¡ya sólo faltaría enchufarlo en algún tu ordenador!.
Para que se vea lo que tardaría este ataque en completarse podemos ver el siguiente video:
Si te has quedado con ganas de indagar más, puedes ver la wiki oficial ( https://wiki.bashbunny.com/#!payload_development.md ).
Un saludo, Rafa Sojo (@RaSr98).