This page looks best with JavaScript enabled

Usando Cyberchef desde la terminal con Chepy

 ·   ·   4 min read  ·  Autor - Snifer

Seguro alguna vez usaste el sitio web CyberChef para realizar alguna tarea y automatizar procesos? Si desconoces el portal web en esta entrada hablaremos un poco de ello y además conoceremos una utilidad para la terminal que nos permite trabajar por medio de una librería y además desde una CLI las tareas de Cyberchef.

Que es Cyberchef ?

CyberChef es una herramienta web que permite realizar el cifrado de datos y descifrado a través de (recetas) procesos, evitando muchas veces usar un lenguaje de programación adicional, teniendo como fin automatizar procesos.

Como se ve en la captura anterior tenemos lo siguiente:

  1. Operaciones (operations) tenemos diferentes opciones para trabajar sobre ellos realizan diferentes ejercicios.
  2. Las recetas (recipies) es donde cargaremos las operaciones y cuando terminamos todo un proceso eso se convierte en una receta.
  3. Input y Output como sus nombres lo describen tenemos el dato de ingreso y por último la salida.

Considerando esto armaremos un ejemplo de receta que contamos con una entrada en base64 y el siguiente proceso es identificar que tipo de Hash es el que está siendo usado, para ello montamos la receta respectiva from base64 y Analyze Hash teniendo la identificación respectiva, primero realiza el decode de base64 y posteriormente analiza el Hash.

Veremos a continuación con Chepy como podemos hacer este proceso desde la terminal.

Chepy

Chepy es una librería para Python que brinda todas las opciones de Cyberchef contando también con un CLI que podemos interactuar para realizar las tareas de manera automatizada.

Instalacion de Chepy

Git pip3 y Docker

Para instalar Chepy, solo necesitamos hacer uso de pip3 es decir con python3 por si no lo tienes instalado, descargamos todas las dependencias y tenemos listo chepy en el equipo.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
✔ pip3 install chepy                                                                                                          Defaulting to user installation because normal site-packages is not writeable
Collecting chepy
  Downloading chepy-3.5.0.tar.gz (66 kB)
     |████████████████████████████████| 66 kB 641 kB/s
Collecting base58
  Downloading base58-2.1.1-py3-none-any.whl (5.6 kB)
Requirement already satisfied: colorama in /usr/lib/python3.9/site-packages (from chepy) (0.4.4)
Collecting crccheck
  Downloading crccheck-1.1-py3-none-any.whl (29 kB)
Requirement already satisfied: decorator in /usr/lib/python3.9/site-packages (from chepy) (5.1.0)
Collecting docstring-parser
  Downloading docstring_parser-0.13.tar.gz (23 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting emoji
  Downloading emoji-1.6.1.tar.gz (170 kB)
     |████████████████████████████████| 170 kB 860 kB/s
Collecting exrex
.
.
.
.
.
.
    Running setup.py install for exrex ... done
    Running setup.py install for emoji ... done
    Running setup.py install for chepy ... done
Successfully installed 

La otra manera de hacerlo es a través de git descargando todo el proyecto y haciendo la instalación respectiva, esta información está disponible en el mismo repositorio de github.

1
2
3
4
git clone --recursive https://github.com/securisec/chepy.git
cd chepy
pip3 install -e .
# I use -e here so that if I update later with git pull, I dont have it install it again (unless dependencies have changed)

Docker

Si prefieres tener la herramienta en un contenedor en Docker también puedes usarlo, en el GITHUB tienes el ejemplo de uso e interacción.

Ejemplos de Uso

Como lo mencionamos al inicio de la entrada contamos con dos formas de trabajar con Chepy y es desde la librería de Python o desde su propia CLI.

Desde su propia CLI

Cargamos la herramienta con el comando chepy ¨TEXTO a TRATAR¨ después de ello tendremos un prompt, el cual si comenzamos a escribir la función a utilizar el mismo nos brindara la opción para interactuar con su autocompletado más la breve descripción.

Si registramos tanto el decode de base64, como la identificación del hash obtendremos el resultado como en Cyberchef.

Script en Python

Después de identificar lo que necesitamos podemos armar un script en Python ya sea para que lea un solo fichero o todos los ficheros que se encuentren en un directorio, depende mucho de la necesidad que tengas y que tanto deseas automatizar.

1
2
3
4
5
6
7
8
9
from chepy import Chepy
path = "input"

print(
    Chepy(path)
    .load_file()
    .base64_decode()
    .identify_hash()
)

El resultado tras ejecutar el script.

Si adicionalmente deseamos almacenar la receta creada en un fichero de texto podemos hacerlo con .save_recipe(), en próximas entradas iremos viendo más opciones de uso y trabajo con la librería.

Conclusiones

Al realizar la identificación del HASH llegamos a obtener también dos parámetros adicionales Hashcat y John estos valores son a que parámetro corresponde para realizar el proceso de password cracking.

Inicialmente, podemos usar la CLI armar la receta y posteriormente automatizarlo en Python, viendo siempre que es nuestro objetivo a realizar, esta librería nos permitirá realizar múltiples tareas, poniendo siempre como limite nuestra imaginación.

Regards,
Snifer

Share on
Support the author with

Avatar
WRITTEN BY
Snifer
Creador del proyecto Snifer@L4b's. Consultor en Seguridad Informática.