Table of Contents

Fuerza bruta a llaves privadas / certificados cifrados en formato PEM

Un archivo .PEM es un certificado y/o llave codificado en Base64 acotado por las siguientes líneas.

CSR en formato PEM.

-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----

Llave privada en formato PEM.

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY----- 

Certificado en formato PEM.

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

El formato .PEM es ampliamente utilizado por ejemplo en servidores OpenVPN, HTTPS, FTPES, etc.

Utilidades: John the Ripper (bleeding-jumbo - Git Versión) / pemcracker / "phrasen|drescher / PD" (deprecated).

John the Ripper

Web: https://github.com/magnumripper/JohnTheRipper

Se debe instalar la versión John the Ripper de GIT denonimada bleeding-jumbo. utilizar la herramienta ssh2john para pasar el fichero en formato PEM a un formato compatible con JtR. Iniciar JtR con la opción “--format=ssh”.

./configure && make -s clean && make
cd ../run
./ssh2john key.pem > password_pem
 
# Ejemplo utilizando un diccionario.
./john --format=ssh --wordlist=rockyou.txt password_pem

NOTA: Recordar que la opción --fork puede obtener mejores resultados que el multihilo (Activado por defecto en la versión bleeding-jumbo).

PemCracker

Web: pemcracker

Tiene un rendimiento algo inferior a JtR pero muy aceptable, solo permite usar ataques de diccionario. Utiliza todos los núcleos del sistema.

pemcracker private.pem rockyou.txt 
# Número de hashes / Segundos / Número de hashes por segundo. (66170.7 x 1.51124 = 100000)
Hashes(100000) Per Second(1.51124s): 66170.7
Hashes(200000) Per Second(2.9956s): 66764.6
Hashes(300000) Per Second(4.50154s): 66643.9
...

Diferencias de rendimiento con un diccionario (wordlist) de 14944393 contraseñas.

Procesador: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz