Mostrando entradas con la etiqueta bash bunny. Mostrar todas las entradas
Mostrando entradas con la etiqueta bash bunny. Mostrar todas las entradas

sábado, 30 de junio de 2018

Jugando con el conejo - Parte 2

¡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
Hay que hacer un inciso e indicar que ECM_ETHERNET sólo sirve para Linux, Mac y Android, mientras que RNDIS_ETHERNET sirve para Windows y para algún Linux. Los modos de ataque podemos combinarlos como queramos, excepto aquellos que impliquen los dos adaptadores de red a la vez. En el último firmware (el 1.5) se ha añadido el modo de ataque llamado AUTO_ETHERNET el cuál sirve para usar automáticamente un modo de tarjeta de red u otro.

Creando el script

Una vez visto un poco de aburrida teoría vamos a crear un payload simple. Lo que vamos a hacer es, primero, poner el modo de ataque para emular una tarjeta de red para que, a continuación, realice un escaneo con nmap y nos guarde el resultado en un .txt. Lo primero vamos a indicarle que el LED se ponga con los colores de SETUP y se ponga en modo de ataque de tarjeta de red.

LED SETUP

ATTACKMODE AUTO_ETHERNET
A continuación vamos a obtener para usarlo a continuación la IP de que se le ha asignado a la máquina y el nombre de la misma.

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
Ahora viene la parte más interesante, que es donde hacemos el escaneo. Para ello simplemente ponemos el led en modo ATTACK y lanzamos nmap. Para guardar el escaneo, redirigimos la salida del comando a un archivo en la carpeta /root/udisk/loot.

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.
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).




domingo, 17 de junio de 2018

Jugando con el conejo - Parte 1

¡Hola!

Hoy os traigo un artículo, que en mi opinión, es la mejor herramienta de Hak5: "Bash Bunny (El Conejo)".

En este primer artículo explicaré qué es el conejo y como empezar a usarlo. Y en los artículos siguientes, mostraré un uso más avanzado del mismo.

¿Qué es el Bash Bunny?

Se trata de un mini-ordenador, que depende del ataque que hagamos, su funcionamiento podrá ser el de: un teclado, una tarjeta de red o un dispositivo de almacenamiento.

Cuando lo compramos en la tienda oficial de Hak5 ( http://www.hakshop.com/bashbunny ) lo que nos llegará es un paquete rojo como este (aunque en la foto se vea un poco rosa 😕).


Cuando lo abramos tenemos el aparato en sí y una tarjeta con las instrucciones de cómo comenzar.


Funcionamiento y configuración

Lo primero que tenemos que saber es que tiene 3 modos de funcionamiento, que cambiamos moviendo un botón. Los tres modos son de izquierda a derecha:
  • Modo de ataque 1
  • Modo de ataque 2
  • Modo de armado



En los dos primeros podemos tener distintos payloads (que ahora explicaré como funciona) para hacer dos ataques distintos. y el último modo sirve para: cargar los payloads, actualizar el firmware, si existe una actualización, o para cambiar la configuración.

Además, tiene un led RGB en el que podemos configurar el color que se enciende en los payloads, para que según lo que pase muestre un color u otro.

Cuando conectemos el Bash Bunny en modo armado en nuestro ordenador, podremos ver la estructura de carpetas que tiene.


Lo más interesante, está en la carpeta payloads, en la que están los scripts (payloads) que se ejecutarán según el modo en el que pongamos el dispositivo.

En ésta carpeta lo que podemos encontrar es algo así:


  • En la carpeta extensions solemos tener scripts necesarios para el funcionamiento de algún payload.
  • En la carpeta library solemos tener una librería de payloads que podemos encontrarlos en el github oficial ( https://github.com/hak5/bashbunny-payloads ).
  • En las carpetas switch1 y switch2 pondremos los payloads para los distintos modos de ataque.

El conejo en acción


Para este primer artículo y a modo de prueba lo que he hecho ha sido coger un script de prueba, el cual pone al conejo en modo teclado y escribe en un bloc de notas el texto que le he indicado.


Y el funcionamiento sería tan simple como esto:



Espero que os haya gustado esta pequeña introducción.
Si queremos saber un poco más siempre podemos ver la wiki oficial que está bastante completa ( https://wiki.bashbunny.com/#!index.md ).

Un saludo, Rafa Sojo (@RaSr98).