CyberChef : una aplicación web para descifrar, descodificar y transformar datos
Table of Contents
I. Introducción
Hoy me gustaría presentarte la herramienta CyberChef, y es seguro que después de leer este artículo, ¡formará parte de tu caja de herramientas diaria!
CyberChef es una aplicación web diseñada y puesta a disposición por GCQH (¡la inteligencia británica, nada menos!). Facilita enormemente la aplicación de funciones de codificación, descodificación, compresión, descompresión, cifrado y descifrado a los datos. Eche un vistazo :

Práctico, ¿verdad? Ya no tendrás que recordar el nombre del comando y las opciones para descomprimir un ".gzip", generar un hash"bcrypt" o cifrar una cadena de caracteres en AES, todo ello se puede hacer en CyberChef. Veamos cómo acceder y utilizarlo.
II. Instalación y acceso a CyberChef
CyberChef es principalmente una aplicación web, con una versión en línea alojada en la instancia Github.io de GCQH:
- Acceda a la versión en línea de CyberChef: https: //gchq.github.io/CyberChef/
Según las advertencias de su diseñador, y lo he comprobado: no se transmiten datos a ningún servidor de terceros cuando se utiliza la versión en línea de CyberChef. Todo ocurre en el lado del cliente, en JavaScript.
Sin embargo, si quieres manejar datos empresariales o que puedan contener información secreta o sensible (contraseñas, nombres de usuario o servidores internos), siempre es preferible tener tu propia instancia local. La forma más sencilla de hacerlo es utilizar la contenedorización a través de Docker :
# Descarga de la imagen de CyberChef y inicio de un contenedor
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
Después de ejecutar este comando, una instancia local de CyberChef estará disponible y accesible en el puerto 8080 de su host: http: //localhost:8080/
III. Uso de CyberChef
Ahora echaremos un vistazo a las principales áreas de la interfaz de CyberChef:

El espacio 1, llamado"Entrada", es donde se insertan los datos que se van a cifrar/descifrar, codificar/descodificar, etc. Puede ser texto o un archivo completo. Esto puede ser texto, o un archivo entero. El espacio 2 ("Salida") será el resultado de procesar estos datos de acuerdo con lo que le pida a CyberChef que haga. Aquí también puede recuperar fácilmente el texto o guardar el resultado en un archivo.
Es en el área 4 ("Operación") donde tendrá que seleccionar las diversas modificaciones que desea aplicar a su cadena de caracteres y, a continuación, simplemente arrastrarlas y soltarlas en el área 3 (denominada"Receta"). En el entorno CyberChef, la receta es simplemente la secuencia de operaciones (algoritmos, transformaciones, funciones) que aplicará a su cadena de entrada.
Por ejemplo, la siguiente receta aplicará codificación base64 a mi cadena, luego tomará el contenido y lo convertirá a hexadecimal:

Observe que"To" en"To Base64" y"To Hex" significa"a". Si, por otro lado, quiero decodificar mi cadena, debo usar"From Hex" y luego"From Base64", ¡y en el orden correcto!
Como en una receta, si realizas las operaciones en el orden correcto, obtendrás lo que quieres:

En concreto, puede intercambiar las distintas operaciones de su receta arrastrando cada una de ellas a la posición deseada.
Las "recetas" creadas pueden guardarse para su uso posterior sin tener que reconstruir manualmente toda la cadena.
Los dos grandes puntos fuertes de cyberChef son su facilidad de uso, como acabamos de ver, y la enorme cantidad de algoritmos, manipulaciones, transformaciones y funciones de hash, cifrado, codificación y compresión que admite. Para comprobarlo, basta con echar un vistazo a todas las categorías y posibilidades del menú"Funcionamiento" de la izquierda:
- Formato de datos: convierte datos entre distintos formatos, como JSON, XML, CSV, YAML, etc.
- Cifrado / Codificación: proporciona herramientas para cifrar y codificar datos, incluyendo AES, DES, ROT13, Base64, codificación URL, etc.
- Clave pública: Contiene operaciones relacionadas con la criptografía de clave pública, como RSA, ECDSA, generación de claves, cifrado y descifrado.
- Aritmética / Lógica: realiza operaciones aritméticas y lógicas, como sumas, restas, operaciones bit a bit, cálculos CRC, etc.
- Red: proporciona herramientas para analizar y manipular datos de red, como conversión de IP, consultas DNS, análisis de paquetes, etc.
- Idioma: incluye operaciones de conversión de texto entre distintos formatos (unicode, UTF-8, etc.).
- Utilidades: diversas utilidades como generación de números aleatorios, operaciones de sustitución de texto, recuento de ocurrencias, conversiones de bases, etc.
- Fecha / Hora: permite manipular fechas y horas, incluyendo conversores de marcas de tiempo, cálculo de diferencias entre fechas, etc.
- Extractores: herramientas para extraer información específica de los datos, como direcciones de correo electrónico, números de teléfono, URL, IP, etc.
- Compresión: proporciona herramientas para comprimir y descomprimir datos con algoritmos como gzip, zip, bzip2, etc.
- Hashing: contiene un gran número de algoritmos hash para generar hashes a partir de cadenas suministradas (no realiza ruptura de hash). También incluye una función que analiza los hashes para determinar su tipo.
- Ordenación del código: limpia y formatea el código para hacerlo más legible, lo que incluye minificar y embellecer HTML, CSS, JavaScript, etc.
- Análisis forense: herramientas para la investigación digital, como la extracción de metadatos, el análisis de archivos, la identificación de formatos de archivo, etc.
- Multimedia: contiene herramientas para manipular archivos multimedia, como conversión de imágenes, extracción de metadatos de archivos de audio/vídeo, etc.
- Otros: contiene herramientas que no encajan en las otras categorías, como generadores de códigos QR, pruebas regex, etc.
- Control de flujo: permite crear flujos de trabajo con operaciones condicionales, bucles y gestión de la ejecución de pasos individuales.
Puede pasarse literalmente horas simplemente navegando, comprendiendo y probando las distintas operaciones presentes en CyberChef, y hay algo para cada uso y cada profesión: administrador de sistemas, pentester, analista forense, desarrollador, etc. Pase el ratón por encima de cada operación para obtener una breve descripción:

La ventaja, por supuesto, es que puedes tenerlo todo en un mismo sitio, sin tener que recordar las opciones de una herramienta concreta, la URL del sitio que te permite minimizar el código HTML y JavaScript, etc.
También puede acceder rápida y fácilmente a las operaciones utilizando la sección "Favoritos", donde basta con arrastrar y soltar las operaciones a las que desea acceder rápidamente, o utilizando el área de búsqueda:

La herramienta también está repleta de funciones y posibilidades de personalización (tema oscuro en particular). Lo importante con esta herramienta es descubrir todas sus posibilidades y luego saber que puedes utilizarla para tus necesidades diarias.
IV. Ejemplo de funciones superútiles
A. Reorganización y mejora de la estructura del código
No es raro encontrarse con bloques de código mal indentados o incluso completamente minificados. Depurar este tipo de código puede ser muy complejo, ya que es difícil aislar los elementos interesantes, la estructura y el orden de las instrucciones, etc., del resto del código.
Cyberchef ofrece varias operaciones para reorganizar y sangrar diferentes lenguajes de programación o código fuente. He aquí un ejemplo con una consulta SQL compleja:

En este caso, he proporcionado a Cyberchef una consulta SQL compleja escrita en una sola línea. Al utilizar la operación"CodyTidy > SQL Beautify", obtengo una consulta mucho más legible y depurable.
B. Extraer direcciones IP de un texto
CyberChef contiene una serie de expresiones regulares que facilitan la extracción o el aislamiento de elementos específicos en un bloque de texto. El siguiente ejemplo extrae todas las direcciones IP presentes en un texto:

Aquí he utilizado la operación"Extractores > Extraer direcciones IP", fíjate en las opciones de esta operación que te permiten ordenarlas, eliminar direcciones localhost, etc.
C. Analizar un certificado x.509
CyberChef también puede utilizarse para leer y ordenar información sobre diferentes tipos de certificados, claves, etc. Lo utilizo en el siguiente ejemplo para mostrar los detalles de un certificado x.509 de forma legible. En particular, he utilizado la opción de proporcionar a CyberChef un archivo de entrada en lugar de un bloque de texto:

Gracias a la operación"Public Key > Parse X.509 certificate", en este ejemplo, ya no es necesario recordar las opciones del comando "openssl" para realizar esta operación en un terminal.
V. Conclusión
CyberChef es una herramienta versátil y útil para profesionales de la ciberseguridad, desarrolladores, analistas forenses y administradores de sistemas, entre otros. Su interfaz intuitiva y su amplia gama de funciones permiten procesar datos de forma eficiente, desde la codificación al cifrado, la conversión de formatos a la compresión, el hash y mucho más.
En mi experiencia, se convierte rápidamente en indispensable una vez que recuerdas que la herramienta existe y que necesitas utilizar una interfaz web en lugar de la línea de comandos.
Te animo a que pruebes esta solución y no dudes en dejarnos tu opinión en los comentarios o en nuestro Discord.