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 


Game of Thrones Hacking CTF

Game of Thrones Hacking CTF

OscarAkaElvis 1 Comment
Hola a todos, vengo a presentaros otra iniciativa para promover el hacking. ¿Qué mejor manera que jugando? Se trata de un reto de hacking que además viene ambientado en el mundo de fantasía de Juego de Tronos.

Banner

Se trata de una máquina virtual compatible con Vmware y Virtualbox. Tras importarla y levantarla, deberemos "destripar" este servidor que ofrece múltiples servicios y posibilidades. Al viejo estilo de capturar la bandera (CTF Capture de Flag), se trata de ir hackeando poco a poco los servicios de esta máquina e ir encontrando las diferentes banderas hasta completar el reto.

Se deberá ir "viajando" por los siete reinos conquistando sus banderas uno a uno. Además de esto, está el contenido extra que son algunas banderas secretas y la batalla final. Son un total de 11 contando todas las banderas.

Prompt de login de la vm del reto
El nivel del reto es medio-alto. Algunas banderas pueden resultar más o menos sencillas y otras no tanto. Podría ser peor! podría ser puramente alto o muy alto!! así que si te gusta la seguridad informática anímate sea cual sea tu nivel e inténtalo. Ten por seguro que algo aprenderás además de divertirte y pasar un buen rato.

Esta es la url del reto, en ella podemos encontrar algunas instrucciones y los links de descarga:

https://github.com/OscarAkaElvis/game-of-thrones-hacking-ctf

El reto está íntegramente en inglés, todo hay que decirlo. Cualquier duda podéis consultarla con el autor (un servidor) en los mails de contacto que se indican en la página.

Buena suerte a los participantes y que los dioses nuevos y los antiguos os protejan!!!

Axolotl un Keylogger para iPhone y Android

Hola a tod@s


El Machine Learning se podría decir que se encuentra entre un subcampo de las ciencias de la computación y una rama de la inteligencia artificial. El objetivo de esta ciencia es desarrollar técnicas que permitan a los ordenadores aprender. 



Es cierto que el Machine Learning está más de moda que nunca, es cada vez más frecuente el uso de estas técnicas por grande corporaciones y esto es sólo el comienzo, ¿acabaran las máquinas sustituyéndonos a los profesionales del sector? No obstante el Machine Learning no es nuevo, ya hace años hubo proyectos de Machine Learning vinculados con la seguridad informática. Por ejemplo, utilizar el Machine Learning en datos de audio deteclados de PCs, móviles o cajeros automáticos para extraer contraseñas o lo que es lo mismo Side-channel attack. La estrategia se basa en diferenciar el sonido emanado por las diferentes teclas, es decir cada tecla suena diferente a la otra, es diferenciadora.

El proyecto Axolotl se describe en un ataque donde las lecturas del acelerómetro/giroscopio y el machine learning se utilizan para desarrollar un keylogger para dispositivos móviles. Los creadores han desarrollado un ataque que explota el acelerómetro (que se encarga de las medidas del movimiento) y el giroscopio (que se encarga de medir la rotación), ambos no requieren permisos y pueden ser leídos por aplicaciones en segundo plano.

El estudio se basa en 4 hipótesis:

  1. Cuando toque en su teléfono, que se mueve, (obvio).
  2. Este movimiento puede ser recogido por el giroscopio y el acelerómetro.
  3. Este movimiento es distinta de otros movimientos y puede ser identificado por machine learning y técnicas estadísticas.
  4. El movimiento es lo suficientemente exclusivo para identificar dónde ocurrió en pantalla.


Los creadores han publicado en Github todo el código, para más información sobre el proyecto visitad su el siguiente enlace: https://github.com/tomasreimers/axolotl

Mekronos, una historia sobre IAs

Buenas amigos, voy a abrir la temporada de posts de estación informática, con uno algo diferente, hoy voy a hablar de una pequeña bilogía la cual me resultó interesante.
El nombre de esta bilogía es Mekronos (y en el segundo libro Mekronos: Metamorfosis), en un principio me llamó la atención su portada:
Pues el color rojo, y la imagen de un dragón de fondo, me recordaba a mi ya algo anticuado Backtrack 5 R3 (Sistema operativo con el que empecé en el mundo del hacking):

Este libro cuenta la historia de un mundo digital más allá de lo que se conoce como Internet, o inclusive la Deep Web. Este mundo es conocido como Aicran, este mundo digital está dividido en varias barreras, cada una con un distinto propósito muy relacionados con distintas funciones actuales de la actual internet. Una de las barreras es Edén, la cual sería un buscador de información completo, toda la información existente en equipos electrónicos estaría aquí condensada,  y otra de las barreras (de cuatro existentes) es Rea, Rea vendría a ser como un maps chetado, incluyendo dentro de la imagen de este mundo, todos los dispositivos conectados a internet.
Este mundo es el lugar de residencia de las inteligencias artificiales (IAs). Algunas personas son capaces de entrar en Aicran a través de distintos linker corpse que les conectan a una IA en concreto, estas personas son llamadas receptores.
La historia se centra en una estudiante de periodismo llamada Esmeralda Creus, la cual tras una fatídica noche, despierta con un tatuaje algo extraño, este tatuaje se conoce que es una IA biológica, la cual no sólo es capaz de existir en Aicran si no también en el mundo real, esta IA es llamada Mekronos y en lugar de tener un linker corpse para conectar con un receptor, él es su propio linker corpse y tiene que vivir como un simbionte pegado a su receptor.
Esmeralda se verá implicada en problemas con una organización terrorista conocida como Nargos los cuales odian todo tipo de tecnología, y han introducido en España una nueva droga, la cual es capaz de sedar y someter completamente a todas las personas que la toman.


Es una historia que la verdad, a pesar de no tocar más que libros técnicos, personalmente me consiguió enganchar hasta finalizar los dos libros, para conocer más de la historia, sólo tenéis que ir a Amazón:
Mekronos
Mekronos Metamorfosis

Su autora Gema López, a pesar de su edad, tiene ya varios libros publicados y apunta a una larga y gran carrera dentro del mundo de la escritura. Podéis conocer más sobre ella en su blog: La Contraportada.

Hasta aquí el post para comenzar septiembre, pero tened por seguro, que esta temporada traerá muchas novedades y sorpresas.
Fare9