martes, 10 de junio de 2014

USB Rubber Ducky: Un teclado malicioso como un pendrive

En el mundo de la seguridad informática hay todavía empresas, administradores y usuarios comunes que no han tomado conciencia de la importancia que tiene la seguridad física, un punto clave a tener muy en cuenta. Siempre hay gente que quiere robarle la contraseña a su pareja, a su jefe, a su empleado, espiar tu historial de sitios que visitas en Internet, las cookies del Facebook, robarte los passwords de la red WiFi, o robar documentos como hizo Edward Snowden con los documentos de la NSA. Supongo que las listas de correos que recibo con esas peticiones os deberían servir de muestra más que suficiente de con quién os jugáis los cuartos.

Existen técnicas y maneras de conseguir acceso físico a un equipo y explotar las vulnerabilidades, y lo único que hay que hacer es forzar los condicionantes adecuados para poder llevarlo a cabo. Perder de vista el equipo o prestarlo a un amigo un momento para revisar las novedades de algún blog, o separarte de tu escritorio por unos momentos para ir al lavabo, es tiempo suficiente para que un atacante pueda llegar y enchufar un dispositivo como el “USB Rubber Ducky”.

Este dispositivo es un teclado programado con forma de USB que nada más conectarse comienza a escribir en el equipo de forma automatizada, para lanzar programas y herramientas que bien pueden estar en el equipo víctima o cargados en la memoria Micro SD que lleva incluida.


Figura 1: Estructura de USB Rubber Ducky

En cuestión de segundos tendría acceso a información que se podría subir automáticamente a un servidor FTP u otro sitio. Algo parecido a lo que se explicaba con USB Dumper, pero al revés, es decir, en lugar de ser el servidor el malicioso que roba los datos del USB, sería USB Rubber Ducky el que robaría los datos al equipo.

En este vídeo de ejemplo que hizo TorresCrack248  se puede ver como en cuatro segundos se puede robar la contraseña del administrador de la computadora, lanzando con USB Rubber Ducky un script basado en Mimikatz que acceda a los datos.



Figura 2: Vídeo demostrativo del uso de USB Rubber Ducky


¿Qué es USB Rubber Ducky?

Casi todos los sistemas operativos de computadoras portátiles, tablets o smartphones permiten la comunicación con el usuario a través de los teclados USB. Es por eso que hay una especificación en el estándar USB ubicua conocida como HID (Human Interface Device) – o dispositivo de interfaz humana. En pocas palabras, cualquier sistema operativo al que conectemos el USB Rubber Ducky lo detectara y será bien aceptado automáticamente como si se hubiera conectado un teclado, ya sea en Windows, OS X, Linux o Android.

Al final, el teclado sigue siendo un interfaz fundamental y lo que hará USB Rubber Ducky es "teclear comandos" en el sistema como si lo estuviera haciendo el usuario que se ha conectado a la sesión. Usando un sencillo lenguaje de programación y un editor de texto podríamos compilar un binario que automatice diversos “payloads” con lo cual podríamos realizar ataques en cuestión de segundos.


Figura 3: Estructura interna de USB Rubber Ducky

Con una idea similar, el libro de Hacking iOS se explica cómo usando un Teensy 3.0, en lo que se basa USB Rubber Key, se simula un teclado por USB para iPad para lanzar un ataque de fuerza bruta porque no hay protección de número de intentos para el teclado y se rompe el passcode de un iPad - uno de los muchos trucos de saltarse el passcode de iPhone & iPad.



Figura 4: Ataque de fuerza bruta al passcode de un iPad con Teensy 3.0

Debido a su estructura, los sistemas operativos ofrecen una confianza inherente a las pulsaciones del teclado, por lo tanto los dispositivos que abusan de la interfaz HID no pueden ser detectados por las contramedidas tradicionales de forma sencilla ya que iría contra la filosofía Plug&Play de los sistemas. Esto hace que sea una herramienta muy útil en procesos de pentesting internos, ataques de ingeniería social del tipo "¿me puedes imprimir un documento?" o de auténticos atacantes de dentro de la organización.

¿Qué ataques se pueden realizar?

Al final, cuando un usuario pincha un USB Rubber Ducky en su sesión de usuario es como si le hubiera dejado el teclado al atacante para que este ejecutase lo que quisiera. Es decir, este ataque se aprovecha de la confianza del usuario, que al final siempre es “el eslabón mas débil” o de la seguridad física de muchos equipos expuestos.

¿Cuántos de ustedes han llegado a alguna oficina gubernamental, banco y tienen a simple vista y acceso a los puertos USB de los equipos? ¿A cuántos de ustedes les han prestado algún equipo para revisar el correo, las redes sociales, etcétera? ¿Cuántos no tienen en la oficina un equipo de un compañero con cuentas de diferentes administradores o que tenga más permisos que el resto? ¿Cuántas veces no has visto un puerto USB en un Kiosco de Internet o un Punto de Información? Si ninguno de esos puertos bloquea el interfaz HID, puedes hacer el ataque. Al final quizás agregar, subirlas a un servidor FTP en cuestión de segundos.

Seguro que os ha tocado llegar a una oficina a resolver tramites y la persona que te atendió tuvo que salir un par de minutos, y esto es tiempo suficiente para un atacante enchufar el USB Rubber Ducky y lanzar el payload - en lugar de hacer un David Hasselhoff para robar las passwords -Por mencionar algunos ataques brevemente:

Recolección de información del sistema operativo.
* Robar información importante de los navegadores de Internet.
* Robar y usar las cookies de las sesiones abiertas.
* Hacer capturas de pantalla del escritorio y carpetas importantes del sistema.
* Robar y utilizar las contraseñas de las conexiones WiFi de la víctima.
* Subir la información a traves un servidor FTP.
 Ataques dirigidos al sistema:

* Agregar usuarios con permisos administrativos al equipo de la víctima.
* Borrar usuarios del sistema.
* Hacer Pharming de DNS.
* Infección del sistema descargando y ejecutando un binario de Internet.
* Crackear passwords del administrador en el sistema.
* Crear un Backdoor WiFi.
* Bloquear programas en el sistema operativo de forma sigilosa.
¿Cómo podemos protegernos de estos ataques?

Desde que el grupo de hackers de Hack5 hizo pública la herramienta, algunos siguen pensando que desactivando el “autoplay” de los discos USB podrían detenerlo, pero esto no es posible hacerlo de esa manera ya que el ataque no sea hace vía un USB de almacenamiento sino como si alguien estuviera tecleando en un teclado USB.

Las formas que se puede utilizar para detectar que un USB es realmente un HID USB, se puede hacer un script en PowerShell que enumere la lista de dispositivos HID que alerte cuando uno nuevo se haya conectado y se bloquee. Aquí hay información sobre cómo acceder a la lista de los dispositivos desde PowerShell. A partir de ese punto, la forma en la que quieres estar protegido depende de ti.

En el trabajo de Adrian Crenshaw, titulado "Plug & Prey: Malicious USB devices" que fue presentado en la ShmooCON 2011 se explica en detalle la lista de posibles ataques que se pueden hacer por USB. Entre ellos, por supuesto, los teclados USB que abusan de la interfaz HID. Aquí tenéis el vídeo para ver la conferencia.


Figura 5: Plug & Prey - Malicious USB Devices

En el trabajo se presta especial atención a los PHUKD (Programmable HID USB Keyboard/Mouse Dongle) ya que no solo simulando un teclado malicioso es el problema, y la simulación de un ratón malicioso que hiciera clics en zonas concretas sería igual de peligroso. Para proteger los USB utilizando las políticas GPO de Windows hay que tener en cuenta que si el usuario que pincha el USB Rubber Ducky es una administrador, siempre podrá cambiar la política, pero lo dificultaría. Esto hace que fuera factible, dentro de una política de Maximizar la seguridad de un Windows, usar listas blancas de los dispositivos USB que se pueden conectar a un equipo.


Figura 6: GPO para prevenir la instalación de dispositivos USB no autorizados

De todas formas, como utilidad de monitorización, Adrian Crenshaw recomienda usar USBDeview, que muestra en tiempo real toda la información de todos los dispositivos USB que se conectan, detectando aquellos que son PHUKD en la lista.


Figura 7: USBDeview

Alex TorreCrack ha hecho una herramienta de protección ante estos ataques que liberará en breve llamada Shielducky que hace fácil controlar estos ataques monitorizando los dispositivos HID sin tener que desactivar los puertos USB desde la BIOS/UEFI, etcétera. La interfaz es bastante amigable y fácil de usar ya que basta como presionar un simple botón para detectar cualquier HID que se conecte y bloquearlo.


Figura 8: Shielducky - una herramienta para bloquear dispositivos USB HID

Así que te recomiendo tener cuidado porque en cualquier momento sin que te des cuenta te pueden intentar  “enchufar” un USB Rubber Ducky en lugar de un pendrive cuando te descuides. Ten cuidado.

Saludos Malignos!

Fuente: http://www.elladodelmal.com/2014/05/usb-rubber-ducky-un-teclado-malicioso.html

No hay comentarios:

Publicar un comentario