Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Te han dicho alguna vez que si te encuentras un USB en el suelo, no lo debes introducir en
tu ordenador? Hoy te mostraré mediante una prueba de concepto por qué no debes
hacerlo. En este post veremos cómo crear un USB malicioso que puede infectar un
ordenador en segundos.
En 2010, los medios se hicieron eco de un virus que había conseguido infectar una central
nuclear de Irán. Este malware, llamado Stuxnet, relentizaba las centrifugadoras que
enriquecían uranio, aumentando la presión hasta puntos críticos. La central tenía unos
sensores que permitían accionar unas válvulas que liberaban la presión cuando esta
aumentaba. El virus consistía en modi car los datos que leían estos sensores para que
pareciera que todo iba correctamente, y aumentar la presión de las centrifugadoras.
Si hubieran querido, podrían haber hecho estallar la central nuclear. Sin embargo, cuando
la presión era demasiado alta, Stuxnet paraba el ataque. Esto se debe a que su objetivo era
retrasar el programa nuclear de Irán. De haberlo hecho estallar, los ingenieros iranís
hubieran detectado y arreglado el problema enseguida. sin embargo, al aumentar mucho la
presión sin que llegaran a estallar, se producían muchos más fallos en los rotores por
estrés, y los ingenieros no eran capaces de identi car por qué, retrasandolos
enormemente.
Pero lo más curioso de esto, es que la primera versión de este virus no tenía una forma de
propagación automática con la que llegar a la red de la central. Para poder actuar, el virus
debía ejecutarse en un ordenador de la central, pues necesitaba modi car uno de los
archivos de con guración para poder ejecutar su código en vez del original. Pero los
sistemas de la central nuclear no estaban conectados a internet, por seguridad. Entonces
¿cómo se infectó? Mediante los propios trabajadores de la empresa.
Alguien dejó caer una memoria USB cerca de un empleado de la central, que se la encontró
y tuvo la brillante idea de conectarla a su ordenador para ver el contenido del mismo. Una
vez dentro de la red, ya si pudo propagarse y llegar hasta ese archivo de con guración.
Este es el caso más sonado de este tipo de vector de infección, puesto que se considera la
primera arma cibernética. Sin embargo, se han encontrado miles de casos en los que
mediante ingeniería social un trabajador ha comprometido a su empresa al conectar un
USB que se había encontrado.
Bad USB
Hoy en día, no hacen falta más que un par de clicks para hacerse con un USB malicioso.
Cualquiera con acceso a un ordenador y 10 dólares puede tener el suyo propio. La marca
más famosa de este tipo de USB es RubberDucky y cuesta 45 dólares, sin embargo
encontramos otros por 8 o 9 dólares con la misma funcionalidad, o incluso se puede
fabricar manualmente.
¿Cómo funciona?
Al enchufarlo, el ordenador reconoce el USB como si fuera un teclado. El programa del USB
simplemente realiza distintas pulsaciones de teclas automáticamente. Dado que el sistema
operativo lo considera como el teclado del usuario legítimo, todo lo que se pulsa se
ejecuta.
PoC
Para esta prueba de concepto utilizaré un dispositivo llamado Lily GO que compré por 8
dólares en Aliexpress. La principal diferencia con el Rubber Ducky es que en este último se
puede insertar una tarjeta microSD en la que almacenar información comprometida o
guardar scripts.
Para ello, en primer lugar necesitaremos descargarnos Arduino. Una vez descargado,
vamos a herramientas -> placa y seleccionamos «Arduino Leonardo».
Antes de empezar con el script, es importante saber que la librería por defecto solo
soporta teclados estadounidenses, por lo que en caso de que nuestra víctima tenga
con gurado el teclado en otro idioma, deberemos instalar las librerías compatibles con ese
idioma.
Para hacer esto solo tenemos que descargar este repositorio en el directorio
Arduino/libraries, y modi car la librería Keyboard.
Ahora si, vamos con el script. En primer lugar, incluimos la librería Keyboard.h, con la que
podremos simular la pulsación de teclas. La función setup() es la principal del script. Para
empezar, debemos llamar a Keyboard.begin() y esperar un tiempo (medio segundo es
su ciente).
Cada tecla tiene especial tiene un identi cador. Por ejemplo, la tecla de enter es «KEY_RETURN». Primero hay que
llamar a la función de pulsar tecla, después esperar unas milésimas de segundo, y por último llamar a la función de
soltar tecla. Encapsularemos esto en la función typeKey para que sea más fácil:
Para esta prueba inicial, vamos a abrir un bloc de notas y escribir «Hacked by Lethani!»,
suponiendo que la víctima está utilizando Windows. Pensemos qué teclas es necesario
pulsar. El método más rápido es mediante el atajo de teclado Windows + R, que abre el
panel de Ejecutar:
Por tanto primero presionaré la tecla de windows, cuyo identi cador es «KEY_LEFT_GUI»
y presionaré la tecla r (código ascii 114). Después, soltaré ambas teclas.
Tras una espera de medio segundo (para que se abra el panel), voy a escribir el programa
que usaré. Pulsaré enter, y esperaré medio segundo a que se abra el notepad. Por último,
escribiré una frase en el notepad:
Por acabar esta prueba de concepto, y para hacer un poquito de spam, vamos a abrirle a la
victima un navegador a pantalla completa con mi web.
Cabe destacar que no he utilizado la función loop() porque en este ejemplo no era
necesaria, pero es una función muy util ya que permite ejecutar cíclicamente las
instrucciones que introduzcamos.
Para cargarlo en el USB tan solo hay que conectarlo, seleccionarlo en Herramientas ->
Puerto, pulsar en «Veri car» (para comprobar la sintaxis del script) y pulsar en «Subir».
Aviso: una vez subido, se ejecutará automáticamente, por lo que debes tener mucho
cuidado.
A continuación os dejo un vídeo que he grabado con una demostración del script anterior.
Esta herramienta es muy útil combinada con ingeniería social, puesto que permite ataques
físicos delante de la víctima sin que se de cuenta, mucho más sigilosa y rápidamente que
de forma manual.
Lethani.
Nilson
noviembre 15, 2019 a las 5:42 pm
Responder
Lethani
noviembre 27, 2019 a las 3:59 pm
???
Responder
Ddxdaniell
abril 8, 2020 a las 11:38 pm
Y para ver la información que hemos conseguido, tendría forzosamente que conectarla a
mi PC y me infectaron ami mismo
Responder
Lethani
mayo 25, 2020 a las 10:06 am
Ese es uno de los problemas de esta «versión china» del rubberducky, que en el
momento en el que lo conectas a cualquier ordenador se ejecuta el payload. Pero
siempre hay métodos para no auto-infectarte, puedes enchufarlo con el ordenador
apagado o enviar la información que recopiles a algún sitio en internet, como
pastebin.com.
Responder
alex
octubre 6, 2021 a las 3:10 pm
El Sketch usa 5578 bytes (19%) del espacio de almacenamiento de programa. El máximo
es 28672 bytes.
Las variables Globales usan 278 bytes (10%) de la memoria dinámica, dejando 2282 bytes
para las variables locales. El máximo es 2560 bytes.
Software Version = i.
Responder
Lethani
noviembre 17, 2021 a las 9:37 am
Responder
Deja un comentario
Nombre *
Correo electrónico *
Web
Publicar comentario