En alguna ocasión hemos
hablado de la prueba de Data Exfiltration que en un hacking ético 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 DLP/MLS o los AV. 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 diversos canales y formas de extraer información de una
organización. Hablaremos de Cloakify,
una herramienta que todo pentester
debe llevar en su mochila para este tipo de pruebas.
La herramienta de Cloakify 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 pokemos
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. 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 como 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.
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.
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, en una lista de strings,
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.
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. 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.
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.
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.
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.
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.