Cyberchef, herramienta para descubrir secretos y decodificar datos

En este artículo hablaremos de una herramienta que deberías incorporar cuanto antes a tu arsenal de herramientas de ciberseguridad y hunting.
Cyberchef es una herramienta que nos permite descubrir secretos, decodificar datos y, en general, buscar y encontrar información que está aparentemente oculta al ojo humano.
El mundo de la tecnología en general, y de internet, en particular, está lleno de secretos. Si alguna vez has abierto un navegador y has usado la vista de desarrollador o hecho clic en «Inspeccionar elemento» habrás visto una gran cantidad de información de la cual desconoces su significado y su propósito.

Esto es extrapolable a elementos más ubicuos, como pueden ser los códigos QR que encontramos en todas partes, o como los códigos de barras que podrían, perfectamente, revelar información personal de nosotros.

Es el caso de los billetes de avión el quizá más notorio. Según se trató por parte del experto Bryan Krebs ya en 2015, estos billetes contienen datos como el «frequent flyer number» y otros que permiten saber, por ejemplo, a dónde podríamos viajar en el futuro.
Usando Cyberchef para revelar información oculta
Podríamos describir Cyberchef como una especie de piedra Rosetta, que nos permitirá entender información cuyo formato desconocemos por completo, o incluso identificar patrones de datos conocidos en bloques que aparentemente no contengan nada.
Si eres técnico de ciberseguridad ya habrás visto el potencial que una herramienta como esta tiene para tus futuras investigaciones. Casos de uso puede haber muchos, desde un desarrollador web hasta un threat hunter que necesita recabar información para complementar sus investigaciones.
Se trata de una herramienta creada por el GCHQ británico para investigaciones, que posteriormente fue liberada al público.
Podemos ejecutarlo en la web oficial o descargarnos una página web completa para ejecutarlo en local, por si somos más paranoicos sobre la posible transmisión de información personal a servidores externos (algo que no he experimentado hasta ahora).

Casos de uso para Cyberchef
Veamos de qué formas nos podemos beneficiar de esta herramienta, viendo su aplicación en casuísticas reales. No están todas las posibilidadades reflejadas, son realmente muchas, pero sí las más importantes.
Extraer texto de imágenes
Empezaremos por algo realmente cool, que es la posbilidad de extraer texto de imágenes con su motor OCR incorporado.
Realmente, este apartado no tiene como objetivo traducir o descifrar información, pero nos puede ser de ayuda para transcribir a texto imágenes con mucha densidad.
Supongamos que tenemos una imagen como esta, y queremos extraer el texto.

Los pasos serán:
- Buscar la receta apropiada (en este caso, OCR)
- Cargar el archivo o carpeta
- Pulsar sobre Bake (cocinar). Por defecto el bake es automático.

El resultado se ve en el margen inferior izquierdo. En este caso, no hemos tenido mucha suerte y el margen de confianza es del 41%. Pero suele funcionar bastante bien.
Ahora, podemos incluso apilar diferentes recetas tomando como entrada el resultado de la receta anterior, en forma de embudo para ir moldeando nuestra información (ejemplo siguiente).

Generar un código QR para EICAR
Otro ejemplo bastante interesante, al menos para mostrarlo al público, es el de producir códigos QR para cosas tan variopintas como una sentencia EICAR (que, por si no lo sabes, sirve para simular una detección de virus).
- Receta: Generate QR Code
- Datos de entrada: Copiar lo siguiente.
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Resultado:

Generar un XSS Polyglot
Si traducimos esto a algo más de uso común, podemos por ejemplo aprovechar ql generador de códigos QR para elaborar un Cross Site Scripting Políglota.
Se trata de un vector que es ejecutable dentro de varios contextos diferentes en su formato en «bruto», de forma que no tenemos que modificarlo para atacar cada escenario. Es algo así como una llave maestra.
Si, por ejempo, utilizamos el siguiente código, podremos poner a prueba de ataques XSS a cualquier aparato que pueda procesar imágenes.
jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
Resultado:

Pasemos ahora a utilizar tareas más del día a día. por ejemplo la siguiente.
Cálculo de offset Base64
El cálculo de offsets nos permite conocer el aspecto que tendrá una sentencia en Base64 en función de la posición que ocupe dentro de un bloque de texto. Esto es así porque el Base64 no se representa igual si está al comienzo, al final o entre otros caracteres.
- Receta: Show Base64 offsets
- Datos de entrada: elegir un texto al azar

Generar múltiples hashes
Los hashes son como la matrícula individual e inequívoca de un fichero, carpeta o unidad. Nos sirven para identificar sin lugar a dudas una muestra cuando hablamos de ciberseguridad si, por ejemplo, queremos saber si está contenida en alguna lista negra como pueda ser Virustotal o similar.
Generar todos los hashes nos ahorrará tiempo si tenemos que analizar una muestra con diferentes herramientas, pues no todas utilizan el mismo tipo de hash.
- Receta: Generate all hashes
- Datos de entrada: introducir un conjunto de caracteres
Resultado.

Analizar un hash
Podremos saber todo sobre un hash (como saber si es un hash válido, su tipo, etc) con esta receta.
- Receta:Analyse hash
- Datos de entrada: introducir un hash. Ejemplo: 9fc85f5e44c78b12e7a5997192db22e2

Extraer URLs
Si tenemos que extraer IOC (indicadores de compromiso) en elementos con alta densidad de información, por ejemplo el código fuente de una página o programa, podemos usar esta útil función.
- Receta: Extract URLs
- Datos de entrada: introducir un elemento con URLs incrustadas de forma masiva. Ejemplo: view-source:https://www.google.es/
Resultado.

SIempre que nos encontremos con el botón «mágico» presente, quiere decir que podemos volver a tratar esa información de forma diferente para filtrarla mejor.

En este caso, si lo pulsamos conseguiremos que los parámetros pertenecientes a una misma URL no tengan un salto de linea, produciendo resultados más exactos.

Conclusiones
Como se puede observar tras los primeros compases con la herramienta, tiene realmente un montón que ofrecer. Se nota que le han dado cariño.
Por continuar, te sugiero probar cosas como la extracción de direcciones IP o la comprobación de expresiones regulares, que son otras características útiles.Cada receta puede ser guardada y compartida.
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.
Una pasada esta herramienta, bueno para mi todo lo que es tecnológico es una pasada 🤣 gracias por enseñarnos todas las herramientas y el mundo de la ciberseguridad y todo lo que ello conlleva.
Sí que lo es!