WifiDuck - other bad USB
Overview
Los bad USB son unos viejos conocidos, el más popular es el USB Rubber Ducky de hack 5, pero podemos encontrar infinidad de información de cómo crear versiones económicas del mismo.
Este dispositivo es un pendrive que, ante el PC, se presenta como un teclado, con instrucciones programadas que ejecuta en el momento en que se conecta.
Se popularizaron de nuevo cuando en un episodio de Mr. Robbot, Darlen los usa para obtener el control de un sistema de la policía. Deja decenas de pendrive en la calle, delante de la comisaria, con la idea de que algún agente encuentre uno de ellos y lo introduzca en un PC.
Ésta era hasta ahora la estrategia de uso de los bad USB, un poco de ingeniería social, dejándolo olvidado en un sitio estratégico, a la espera de que algún curioso lo conecte a su PC.
Actualmente hay nuevas variantes y es con una de ellas con la que jugaremos esta vez.
Wifi Duck
El Wifi duck es un restailing de los ya mencionados bad USB, en este caso ideados para trabajar con equipos poco vigilados, a los que se haya podido tener acceso físico en algún momento, para conectar el dispositivo que controlaremos posteriormente a distancia.

Como su predecesor, este se presenta al PC victima como un teclado y crea un punto de acceso inalámbrico mediante la cual, el atacante, podrá comunicarse con él y ejecutar todo tipo de comandos.
Este dispositivo es parcialmente compatible con los scripts de Rubber Ducky, por lo que dispondremos de muchísimos ejemplos en internet, que funcionaran perfectamente después de algunas modificaciones. Podéis consultar algunos de ellos en el siguiente [github] (https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads)
Una vez lo hayamos conectado a un PC, buscamos el punto de acceso wifiduck (por defecto, aunque se puede cambiar en la configuración del dispositivo para pasar más inadvertido), desde nuestro PC atacante o dispositivo móvil.

A continuación, desde nuestro explorador web accederemos a la dirección http://192.168.4.1, accediendo así al panel de control de nuestro WifiDuck.
En la pantalla inicial encontramos los distintos scripts que tengamos almacenados, el editor de scripts y cierta información de ayuda para su uso.

Pensemos en un “totem” publicitario / informativo de un centro comercial, el pc de la recepción de un hotel o en cualquier equipo que, estando expuesto físicamente, pueda tener un USB descuidado. Estos, son candidatos susceptibles a ser comprometidos con este tipo de técnicas, que como veremos con los siguientes ejemplos nos permitirán ejecutar scripts o comandos a distancia.
Hello world
Como primer ejemplo qué mejor que el clásico hello world.
En el dispositivo crearemos el siguiente script.
1 | WINDOWS r |
Con estas pocas líneas, al ejecutar el script, se abrirá un blog de notas en el “PC victima” y se escribirá “Hello playingwith.info” en él.

Ahora que hemos ejecutado el primer ejemplo, supongo que ya se hace patente el potencial de este pequeño dispositivo.
Podéis encontrar la sintaxis completa en su wiki para crear vuestros propios scripts, combinando variaciones de teclado y comandos, el límite es la imaginación.
Remote shell
El siguiente ejemplo, un poco más divertido, nos proporcionará un acceso remoto al “PC victima”. Este código abrirá una PowerShell que proporcionará una shell remota a nuestro PC atacante proporcionándonos así control total del sistema comprometido.
Para llevarlo a cabo iniciaremos netcat en el pc atacante.
1 | LOCALE ES |
Este, es un ejemplo de laboratorio, en un caso real usaríamos técnicas para que la ventana de PowerShell se ocultara y se ejecutara de forma discreta.

En el siguiente video podemos observar el ejercicio en acción.
Wifi stoler
Para finalizar la práctica, este último script crea un fichero con las credenciales de las redes wifi que el “PC victima” tenga guardadas y nos las envía por correo electrónico.
1 | LOCALE ES |

Nota: todas las credenciales de este ejemplo se han creado específicamente para el ejercicio y ya no se encuentran disponibles, no perdáis el tiempo. ;)
En el siguiente video podemos observar el ejercicio en acción.
Conclusiones
Tanto los bad USB como los Wifiduck, son dispositivos que nos permiten ejecutar programas a distancia. Unos de forma autónoma y los otros a demanda. Ambos tienen precios asequibles, lo que puede ser importante ya que en caso de un ataque real posiblemente perderemos el dispositivo.
Como se muestra en los ejercicios realizados, nos ofrecen mucho juego, pueden ser una buena entrada a equipos a los que de algún modo se haya podido conseguir acceso físico para poder conectarlo.
Es difícil protegerse de este tipo de ataques, ya que el dispositivo se comporta como un teclado, lo que hace que los sistemas de defensa no lo vean como una amenaza. En el caso de equipos fácilmente accesibles puede ser interesante limitar el acceso a los puertos USB.
Por otro lado, toda política que limite el acceso a internet, sistema de comandos y PowerShell nos ayudara a mitigar la amenaza.
Hasta aquí el post de hoy. Espero haya sido de vuestro interés.
No dudéis en contactar mediante el formulario para hacerme llegar vuestros comentarios.