lunes, 6 de marzo de 2017

EL PATITO DE GOMA

Imagen de Internet














¿Cómo funciona?



USB Rubber Ducky es una herramienta o dispositivo de interfaz humana, es decir un dispositivo que conectado por USB simula ser un teclado y gracias a este estándar (USB)  cualquier sistema operativo ya sea GNU/Linux, Windows, Mac o Android es vulnerable.
Al momento de ser conectado 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 o también 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. Aca les dejo una guia en video del Rubber.

Payload

Este dispositivo utiliza un código de programación sencillo y mediante un editor de texto se pueden crear los payloads.
Seguramente si no sos un erudito en la materia te estás preguntando ¿Qué es un payload? Bien, el payload en informática son los datos transmitidos en una comunicación. Concretamente, es la parte de la transmisión la cual era el propósito fundamental de la comunicación, es decir, el payload no incluye información enviada como cabeceras o metadatos.
En seguridad computacional, el payload se refiere a la parte del malware que realiza la acción maliciosa. En el análisis de software malicioso como gusanos, virus o Troyanos, se refiere a los resultados del ataque del software. Ejemplos de payloads podrían ser destrucción de datos, mensajes ofensivos o correo electrónico basura enviado a una gran cantidad de personas (spam). - definición de wikipedia.

¿Cómo creamos uno?

Los paso que debemos seguir son muy sencillos ya que solo basta con abrir un editor de texto y colocamos la serie de órdenes básicas como si fuera que presionamos las teclas de un teclado. Como por ejemplo:
REM Lock Me 0.3 - Script opens Notepad and types a message concerning locking the computer - by SurfKahuna (RJC)
GUI r
DELAY 200
STRING notepad.exe
ENTER
DELAY 300
STRING I will learn to lock my computer.
ENTER
STRING Thank you.
ENTER
DELAY 100
ALT SPACE
STRING x
Esta ordenes o comandos son palabras claves que emiten una acción en el sistema como en comando REM es un comentario que no se procesara, esto sirve para guiarnos en el código; Es solo una anotación.
El comando DEFAULT_DELAY or DEFAULTDELAY se utiliza para definir el tiempo (milisegundos) de espera entre cada comando posterior. DEFAULT_DELAY debe ser emitido al comienzo de la secuencia de comandos patito y es opcional. Si no se especifica el DEFAULT_DELAY dará lugar a una ejecución más rápida de las secuencias de comandos ducky. Este comando es sobre todo útil para depurar.
El comando DELAY crea una pausa momentánea.
El comando STRING procesa el texto que sigue teniendo un cuidado especial para cambio automático, puede aceptar uno o varios caracteres.
El comando WINDOWS o GUI emula ser la tecla super.
El comando MENU o APP emula la tecla de aplicaciones, a veces referido como la tecla de menú o la tecla del menú contextual. En los sistemas Windows esto es similar a la combinación de teclas SHIFT F10, produciendo el menú similar a un clic derecho.
Los comandos SHIFT, ALT, CONTROL o CTRL no vale la pena aclarar ¿verdad?
Los comandos de las flechas DOWNARROW (abajo), LEFTARROW (izquierda), RIGHTARROW (derecha) y UPARROW (arriba).
Estos son algunos comandos de los cuales puedes utilizar y para tener la lista completa de ellos solo debes hacer clic aquí.
Una vez creado el texto lo que debemos hacer es guardarlo en la tarjeta SD.

¿Como lo compilamos?


Para ello utilizamos el Encoder para compilar y cargar el payload que hemos desarrollado. Este encoder se puede descargar de este sitio web.
Este encoder está basado en JAVA el cual debemos instalar y debemos seguir una serie de comando para poder correr la aplicación el la SD.

javar –jar duckyencoder.jar –i nuestropayload.txt –o /rutaUSB/inject.bin –l resources es.properties

-i: input del payload de entrada.
-o: ruta hacia la tarjeta microSD donde cargaremos el payload, por defecto el nombre es inject.bin.
-l: parámetro de configuración del idioma del teclado.

Dentro de la carpeta Encoder tenemos una carpeta llamada Resources con los idiomas disponibles de configuración del teclado. Si no se especifica idioma, por defecto utiliza us.properties.
Otras opciones para compilar el payload es mediante interfaz gráfica con EncoderGUI y también a través de este generador online.
Acá dejo una serie de payload que pueden ser útiles en algún momento y un video que me pareció interesante.

¿Cómo prevenir este ataque?



Primer consejo básico es no conectar ninguna memoria usb extraña, pero si por algún motivo debes hacerlo te recomendo esta herramienta.
La herramienta llamada Shielducky creada por Alex TorreCrack monitorea los los dispositivos HID sin tener que desactivar los puertos USB desde la BIOS. 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.

No hay comentarios.: