Artículo Teclado Diabolico.

Iniciado por Fraile, Enero 04, 2022, 02:58:43 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 04, 2022, 02:58:43 PM Ultima modificación: Enero 07, 2022, 11:56:49 PM por AXCESS
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hace unos años, que aparecieron en el mercado, pequeñas placas programables. Estas placas, se programan con Arduino. Arduino nace más o menos en el año 2005, para cubrir la necesidad de formación con bajo coste para alumnos de electrónica.

En este artículo, me gustaría hablaros de una de esas placas, la placa con chip "Atmega32U4".



Esta placa, aparte de servir para diversos tipos de proyectos, tiene un comportamiento, bastante interesante, se comporta como un teclado, si como un teclado de ordenador!!!. Quiere decir que cuando la pinchamos en un puerto USB de un ordenador, el ordenador la reconoce como teclado.

¿Y cómo mando las pulsaciones de las teclas?, pues es realmente sencillo, esta placa lleva una pequeña "eprom" por decirlo de alguna forma, que nos permite escribir en ella las pulsaciones de teclado que deseamos enviar al ordenador, una vez pinchada en un puerto USB.

Ummmmmmm!!!, interesante verdad???. Ahora es el momento de coger alguna prenda de ropa que lleve capucha y ponerte esa capucha...... Siiiiiiii!!!, vamos a pensar como un ciberdelincuente (por favor, no me mal interpretéis, no todos los que llevamos prendas de ropa con capucha somos ciberdelincuentes, pido disculpas si he podido ofender a alguien).

El caso es, ¿como puedo pasar esta placa al lado oscuro?..... Pues ya sabiendo que se comporta como un teclado cuando la pincho en un puerto USB, puedo programarla para que haga cosas como:

·        Abrir una consola y copiar algunos ficheros.

·        Abrir una consola y borrar.....

·        Intentar meter un malware.

·        ........

Bueno hacer uso de vuestra imaginación....... En el momento que le damos un "mal uso" a esta placa, puede denominarse que es un Bad USB o Rubber Ducky.......

Yo, os voy a explicar cómo usarla, para abrir una puerta trasera, o Shell inversa...... Siempre claro está desde el punto de vista de la ciberseguridad, sobre todo para que si nos encontramos un USB en la calle o cerca de nuestra oficina... no lo pinchemos alegremente, esperando encontrar "algo", que nos haga pasar un "ratico" divertido o por pura curiosidad y el ser humano es curioso por naturaleza.....

El proyecto conlleva lo siguiente:

·        Un pequeño programa en ensamblador, que será la Shell.

·        Un servidor (en internet....) donde alojare el programa creado en el punto anterior.

·        Un ordenador, que estará a la escucha, en esta POC, usare Metasploit, con el exploit Multi/Handler.

Evidentemente necesitaremos nuestra placa USB con el chip "Atmega32U4" y unas cuantas líneas de Arduino, para que una vez pinchada, copie la Shell realizada en ensamblador en el ordenador de la víctima y la ejecuté.

Bien pues empecemos con el programa en ensamblador, que será nuestra puerta trasera o Shell que se ejecutara en la victima y nos dará acceso a su disco duro.




Este programa, básicamente lo que hace es abrir un socket por el puerto 4444, apuntando a la IP de nuestra maquina que está escuchando "192.168.2.128". Y creando una "CMD" en la victima enlazada con dicho socket.

Este programa una vez compilado pesa unos 6k mas o menos. ¿Por qué lo has realizado en ensamblador?. Muy buena pregunta!!!, pues por varios motivos, no es un lenguaje interpretado, trabaja directamente con las API's de Windows, será un programa muy rápido de ejecutar, pesa muy poco......... Y porque me encanta el ensamblador. Aprovecho para animaros a que realicéis mi curso, que lo podéis encontrar en The Security Sentinel.

Bien el siguiente punto, será dejar el programa en un servidor en internet, que tenga abierto el puerto 445 SMB, con una carpeta en modo lectura (muy importante esto, si no tenéis claro como levantar un servidor SMB con las medidas necesarias para no ser hackeado, mejor no lo hagáis).

En este punto, os podéis estar preguntado, ¿y por que no levanto un servidor FTP y lo bajo desde ahí?. Por la pruebas que yo he podido realizar, os diré que lo intente, pero cuando pinchas la placa USB, donde está programado en Arduino los comandos que quieres que se ejecuten, bien a través de la consola "CMD" o bien desde ejecutar, el sistema operativo, en mi caso un Windows 10 profesional, con la UAC activa y Microsoft Windows Defender levantado, te piden elevación de privilegios y no te va a dejar bajarlo por FTP. Pero si lo haces por medio de recursos compartidos SMB, vamos \\ip\recurso\shell.exe, no te va a pedir esa elevación de privilegios y lo va a copiar al ordenador de la victima sin ningún tipo de problema.

Bueno, ahora toca la parte de poner un ordenador a la escucha. En mi caso, levante un Parrot, y con MetaSploit, use el exploit Multi/Handler.



Fíjese, que aquí solo hay que configurar la IP, que será la misma que se puso en nuestro programa en ensamblador.

Así que una vez que pinchemos nuestra placa "Teclado Diabólico" al puerto USB de la víctima, este ejecutara el código en Arduino para que baje el programa en ensamblador y lo ejecute, conectando directamente con nuestra maquina que está a la escucha.

Bien, pues veamos ahora el código en Arduino, que vamos a guardar en la placa con chip "Atmega32U4".



Este código se divide en dos, el primer bloque le envía pulsaciones al teclado para que abra el panel de ejecutar de Windows y escribe en él un copy, para traernos la Shell hacia nuestro objetivo y guardar el ejecutable en la carpeta %temp%



El segundo bloque de código, es para ejecutar el ejecutable, la Shell.



Una vez ejecutado salta el ordenador que está a la escucha y ya tengo el control del ordenador objetivo.



Mucho cuidado con los USB, podrían ser "Teclados Diabólicos".

Disculpar que no haya entrado en explicar todo el código, pero no era mi intención extenderme tanto, de todos modos si estáis interesados en estos temas, me podéis escribir a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Comentaros también, que el Windows Defender, me lo detecto al segundo intento. Tuve que reiniciar la máquina para que volviera a funcionar, así que entiendo que el exe, realizado en ensamblador se tendría que camuflar, pero eso ya es otra historia......

Espero que este artículo os haya sido de interés, desearos un feliz año nuevo.

Nos vemos el proximo año!!!!.

Enlace: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Hola

Por favor sea paciente y disculpe mi ignorancia pero, es posible que esos chip o similares en características estén en los controles remotos (mandos universales, etc) de Tv u otros dispositivos?

Recién presencié la reprogramación de un chip de un control remoto con arduino para un Smart Tv Aiwa. No aparecía control que le sirviera y tuviera el código, hasta que un control remoto universal chino, posteriormente un General Electric lo tenían. El informático reprogramó un control que era de un  Smart Tv Samsung, para el Tv Aiwa con el código sacado a través de los otros universales.

Según me explicaron (muy en síntesis) reprogramaban el chip o "pastilla" que es una "eprom". Imagino, paralelamente con lo que explica, que ese chip hace las funciones de un teclado que es el control?

Me pregunto si hay similitudes en la técnica que explica con lo que vi.
A penas pude preguntar pues estaba de visita y en otras funciones pues era un centro turístico.

Me ha parecido muy interesante su post. También muy bien explicado y redactado.

Gracias por ponerlo.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola AXCESS,

Me alegra que este artículo te haya podido interesar. Respecto a tus preguntas, puede que el chip si tenga similitudes, pero con sinceridad, tendria que investigar un poco más. Así que voy a investigar un poco y te contesto.

Muchas gracias por tus comentarios, de verdad, un cordial saludo.


Muy bueno el artículo con una excelente prueba de concepto.

~ DtxdF
~ DtxdF