Red Hot Cyber

La ciberseguridad se comparte. Reconozca el riesgo, combátalo, comparta sus experiencias y anime a otros a hacerlo mejor que usted.
Buscar

¡Nunca aceptes memorias USB de desconocidos! Un ejemplo práctico de piratería física con una memoria USB.

Massimiliano Brolli : 27 septiembre 2025 11:51

¿Alguna vez te han dicho que si encuentras una memoria USB en el suelo, no la conectes a tu ordenador? Hoy te explicaremos por qué no deberías hacerlo mediante una prueba de concepto (PoC). En esta publicación, te mostraremos cómo crear una memoria USB maliciosa que puede infectar un ordenador en segundos.

Unas líneas de historia.

En 2010, los medios de comunicación informaron sobre un virus que había infectado con éxito una central nuclear en Irán. Este malware, llamado Stuxnet, ralentizó las centrifugadoras que enriquecían uranio, aumentando la presión hasta niveles críticos.

La planta contaba con sensores que le permitían activar válvulas que liberaban la presión al subir. El virus consistía en modificar los datos leídos por estos sensores para simular que todo marchaba bien y aumentar la presión en las centrifugadoras.

Si hubieran querido, podrían haber volado la central nuclear. Sin embargo, cuando la presión era demasiado alta, Stuxnet detuvo el ataque. Esto se debió a que su objetivo era retrasar el programa nuclear de Irán, no destruirlo.

Pero lo más curioso es que la primera versión de este virus no contaba con un sistema de propagación automático que pudiera alcanzar la red de la central. Para ser efectivo, dado que la central contaba con una red Air-Gap, el virus debía ejecutarse en un ordenador, ya que debía modificar uno de los archivos de configuración para ejecutar su código dentro de la propia central. De hecho, los sistemas de la central nuclear no estaban conectados a internet por razones de seguridad. Entonces, ¿cómo se infectó?

A través de los empleados de la empresa.

No se sabe con certeza cómo sucedieron los hechos, pero es probable que alguien dejara caer una memoria USB cerca de un operador, quien la encontró y tuvo la brillante idea de conectarla a su ordenador para ver su contenido. Una vez dentro de la red, el malware se propagó, causando los daños que todos conocemos.

Este es el caso más famoso de este tipo de vector de infección, pero posteriormente se han encontrado miles de casos en los que un empleado comprometió a su empresa a través de ingeniería social al conectar un USB que había encontrado.

USB defectuoso

Hoy en día, solo se necesitan un par de clics para obtener una memoria USB maliciosa. Cualquiera con acceso a una computadora y $10 puede conseguirla. La marca más popular de este tipo es la RubberDucky USB, que cuesta $45, pero hay otros modelos con las mismas características disponibles por $8 o $9.

¿Cómo funciona?

Al conectar la unidad USB a una computadora, se reconoce como un teclado simple. El programa dentro de la unidad USB simplemente ejecuta varias pulsaciones de teclas automáticamente.

Como el sistema operativo considera que es el teclado del usuario legítimo, todo lo que se presiona se ejecuta, lo que es muy crítico si se presionan las teclas correctas para llevar a cabo un ciberataque o plantar malware.

Prueba de concepto

Para esta prueba de concepto utilizaré un dispositivo Lily GO de bajo costo, comprado por solo unos pocos dólares en Aliexpress.

La principal diferencia con el Rubber Ducky es que este último puede alojar una tarjeta microSD para almacenar información comprometida o guardar scripts.

Ya existen muchos scripts creados para Rubber Ducky que permiten realizar diversos ataques. Puedes encontrar una colección de estos scripts en este GitHub.

Sin embargo, estos scripts sólo son válidos para Rubber Ducky.

La versión económica se programa con Arduino, por lo que los scripts varían. Sin embargo, esto no supone un problema, ya que alguien se ha tomado el tiempo de crear un conversor de DuckyScript a Arduino.

Pero realmente la diversión está en aprender a crear nuestros propios guiones.

Para ello, primero necesitamos descargar Arduino. Una vez descargado, ve a Herramientas -> Placa y selecciona » Arduino Leonardo «.

Antes de iniciar el script, es importante saber que la librería por defecto sólo soporta teclados estadounidenses, por lo que si nuestra víctima ha configurado su teclado en otro idioma, necesitaremos instalar librerías compatibles con ese idioma.

Para hacer esto solo necesitamos descargar este repositorio en el directorio de librerías de Arduino, los pasos están en github.

Primero, incluimos la biblioteca Keyboard.h , que podemos usar para simular la secuencia de pulsaciones de teclas. La función setup() es la función principal del script. Para empezar, necesitamos llamar a Keyboard.begin() y esperar un momento (medio segundo es suficiente).

Cada tecla tiene un identificador especial. Por ejemplo, la tecla de envío es «KEY_RETURN».

Primero debes llamar a la función keypress, esperar unos milisegundos y, finalmente, llamar a la función keyrelease. Lo incluiremos en la función typeKey para facilitarlo:

Para escribir una cadena de texto, llamamos a la función Keyboard.print(word).

Para esta prueba inicial, abramos un bloc de notas y escribamos «Hackeado por Red Hot Cyber», suponiendo que la víctima usa Windows. Pensemos en las teclas que debemos presionar.

El método más rápido es mediante el atajo de teclado Windows + R , que abre el panel Ejecutar:

Primero, presionaré la tecla Windows, cuyo identificador es «KEY_LEFT_GUI», y luego la tecla r (código ASCII 114). Luego, soltaré ambas teclas.

Tras esperar medio segundo (a que se abra el panel), escribiré el programa que usaré. Presionaré Intro y esperaré medio segundo a que se abra el Bloc de notas. Finalmente, escribiré una frase en el Bloc de notas:

 #include void setup() { Keyboard.begin(); delay(500); Keyboard.press(KEY_LEET_GUI); Keyboard.press(114); Keyboard.releaseAll(); delay(450); Keyboard.print("notepad"); delay(450); typeKey(KEY_RETURN); delay(450); Keyboard.print("Hacked by Red Hot Cyber"); } void typeKey(int key) { Keyboard.press(key); delay(200); Keyboard.release(key); } void loop() {}

Para completar esta prueba de concepto y hacer algo de spam, abramos la víctima en un navegador de pantalla completa con mi sitio web.

El proceso es idéntico: abro Ejecutar y escribo el comando. En este caso, el comando es iexplore , con -k para pantalla completa.

El guión final se vería así:

 #include void setup() { Keyboard.begin(); delay(500); Keyboard.press(KEY_LEET_GUI); Keyboard.press(114); Keyboard.releaseAll(); delay(450); Keyboard.print("notepad"); delay(450); typeKey(KEY_RETURN); delay(450); Keyboard.print("Hacked by Red Hot Cyber"); typeKey(KEY ETURN); Keyboard.press(KEY_LEET_GUI); Keyboard.press(114); Keyboard.releaseAll(); delay(450); Keyboard.print("iexplore -k https://www.redhotcyber.com");delay(450);typeKey(KEY RETURN); Keyboard.press(KEY_F11); typeKey(KEY_RETURN); } void typeKey(int key) { Keyboard.press(key); delay(200); Keyboard.release(key); } void loop() {}

Es importante señalar que no utilizamos la función loop() porque no era necesaria en este ejemplo, pero es una función muy útil porque nos permite recorrer las instrucciones que introducimos.

Para subirlo a la memoria USB, simplemente conéctelo, haga clic en «Verificar» (para comprobar la sintaxis del script) y luego en «Subir». Una vez cargado, el script se ejecutará automáticamente , así que tenga mucho cuidado.

Aquí hay un vídeo que muestra lo que se logró con el script anterior.

Esta herramienta es muy útil cuando se combina con la ingeniería social, ya que permite realizar ataques físicos delante de la víctima sin su conocimiento, de forma mucho más sigilosa y rápida que de forma manual.

Sin embargo, os recuerdo que la ética y el honor deben prevalecer sobre cualquier objetivo personal.

Somos “hackers” y no “cibercriminales”, tenlo siempre presente.

Fuentes

https://hackinglethani.com/hacking-fisico-con-usb/
http://roothaxor.gitlab.io/ducky2arduino/
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payload—Website-Lock
https://www.arduino.cc/es/software
https://github.com/ernesto-xload/arduino_keyboardlib

Massimiliano Brolli
Responsable del Equipo RED y de Inteligencia sobre Ciberamenazas de una gran empresa de telecomunicaciones y de los laboratorios de ciberseguridad 4G/5G. Ha ocupado puestos directivos que van desde la gestión de riesgos TIC a la ingeniería de software, pasando por la docencia en másteres universitarios.

Lista degli articoli
Visita il sito web dell'autore

Artículos destacados

¡Nunca aceptes memorias USB de desconocidos! Un ejemplo práctico de piratería física con una memoria USB.
Di Massimiliano Brolli - 27/09/2025

¿Alguna vez te han dicho que si encuentras una memoria USB en el suelo, no la conectes a tu ordenador? Hoy te explicaremos por qué no deberías hacerlo mediante una prueba de concepto (PoC). En esta...

Criptomonedas, ransomware y hamburguesas: la combinación fatal para Scattered Spider
Di Redazione RHC - 25/09/2025

El Departamento de Justicia de Estados Unidos y la policía británica han acusado a Talha Jubair, de 19 años, residente del este de Londres, quien los investigadores creen que es un miembro clave de...

¡Se acabó la fiesta de los regalos! La infraestructura de código abierto está en riesgo y necesita financiación.
Di Redazione RHC - 25/09/2025

Una carta abierta firmada por importantes fundaciones de código abierto ha alertado sobre el futuro de la infraestructura que sustenta el desarrollo de software moderno. La Fundación de Seguridad de...

Vulnerabilidades de día cero detectadas en Cisco IOS e IOS XE: actualizaciones urgentes
Di Redazione RHC - 25/09/2025

Cisco ha revelado una vulnerabilidad de día cero, identificada como CVE-2025-20352, en su software IOS e IOS XE, ampliamente utilizado. Esta vulnerabilidad parece estar siendo explotada activamente. ...

Cadena de suministro: El bloqueo de los aeropuertos europeos plantea inquietud sobre un problema cada vez más crítico.
Di Paolo Galdieri - 24/09/2025

El 20 de septiembre de 2025, un ciberataque afectó a tres de los principales aeropuertos de Europa: Londres-Heathrow, Bruselas y Berlín. Los sistemas digitales que gestionaban la facturación y la g...