the_open_door
café
ESEN
← Volver al índice

Cracking protected files (.zip, .pfx, .kdbx)

ATT&CKT1110.002
Arsenal completo de comandos en la cheatsheet

Cuando durante la enumeración aparece un fichero protegido por contraseña (un .zip, un .pfx, un .kdbx...), no siempre hay que conocer la contraseña: si es débil o está en un diccionario, se recupera offline extrayendo un hash del fichero y atacándolo con un diccionario como rockyou.txt. La gracia del ataque offline es que no genera ruido ni bloqueos en ningún servicio: todo el trabajo es local.

El patrón *2john

La familia de conversores *2john extrae de cada formato el material que verifica la contraseña y lo escribe en la sintaxis de hash que john (o hashcat) entiende. El flujo es siempre en dos tiempos: extraer y crackear.

zip2john backup.zip   > hash    # o directamente: fcrackzip -v -u -D -p rockyou.txt backup.zip
pfx2john user.pfx     > hash    # PKCS#12 (clave + certificado)
keepass2john base.kdbx > hash   # base de datos KeePass
ssh2john  id_rsa      > hash    # clave privada SSH con passphrase

john --wordlist=/usr/share/wordlists/rockyou.txt hash
john --show hash                # volver a mostrar lo ya crackeado (~/.john/john.pot)

Con hashcat, los modos equivalentes son -m 13600 (ZIP), -m 13400 (KeePass), -m 22911 (PKCS#8/PFX según variante) y -m 22921 (SSH). john suele detectar el formato solo.

ZIP específico

Para un .zip cifrado, fcrackzip prueba el diccionario directamente contra el fichero; el flag -u descomprime cada candidato para descartar falsos positivos:

fcrackzip -v -u -D -p /usr/share/wordlists/rockyou.txt backup.zip   # muestra PASSWORD FOUND

Conviene no asumir que la contraseña del .zip y la del .pfx que contiene son la misma: pueden diferir, y cada capa puede requerir su propio ataque. Una vez recuperada la contraseña del .pfx, se extraen la clave privada y el certificado con openssl pkcs12 para usarlos donde corresponda (por ejemplo, winrm-cert-auth).

Requisitos

Tener el fichero protegido (leído de un share, FTP, backup...) y que su contraseña sea débil o esté en un diccionario. No hace falta acceso a ningún servicio: el ataque es enteramente local.

Cómo detectarlo. El crackeo es enteramente offline y local al atacante: no genera ruido ni bloqueos en ningún servicio, por lo que es indetectable en la víctima por diseño. Lo detectable es el acceso al fichero: la lectura o descarga del .zip/.pfx/.kdbx de un recurso compartido deja un Event ID 5145 (SMB) o un 4663 con SACL en Windows, y un evento de auditd en Linux; que un usuario copie un contenedor de credenciales de un share es la señal temprana. Después, el uso del certificado o la credencial recuperada sí es visible (ver winrm-cert-auth). La detección real es vigilar quién accede a esos ficheros sensibles, no el crackeo en sí.

Defensa. Un fichero protegido por una contraseña débil no protege nada: las claves, certificados y bases de contraseñas deben custodiarse con contraseñas fuertes y, mejor aún, no dejarse en recursos compartidos accesibles. Encadena con el crackeo de hashes y la reutilización de credenciales.

HerramientasJohn the Ripperhashcatopenssl

Máquinas donde se aplica