Blog Blog

Abusing pyAesCrypt 6.1.1

October 1, 2025
Abusing pyAesCrypt 6.1.1

Introducción


Hola compañeros hackers, hoy quiero compartir con ustedes una técnica de explotación que descubrí mientras resolvía un laboratorio en la plataforma de ciberseguridad **HackTheBox**.

En este post no exploraremos ningún CVE específico, sino que nos enfocaremos en **aprovechar las debilidades de implementaciones de cifrado pobres y predecibles** que utilizan software de encriptación con configuraciones inseguras.

De manera práctica, veremos cómo explotar archivos cifrados que **dependen únicamente de una passphrase débil**, ejecutando ataques de fuerza bruta con scripts personalizados que desarrollaremos paso a paso.

## ¿Qué aprenderás?

- Identificación de archivos cifrados con **PyAesCrypt**
- Desarrollo de scripts de fuerza bruta personalizados.
- Explotación de configuraciones de cifrado débiles.

Práctica

Primero vamos a identificar un archivo encriptado con este framework de python.

De manera siguiente podemos consultar la página oficial y su propia documentación.

Podemos intentar utilizar algún tipo de contraseña que hayamos podido deducir del ataque o algun tipo de palabra predecible del lugar donde extrajimos el documento .zip.aes.

Con los siguientes comandos podemos invocar una shell de python para empezar a jugar sin necesidad de abrir un proyecto y ejecutarlo.

En este caso vemos que nos da un "Wrong Password".

Podriamos intentar hacer un desencriptado con "OpenSSL" pero esto no funcionará ya que el framework de encriptado es diferente. Por lo tanto, teniendo enumerados todos estos datos y con la ayuda IA si no tenemos mucha experiencia en programación podemos llegar al siguiente código que itera contraseñas sin un tiempo fuera.

Este sencillo script lo hice con la intención de no hacerlo gráfico o con debug, solamente que me resuelva el problema de desencriptar con fuerza bruta lo que necesitaba.

1import pyAesCrypt
2
3# Leer rockyou
4with open("rockyou.txt", "r") as wordlist:
5 for password in wordlist:
6 password = password.strip()
7
8 try:
9 pyAesCrypt.decryptFile("data.txt.aes", "dataout.txt", password)
10 print(f"[+] Encontrado contraseña: {password}")
11 break
12 except:
13 pass

Si necesitas detalles o explicación de como funciona este código recomiendo estudiar un poco de python para poder leer código y entender su funcionamiento, en varias etapas de nuestra carrera como pentester vamos a tener que analizar algún tipo de codigo, por lo tanto recomiendo ampliamente interpretarlo y por qué no tambien escribirlo, ya que en certificaciones como OSCP, o CTPS vamos a tener que armar nuestros propios scripts para resolver los problemas que se nos presenten.

Se puede anidar a este tipos de ataques un diccionario personalizado que hayamos creado tambien posiblemente con un script en python.

A continuación los resultados de este script.

Cierre

Este post no está orientado unicamente a un exploit de un framework, sino pretende apoyar a cualquier entusiaste de la ciberseguridad para apoyar su pensamiento lateral y aplicarlo en demás casos.

Como extra, este script si no está encriptado se puede anidar con crear un diccionario personalizado para poder atacar en la fuerza bruta.

Es importante saber crear diccionarios personalizados con python para poder maximizar el rango de explotación.

Ciertamente este ataque se puede hacer más bonito y publicarlo en github, tal vez lo tenga como un proyecto pendiente ;).

Muchas gracias. !

Raúl Zavaleta

Raúl Zavaleta

Entusiasta y eterno estudiante de ciberseguridad.