Mi reino por un teclado
Este año estuvimos en la LibreCON 2022 impartiendo un taller de programación sobre un tipo de BADUSB, en concreto MalduinoW, si no estuvisteis, mal, no podéis faltar el año que viene este es el enlace LIBRECON
Ahora al lío, malduinoW es un BadUSB al que se le añade la capacidad de conexión Wireless y tiene una serie de características sencillas per muy útiles, 4 MB de memoria, conectores USB A y C, es fácil de programar y te conectas mediante una consola web.
Por lo que la idea a la hora de realizar un ejercicio de redteam es sencilla, acercarnos físicamente a nuestro objetivo, enchufar malduinow en un equipo, dejándolo más o menos oculto, irnos sin que nos detecten y controlar el sistema o equipo remotamente; en condiciones muy muy óptimas el alcance puede ser de unos 40 metros, pero lo habitual es que esté entre 10 y 15 metros, lo que nos abre un abanico de posibilidades muy grande.
La parte interesante es que el sistema operativo lo reconocerá como un teclado, por lo que muchos sistemas antivirus o de alerta no lo detectarán y podremos ejecutar lo que queramos.
Una vez hemos conectado MalduinoW a un equipo automáticamente se abre red con conexión wifi, podemos configurar el nombre de dicha red y las credenciales; además de que se pueden ejecutar scripts de manera automática según se conecta el USB.
Remotamente nos conectamos a dicha wifi y accederemos al panel de malduinow que tiene un aspecto como este:Una posibilidad es lanzar la línea de comandos o consola y después ejecutar el código o aplicación que queramos, malduinow utiliza comandos sencillos y se interpretan como un teclado, OJO al lenguaje del teclado que puede fastidiarnos los scripts, ya que dependiendo del idioma las teclas no tienen la misma salida, hay que tener en cuenta que los DELAY son necesarios y muy importante probar el proceso localmente para ver que funciona correctamente, por último, es multiplataforma, solo hay que conocer las teclas de cada sistema operativo.
Scripting básico
Tenemos diferentes comandos o palabras reservadas, os dejo una tabla con su uso:
Además permite hacer combinaciones de teclado, pero OJO, estas combinaciones dependen del SO y de la configuración, la combinación de las teclas Windows+R no tiene porqué tener la misma funcionalidad en dos sistemas.
Y finalmente el resto de teclas o funcionalidades, a tener en cuenta el uso de la cláusula STRING, que es lo que utilizaremos casi siempre para escribir en pantalla o en la aplicación que corresponda:
Ejemplo de scripting básico
Como se ve en el ejemplo, lo único que tenemos que hacer es definir el idioma y después ir transformando las pulsaciones del teclado en el formato del lenguaje de malduinow,
Scripting avanzado (pero solo un poco más)
Ahora vamos a ejecutar powershell como administrador del sistema:
Como veis es volver a interpretar lo que escribimos o pulsamos en nuestro teclado:
WINDOWS r --> abre la ventana de ejecución
STRING powershell --> escribe este texto en la ventana que tenemos ahora abierta
CRTL SHIFT ENTER --> combinación de teclas para ejecutarlo como administrador
LEFT --> para desplazar el foco a la izquierda (es donde aparece el texto "SI")
Y los diferentes DELAY para que no vaya demasiado deprisa y no se interprete todo
A partir de aquí la imaginación y nuestros conocimientos de scripting o sistemas operativos marcará la diferencia, por ejemplo, suponiendo que nos hemos conectado a un sistema Linux y que tiene instalado un netcat (si no podríamos instalarlo) podemos crear un script de este estilo:
O generar un usuario y asignarle al grupo de sudo:
E incluso por qué no, para exfiltrar información, podríamos utilizar pastebin:
Si os habéis fijado únicamente hay que seguir o copiar las teclas que vamos pulsando en nuestro sistema y después "traducirlo" al lenguaje de scripting de malduinow.
Es decir, con un USB de bajo coste, recopilando algo de información inicial y un poco de conocimiento de programación y sistemas operativos, podemos comprometer un sistema.
Y, ¿Cómo me protejo? Podemos generar políticas en nuestro sistema para que solo admitan determinados USB que tenemos registrados y catalogados o directamente que no se pueda conectar ninguno.
Si tienes alguna pregunta o quieres aprender más, escríbenos a nuestro correo o a nuestro buzón de MyPublicInbox