Rubber Ducky
Attiny85. Un teclado en la palma de tu mano.
En esta entrada vamos a hablar de hardware hacking, en concreto acerca de un microcontrolador que puede realizar las funcionalidades propias de un teclado. Pero empezando por el principio como se suele decir, ¿Qué es un microcontrolador?.
Pues bien, un microcontrolador no es más que es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Teniendo en cuenta este concepto existen infinidad de microcontroladores en el mercado, desde el más conocido como es Arduino, pasando por ESP8266 que es un microcontrolador que realiza las funcionalidades propias de un modulo Wifi para transmitir información (lo utilice en mi trabajo final de carrera), etc.
Una vez comentado el concepto de microcontrolador asi como algunos ejemplos de éstos para esta investigación se ha utilizado el microcontrolador Attiny85.
Este microcontrolador se encuentra por escasamente 2 euros en Aliexpress, adjunto el link de compra: Pincha aqui
La particularidad de este microcontrolador es que ejerce la funcionalidad de un keylogger entre diversas funcionalidades relacionadas con ejercicios de Red Team.
¿Qué es un keylogger?
Un keylogger es un tipo de software o un dispositivo hardware específico que se encarga de registrar las pulsaciones que se realizan en el teclado. Este es solo un ejemplo más sencillo de las funcionalidades que puede tener este microcontrolador pero existen muchas otras:
- Descarga de malware via ftp
- Descarga información del sistema operativo.
- Hacer capturas de pantalla
- Realizar persistencia
- Robar y utilizar las contraseñas Wifi de la víctima.
- Infección del sistema descargando y ejecutando un binario de Internet
- Agregar usuarios con permisos administrativos al equipo de la víctima.
- Borrar usuarios del sistema
Estos son solo algunos ejemplo pero no es una foto completa del conjunto de ataques que se pueden llegar a desplegar en una maquina victima siempre que se tenga acceso físico al equipo.
En el siguiente link existen varios payloads acerca de posibles ataques que pueden llevarse a cabo.
Configurar attiny85 – teclado español.
Para ello es necesario configurar en el Software Arduino una serie de pautas:
- Instalar el Ide de Arduino https://www.arduino.cc/en/main/software
- Configurar repositorio en gestor urls (archivo/preferencias/gestor urls) http://digistump.com/package_digistump_index.json
- Seleccionar e instalar en herramientas/placa/gestor tarjetas, nuestra digistump avr.
- Señalar en herramientas/placa nuestra versión de placa – 1.65 mhz default
- Instalar librerias digispark para teclados en otros idiomas AQUÍ.
La ruta más probable en Windows es : C:UsersUsuarioActivoAppDataLocalArduino15packagesdigistumphardwareavr1.6.7librariesDigisparkKeyboard - Algunas veces también he tenido que meter el zip a través de arduino ide cuando lo he instalado a través de la tienda de Windows, en lugar de con descargable.
Sobre el teclado, hay que definir el idioma, al principio de cada script. Por ejemplo, para español de España:
#define kbd_es_es
#include “DigiKeyboard.h”- Instalar drivers placa para Windows AQUÍ
- Instalar interprete Pyhton
- Instalar Duckyspark, un traductor de codigos spark-arduino para nuestra placa AQUÍ
- Se usa: duckyspark_translator.py ficheroDeTexto.txt ficheroArduino
- Luego abrimos el fichero resultante con arduino ide verificamos y subimos a la placa
Prueba de concepto – notepad.
Para llevar a cabo la siguiente prueba de concepto simplemente el Attiny85 simula un teclado en español para abrir notepad y escribir en un archivo de texto una frase a una víctima.
Este es el código empleado:
#define kbd_es_es
#include "DigiKeyboard.h"
void setup() {
DigiKeyboard.update();
DigiKeyboard.delay(5000);
}
void loop() {
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
delay(250);
DigiKeyboard.println("notepad");
delay(250);
DigiKeyboard.println(F("NO DEJEIS EL ORDENADOR SIN BLOQUEAR, TE ACABO DE HACKEAR"));
while(1);
}