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