En el uso del cifrado de archivos a menudo todavía falta privacidad y es importante para las empresas. Incluso hoy en día, los correos electrónicos que contienen solicitudes de empleo, estados de cuenta o contratos suelen enviarse sin cifrar. Esto es una negligencia grave y, en muchos casos, incluso penado por la ley. Por ejemplo, el RGPD exige el almacenamiento y la transmisión cifrados de datos personales en la Unión Europea. Especialmente en los casos empresariales, esto es bastante diferente en el caso de los correos electrónicos. Hoy en día es bastante común comunicar temas confidenciales o enviar datos sensiblespor email. Sin embargo, los correos electrónicos no son mucho más seguros que las postales, que pueden ser interceptadas si el atacante está posicionado correctamente.
Cada vez más empresas están aumentando sus precauciones e infraestructura de seguridad de TI a través de cursos de capacitación y seminarios de concientización sobre seguridad. Como resultado, cada vez es más común que los empleados de la empresa cifren/codifiquen archivos confidenciales. Sin embargo, incluso estos pueden descifrarse y leerse con la elección correcta de listas y herramientas. En muchos casos, la encryptación simétrica cómo AES-256se utiliza para almacenar de forma segura archivos o carpetas individuales. Aquí, la misma clave se utiliza para cifrar y descifrar un archivo.
Por lo tanto, para enviar archivos se utiliza cifrado asimétrico, en el que se requieren dos claves independientes. El remitente cifra el archivo con la clave pública del destinatario. El destinatario, a su vez, puede descifrar el archivo utilizando una clave privada.
Buscando archivos codificados
Muchas extensiones de archivos diferentes pueden identificar estos tipos de archivos cifrados/codificados. Por ejemplo, se puede encontrar una lista útil en . Sin embargo, para nuestro ejemplo, solo veremos los archivos más comunes como los siguientes:
La mayoría de claves SSH que encontraremos hoy en día están cifradas. Podemos reconocer esto por el encabezado de la clave SSH porque muestra el método de cifrado en uso.
John The Ripper tiene muchos scripts diferentes para generar hashes a partir de archivos que luego podemos usar para descifrar. Podemos encontrar estos scripts en nuestro sistema usando el siguiente comando:
Podemos convertir muchos formatos diferentes en hashes únicos e intentar descifrar las contraseñas con esto. Luego, podremos abrir, leer y usar el archivo si lo logramos. Existe un script de Python llamado ssh2john.py para claves SSH, que genera los hashes correspondientes para las claves SSH cifradas, que luego podemos almacenar en archivos.
A continuación, debemos personalizar los comandos de acuerdo con la lista de contraseñas y especificar nuestro archivo con los hashes como el objetivo a descifrar. Después de eso, podemos mostrar los hash descifrados especificando el archivo hash y usando la opción --show.
Cracking de claves SSH
afsh4ck@kali$ john --wordlist=rockyou.txt ssh.hash
Using default input encoding: UTF-8
Loaded 1 password hash (SSH [RSA/DSA/EC/OPENSSH (SSH private keys) 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 0 for all loaded hashes
Cost 2 (iteration count) is 1 for all loaded hashes
Will run 2 OpenMP threads
Note: This format may emit false positives, so it will keep trying even after
finding a possible candidate.
Press 'q' or Ctrl-C to abort, almost any other key for status
1234 (SSH.private)
1g 0:00:00:00 DONE (2022-02-08 03:03) 16.66g/s 1747Kp/s 1747Kc/s 1747KC/s Knightsing..Babying
Session completed
afsh4ck@kali$ john ssh.hash --show
SSH.private:1234
1 password hash cracked, 0 left
Crackeando documentos
A lo largo de nuestra carrera nos encontraremos con muchos documentos diferentes, que además están protegidos con contraseña para evitar el acceso de personas no autorizadas. Hoy en día, la mayoría de la gente utiliza archivos Office y PDF para intercambiar información y datos comerciales.
Prácticamente todos los informes, documentación y hojas de información se pueden encontrar en forma de documentos DOC y PDF de Office. Esto se debe a que ofrecen la mejor representación visual de la información. John proporciona un script de Python llamado office2john.py para extraer hashes de todos los documentos comunes de Office que luego se pueden introducir en John o Hashcat para descifrarlos sin conexión. El procedimiento para descifrarlos sigue siendo el mismo.
afsh4ck@kali$ john --wordlist=/usr/share/wordlists/rockyou.txt protected-docx.hash
Loaded 1 password hash (Office, 2007/2010/2013 [SHA1 256/256 AVX2 8x / SHA512 256/256 AVX2 4x AES])
Cost 1 (MS Office version) is 2007 for all loaded hashes
Cost 2 (iteration count) is 50000 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1234 (Protected.docx)
1g 0:00:00:00 DONE (2022-02-08 01:25) 2.083g/s 2266p/s 2266c/s 2266C/s trisha..heart
Use the "--show" option to display all of the cracked passwords reliably
Session completed
afsh4ck@kali$ john protected-docx.hash --show
Protected.docx:1234
afsh4ck@kali$ john --wordlist=/usr/share/wordlists/rockyou.txt pdf.hash
Using default input encoding: UTF-8
Loaded 1 password hash (PDF [MD5 SHA2 RC4/AES 32/64])
Cost 1 (revision) is 3 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1234 (PDF.pdf)
1g 0:00:00:00 DONE (2022-02-08 02:16) 25.00g/s 27200p/s 27200c/s 27200C/s bulldogs..heart
Use the "--show --format=PDF" options to display all of the cracked passwords reliably
Session completed
afsh4ck@kali$ john pdf.hash --show
PDF.pdf:1234
1 password hash cracked, 0 left
Una de las mayores dificultades en este proceso es la generación y mutación de listas de contraseñas. Este es el requisito previo para descifrar con éxito las contraseñas de todos los archivos y puntos de acceso protegidos con contraseña. Esto se debe a que en la mayoría de los casos ya no es suficiente utilizar una lista de contraseñas conocidas, ya que éstas son conocidas por los sistemas y a menudo son reconocidas y bloqueadas por mecanismos de seguridad integrados.
Este tipo de archivos pueden ser más difíciles de descifrar (o no ser descifrables en absoluto en un período de tiempo razonable) porque los usuarios pueden verse obligados a seleccionar una contraseña o frase de contraseña más larga, generada aleatoriamente. Sin embargo, siempre vale la pena intentar descifrar documentos protegidos con contraseña, ya que pueden proporcionar datos confidenciales que podrían ser útiles para mejorar nuestro acceso.
Caso práctico
Utiliza la contraseña que ya hemos descubierto en la sección anterior del usuario Kira, inicia sesión en el host y descifra la clave SSH "id_rsa". Luego, envíe la contraseña de la clave SSH como respuesta.
Credenciales de acceso por SSH
User: kira
Pass: L0vey0u1!
Host: 10.129.219.191
Conexión por SSH
ssh kira@10.129.219.191
kira@10.129.219.191's password: L0vey0u1!
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-99-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu 18 Apr 2024 02:08:03 PM UTC
System load: 0.04 Processes: 180
Usage of /: 27.8% of 13.72GB Users logged in: 0
Memory usage: 30% IPv4 address for ens192: 10.129.219.191
Swap usage: 0%
0 updates can be applied immediately.
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
kira@nix01:~$
afsh4ck@kali$ john --wordlist=/usr/share/wordlists/rockyou.txt ssh.hash
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 0 for all loaded hashes
Cost 2 (iteration count) is 1 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
L0veme (kira_id_rsa)
Session completed.
Finalmente obtenemos la contraseña: L0veme
Si encontramos extensiones de archivos en el sistema con las que no estamos familiarizados, podemos utilizar los motores de búsqueda con los que estamos familiarizados para descubrir la tecnología detrás de ellas. Después de todo, hay cientos de extensiones de archivos diferentes y no se espera que nadie las sepa todas de memoria. Sin embargo, primero debemos saber cómo encontrar la información relevante que nos ayudará. Nuevamente, podemos seguir los pasos que ya cubrimos en las secciones de Credential Hunting en y o repetirlos para encontrar claves SSH en el sistema.
Si vemos un encabezado de este tipo en una clave SSH, en la mayoría de los casos no podremos usarlo inmediatamente sin realizar más acciones. Esto se debe a que las claves SSH cifradas están protegidas con una frase de contraseña que se debe ingresar antes de usarlas. Sin embargo, muchos suelen ser descuidados en la selección de la contraseña y su complejidad porque SSH se considera un protocolo seguro, y muchos no saben que incluso el ligero se puede descifrar.