En alguna ocasión hemos hablado de la prueba de
Data Exfiltration que en un proceso de
Ethical Hacking se debe realizar en algunas ocasiones. La tarea siempre es divertida, ya que te pones en el lugar un empleado o persona con acceso a la información privada e intentas crear un camino para saltarse los mecanismos de protección como pueden ser los sistemas de
DLP (Data Loss Prevention), los servicios que usando
Machine Learning analizan las actividades de usuario con las herramientas de
Human Behavior Analytics o los mismos
antimalware que vigilan el end-point.
|
Figura 1: Cloakify. "Exfiltrar datos usando Pokemos, Emojis o StarTrek" |
Para muchos, es más divertido romper cristales que ponerlos, y en este caso se trata de romper cristales sin que nos vean. De todos modos, hoy en día, el atacante tendrá cierta parte de ventaja, ya que se disponen de muchos canales y formas de extraer información de una organización. Hoy hablaremos de
Cloakify, una herramienta que todo
pentester debe llevar en su mochila para este tipo de pruebas.
La herramienta aporta una curiosa forma de cifrar y ocultar información para que analistas y sistemas de detección no lo vean como algo de interés. Además, cualquier puede generarse su
payload, entendiendo
payload como la forma para cifrar y descifrar. Una de las cosas curiosas de
Cloakify es que te permite generar ficheros de texto con
emojis,
pokemons o ubicaciones de
pokemons y códigos de
StarTrek. Por supuesto, para poder sacar dicha información quizá debamos añadir alguna técnica como la encapsulación a través de
DNS, utilizar un canal encubierto, como por ejemplo
Gmail, o cualquier otro medio.
Punto de partida
Para el ejemplo de partida, queremos cifrar el fichero ideas de
desarrollo.docx, para que pase desapercibido ante los ojos de otros usuarios. Para ello existen diversos
ciphers, pero como dije antes, me llamó mucho la atención los
emojis, los
pokemons y
StarTrek. En la imagen, se puede ver cómo se ha cifrado con los
ciphers comentados anteriormente. El tamaño del fichero crece considerablemente, y deberá ir acompañado con un canal de filtrado de datos, como se comentó anteriormente.
|
Figura 3: Cifrado del fichero con emoji, Pokemon y StarTrek |
Las posibilidades que
Cloakify ofrece son bastantes, como se puede ver en la siguiente imagen. Además, se dispone de la posibilidad de crear nuestro propio
cipher, incluso dotándolo de entropía. A continuación, mostramos los diferentes
ciphers con los que se puede jugar.
|
Figura 4: Todos los ciphers disponibles en Cloakify |
Podemos resumir que
Cloakify es un conjunto de herramientas que proporcionan técnicas para evadir
DLP/MLS, al analista, los controles de aplicaciones o la detección de
AV. Todo está basado en cifrado utilizando listas. La herramienta puede convertir cualquier tipo de fichero, ejecutables, zip, imágenes, etcétera, en una lista de cadenas, difíciles de detectar o de imaginar qué son.
Cloakify: Acción!
Para llegar a cabo la transformación de los datos reales en una lista de
strings, simplemente hay que ejecutar archivo,
escrito en Python,
cloakify.py. La sintaxis de ejecución es la siguiente:
cloakify.py [fichero a convertir] [cipher] > [fichero resultante]
Por ejemplo:
python cloakify.py ideas.docx ciphers/pokemonGo.ciph > pokemon.txt.
¿Cómo está funcionando Cloakify?
En primer lugar, codifica en
Base64 el
payload. Después, aplica el
cipher para generar un listado de
strings. Una vez, se extrae la información de dónde se requiera, utilizando el medio o vía que se quiera, se puede utilizar
Decloakify para hacer el proceso inverso y obtener el fichero original.
|
Figura 5: fichero codificado como lista de pokemons |
Como bien indican los desarrolladores de la herramienta,
Cloakify no tiene un esquema seguro de cifrado, ya que es vulnerable a ataques de análisis de frecuencia (vease
critografía y criptoanálisis al uso). Por esta razón, se recomienda utilizar
noiseTools, es decir, herramientas que generen ruido, en este caso scripts que añadan entropía al proceso de cifrado. Para la generación de entropía
Cloakify proporciona diferentes
scripts:
• PrependID.py.
• PrependLatLonCoords.py.
• PrependTimestamps.py.
Cada uno añade información distinta y “
pseudo-aleatoría” con el objetivo de mejorar la resistencia a los ataques para detectar y descifrar el mensaje. Para crear nuestro propio
cipher debemos:
• Generar un listado de al menos 66 palabras únicas, pueden ser frases o símbolos.
• Generar el listado de forma aleatoria.
• Eliminar duplicados.
|
Figura 6: Listado de palabras para hacer un cipher |
En la imagen superior vemos como creamos un fichero denominado
Luca.ciph, con el que metemos nombres, frases, números, etcétera. Cuando utilizamos el
cipher con
Cloakify, obtenemos el fichero
ideas.docx original en un listado de
strings en un fichero de texto, con las palabras que hemos utilizado anteriormente para crear el
cipher, tal y como se puede ver en la siguiente imagen.
|
Figura 7: Fichero cifrado con el cipher creado |
Para generar la entropía utilizamos, en este caso, el
script PrepentTimeStamps.py. Tal y como se puede ver en la imagen, se añade entropía de marcas de tiempo, aunque sean la misma palabra al final.
|
Figura 8: Generando entropia |
Para volver a obtener el fichero original utilizamos
Decloakify de la siguiente manera:
python decloakify [fichero cifrado] [cipher] > [nombre fichero descifrado]
El resultado es la obtención del mismo fichero que se cifró al principio. Lógicamente, el proceso de
Decloakify, debería realizarse una vez se ha exfiltrado la información de la organización, en el modo auditoría o hacking ético.
|
Figura 9: Decodificación del fichero |
Como se puede ver, esta herramienta tiene un uso sencillo y potente, y merece estar en la mochila de cara a un hacking ético. De todos modos, la suma de herramientas y técnicas será más eficiente, y podrá aportarnos un mayor valor en este tipo de pruebas, por lo que se recomienda la utilización de canales encubierto y ofuscación o cifrado mediante textos
“sin valor” como
emojis o nombres y ubicaciones de
pokemons. Disfruta de tu exfiltración.
Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”
No hay comentarios:
Publicar un comentario