Plugin de Latch’sApp para DataExfiltration Toolkit (DET)
Hace un par de días hablábamos de cómo hacer exfiltración de datos a través de Latch con Latch'sApp. Sí, un uso un tanto diferente, pero que era válido para intercambiar información oculta en las posiciones de los cerrojos de Latch, incluso, ¿por qué no? Hacer un cliente de mensajería diferente. Quizá la velocidad no sería la más puntera, a la altura del coche de Fernando Alonso en este comienzo de temporada, pero la exfiltración se podría realizar.
Durante el desarrollo de la IV Edición del Equinox, Álvaro Nuñez-Romero (@toolsprods) y yo, tuvimos tiempo para pensar en el uso de DET, Data Exfiltration Toolkit, y pensamos en migrar nuestro código escrito en Python a un plugin para esta herramienta. De esta forma, cualquier usuario podría tener nuestro hack en su DET.
Figura 2: Exfiltrando datos con Latch'sApp
Lo primero que trabajamos es ver como se extendían los plugins de DET. Sabíamos que DET tiene una serie de plugins para utilizar canales encubierto para exfiltrar datos, como, por ejemplo, el plugin de Twitter o el de Gmail. Por otro lado, utiliza otros plugins para exfiltrar datos a través de la esteganografía en protocolos de red, como, por ejemplo, HTTP, TCP o DNS. Como veis, y ya vimos en su día, interesante conjunto de herramientas para utilizar en los ejercicios de exfiltración de datos en un proyecto de hacking ético.
Hands On Lab: Mirando cómo funcionan los plugins de DET
DET se encarga de ejecutar todo lo necesario para que el plugin reciba y muestre los datos. Hay que recordar que DET tiene una arquitectura cliente-servidor en la que un extremo envía unos datos hacia el otro extremo. Mirando el funcionamiento nos damos cuenta que necesitaremos crear un fichero con unas funciones concretas, que será el plugin, y modificar el fichero JSON con nombre config, para que éste tenga en cuenta nuestro plugin con los valores que nosotros queramos.
El plugin tiene una función denominada send, a la cual DET le pasa el parámetro Data. Este parámetro son los datos a exfiltrar, byte to byte. Por otro lado, tiene una función denominada listen. Esta función será utilizada por la parte receptora, la que se supone que está fuera de la empresa. Se ejecutará una función u otra en función de los parámetros con los que se invoque DET. En esta otra imagen, se puede observar parte del código de la función listen.
PoC: Jugando con ambos extremos a Latchear y exfiltrar datos
Una vez escrito el plugin debemos actualizar el fichero de configuración de DET para que detecte nuestro plugin. En un alarde de imaginación se llama latch y así lo incluimos en el fichero de configuración.
Ahora, cuando preparemos el extremo A para exfiltrar los datos a través de las posiciones de los cerrojos de Latch tendremos que ejecutar la instrucción:
Por otro lado, en el extremo B se configurará DET para ejecutar el plugin de latch y ponerse a la escucha y recibir los datos. Para ello, se ejecutará la instrucción:
Como se puede ver, fue divertido participar en el Equinox y nos dio tiempo a sacar bastante juego a los cerrojos e, incluso, integrarlo en una herramienta de exfiltración de datos que podéis utilizar en un proyecto de hacking ético.
Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths
Figura 1: Plugin de Latch'sApp para Data Exfiltration Toolkit (DET) |
Durante el desarrollo de la IV Edición del Equinox, Álvaro Nuñez-Romero (@toolsprods) y yo, tuvimos tiempo para pensar en el uso de DET, Data Exfiltration Toolkit, y pensamos en migrar nuestro código escrito en Python a un plugin para esta herramienta. De esta forma, cualquier usuario podría tener nuestro hack en su DET.
Figura 2: Exfiltrando datos con Latch'sApp
Lo primero que trabajamos es ver como se extendían los plugins de DET. Sabíamos que DET tiene una serie de plugins para utilizar canales encubierto para exfiltrar datos, como, por ejemplo, el plugin de Twitter o el de Gmail. Por otro lado, utiliza otros plugins para exfiltrar datos a través de la esteganografía en protocolos de red, como, por ejemplo, HTTP, TCP o DNS. Como veis, y ya vimos en su día, interesante conjunto de herramientas para utilizar en los ejercicios de exfiltración de datos en un proyecto de hacking ético.
Hands On Lab: Mirando cómo funcionan los plugins de DET
DET se encarga de ejecutar todo lo necesario para que el plugin reciba y muestre los datos. Hay que recordar que DET tiene una arquitectura cliente-servidor en la que un extremo envía unos datos hacia el otro extremo. Mirando el funcionamiento nos damos cuenta que necesitaremos crear un fichero con unas funciones concretas, que será el plugin, y modificar el fichero JSON con nombre config, para que éste tenga en cuenta nuestro plugin con los valores que nosotros queramos.
Figura 3: Código para enviar los datos byte a byte |
El plugin tiene una función denominada send, a la cual DET le pasa el parámetro Data. Este parámetro son los datos a exfiltrar, byte to byte. Por otro lado, tiene una función denominada listen. Esta función será utilizada por la parte receptora, la que se supone que está fuera de la empresa. Se ejecutará una función u otra en función de los parámetros con los que se invoque DET. En esta otra imagen, se puede observar parte del código de la función listen.
Figura 4: Función listen para recibir los datos |
PoC: Jugando con ambos extremos a Latchear y exfiltrar datos
Una vez escrito el plugin debemos actualizar el fichero de configuración de DET para que detecte nuestro plugin. En un alarde de imaginación se llama latch y así lo incluimos en el fichero de configuración.
Figura 5: Plugin latch incluido en la configuración de DET |
Ahora, cuando preparemos el extremo A para exfiltrar los datos a través de las posiciones de los cerrojos de Latch tendremos que ejecutar la instrucción:
Python det.py –p latch –f [fichero a exfiltrar] –c [fichero de configuración config.json]En ese momento, DET ejecutará la función send implementada en el plugin de latch para DET y se comenzará el envío de los datos. Como se puede ver, DET simplifica muchos el juego.
Por otro lado, en el extremo B se configurará DET para ejecutar el plugin de latch y ponerse a la escucha y recibir los datos. Para ello, se ejecutará la instrucción:
Python det.py –p latch –l –c [fichero de configuración config.json]En el siguiente video se puede ver un ejemplo de uso y de exfiltración de datos con este método.
Figura 6: Demo de exfiltración de datos con DET usando latch
Como se puede ver, fue divertido participar en el Equinox y nos dio tiempo a sacar bastante juego a los cerrojos e, incluso, integrarlo en una herramienta de exfiltración de datos que podéis utilizar en un proyecto de hacking ético.
Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths
No hay comentarios:
Publicar un comentario