Mostrando entradas con la etiqueta Hardware Hacking. Mostrar todas las entradas
Mostrando entradas con la etiqueta Hardware Hacking. 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 


Juguetes Hacking VIII



Hola a tod@s

Los chicos de Hack5 nos sorprenden con otro juguetito, después de la piña, el pato y la tortuga, ahora es el turno del conejito. Su nombre Bash Bunny, se trata de un dispositivo de almacenamiento masivo, similar a su primo Rubber  Ducky. El conejo también posee por decirlo de alguna manera lenguaje propio, tiene la apariencia de una simple memoria USB y es capaz de robar todo tipo de información de cualquier sistema al que se conecte en cuestión de segundos.


Tenemos la posibilidad de ejecutar scripts y además cuenta con un entorno de pentesting o lo que es lo mismo la posibilidad de ejecutar Nmap, realizar descubrimiento de la red o creación de portales cautivos entre otros ejercicios.

El dispositivo emula ser un dispositivo de confianza tales como tarjetas de red Gigabit, memorias Flash, teclados y demás dispositivos. Además existe una gran fuente de scripts capaces de atacar fácilmente cualquier sistema informático y además de permitir a cualquier usuario crear sus propios scripts.

 
Si queréis adquirir este nuevo juguete o añadir a la lista de Papa Noel.

Keysniffer

Hola a tod@s

Me encanta el hardware hacking, entre piñas, patos y tortugas tenemos una gran fauna sin duda. Lo último con lo que me he topado y que me ha dejado alucinado es con Keysniffer, digamos que es similar a un keyloger, pues el atacante captura todo lo que la victima escribe en su teclado.



Lo más alucinante que está al alcance de todos bolsillo, cualquiera que tenga una antenita que intercepte el tráfico inalámbrico como Crazyradio PA (que por cierto sólo cuesta 30-40$ en Amazon) puede ver todo lo que estás tecleando la victima ingenua desde una distancia de varios metros. 
Además, lo mejor de este ataque es que se trata de un ataque pasivo, el atacante no transmite absolutamente nada, lo cual no deja rastro alguno.



La lista de dispositivos afectados incluye teclados inalámbricos de Anker, EagleTec, General Electric, Hewlett-Packard, Insignia, Kensington, Radio Shack y Toshiba.

Los teclados vulnerables a KeySniffer anteriormente mencionados utilizan USB dongles que continuamente transmite paquetes de radio a intervalos regulares, permitiendo al atacante capturar los datos que se envían incluso cuando la víctima no está en el tecleando.

No sólo esnifa, también inyecta. Los investigadores explicaron que un atacante podría aprovecharse también para inyectar pulsaciones de teclado y a modo de Rubber Ducky escribir en el PC víctima y realizar actividades maliciosa.

Los investigadores demostraron que se trata de una vulnerabilidad muy extendida. Desgraciadamente los teclados afectados no pueden ser parcheados por lo que la única solución es dejar de usarlos. 


¿Aparece tu teclado en la lista de dispositivos afectados? Compruébalo ya, o quién sabe, a lo mejor mientras lees estas líneas alguien cercano a tí puede estar escuchando todo lo que tecleas.

No seáis malos. 

Juguetes Hacking VII



Hola a tod@s

Vuelve la piña más famosa después de Gazpacho de los fruitis, Wi-Fi Pineapple NANO, en esta ocasión en su versión reducida, sin duda uno de los dispositivos que están dando más que hablar. Ahora tendremos una herramienta para auditar redes Wi-Fi que cabe en nuestro bolsillo, sencilla e intuitiva interfaz web y con el tamaño de un USB,  lista para “hack on the world”.

Al igual que su antecesora podemos acceder a la interfaz del NANO con un navegador web, que nos permite comprobar a simple vista el estado de la red Wi-Fi, y acceder a módulos con diferentes funcionalidades para el ataque.

También se vende aparte una funda con batería incorporada, para llevarnos el NANO encima y conectarlo por USB a nuestro smartphone buscando redes allá por donde vayamos. En su interior, el NANO tiene un procesador Atheros AR9331 a 400 MHz, 64 MB de RAM, y dos chips inalámbricos, uno Atheros AR9331 y otro Atheros AR9271.

Especificaciones:
-CPU: 400 MHz MIPS Atheros AR9331 SoC
-Memory: 16 MB ROM, 64 MB DDR2 RAM
-Disk: ROM + Micro SD (not included)
-Wireless: Atheros AR9331 + Atheros AR9271, both IEEE 802.11 b/g/n
-Ports: (2) RP-SMA Antenna, Ethernet over USB (ASIX AX88772A), USB 2.0 Host, Micro SD
-Power: USB 5V 1.5A. Includes USB Y-Cable
-Configurable Status Indicator LED, Configurable Reset Button




No seáis malos.