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.
- Documentación OpenSSL sobre PEM: https://www.openssl.org/docs/manmaster/crypto/pem.html
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
- JtR en modo fork: 2 Minutos.
- JtR multihilo: 2 Minutos + 20 segundos.
- PemCrack: 2 Minutos + 26 segundos.