===== 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. * Formato PEM: [[https://en.wikipedia.org/wiki/Privacy-enhanced_Electronic_Mail]] * Documentación OpenSSL sobre PEM: [[https://www.openssl.org/docs/manmaster/crypto/pem.html]] **Utilidades**: [[https://github.com/magnumripper/JohnTheRipper|John the Ripper]] (bleeding-jumbo - Git Versión) / [[https://github.com/bwall/pemcracker|pemcracker]] / [[http://leidecker.info/projects/phrasendrescher/index.shtml|"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: [[https://github.com/bwall/pemcracker|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.