Última actualización: octubre 17, 2022
9.1.1.7 Práctica de laboratorio: Cifrar y descifrar datos con una herramienta de hacker (versión para el instructor)
Nota para el instructor: Los elementos con color de fuente rojo o resaltados en gris indican texto que aparece solo en la copia del instructor.
Objetivos
Parte 1: Crear y cifrar archivos
Parte 2: Recuperar contraseñas de archivos Zip cifrados
Antecedentes / Escenario
Supongan que trabajan en una gran corporación que tiene una política corporativa relacionada con los medios extraíbles. Específicamente, estipula que solo se pueden copiar documentos comprimidos cifrados en unidades Flash USB portátiles.
En esta situación hipotética, el Director Financiero (Chief Financial Officer, CFO) está en un viaje de negocios y se ha puesto en contacto con ustedes frenético pidiéndoles ayuda para resolver una emergencia. Mientas estaba de viaje por negocios, trató de descomprimir documentos importantes desde un archivo zip cifrado en una unidad USB. Sin embargo, la contraseña provista para abrir el archivo zip no es válida. El CFO se puso en contacto con ustedes para ver si podían hacer algo.
Nota: La situación es simple y solo sirve a modo de ejemplo.
Es posible que haya algunas herramientas disponibles para recuperar contraseñas olvidadas. Esto es especialmente cierto en situaciones como esta, en las que el analista especializado en ciberseguridad podría obtener la información pertinente del CFO, como la longitud de la contraseña, y tener una idea de cuál podría ser. Conocer la información pertinente es radicalmente útil cuando se está tratando de recuperar una contraseña.
Entre algunos ejemplos de utilidades y programas para recuperar contraseñas podemos mencionar los siguientes: hashcat, John the Ripper y Lophtcrack. En nuestro caso, utilizaremos fcrackzip, una simple utilidad de Linux para recuperar las contraseñas de archivos zip cifrados.
Tengan presente que los ciberdelincuentes pueden utilizar esas mismas herramientas para averiguar contraseñas desconocidas. Aunque no podrían acceder a cierta información pertinente, con el tiempo es posible que averigüen las contraseñas para abrir archivos zip cifrados. El tiempo necesario depende de la solidez y de la longitud de la contraseña. Las contraseñas más largas y más complejas (combinación de diferentes tipos de caracteres) son más seguras.
En esta práctica de laboratorio:
- Crearán y cifrarán archivos de texto de ejemplo.
- Descifrarán el archivo zip cifrado.
Nota: Esta práctica de laboratorio debe utilizarse solo con fines instructivos. Los métodos aquí presentado NO se deben emplear para asegurar datos realmente sensibles.
Recursos necesarios
- Máquina virtual CyberOps Workstation
- Acceso a Internet
Parte 1: Crear y cifrar archivos
En esta parte crearán algunos archivos de texto que se utilizarán para generar los archivos zip cifrados del próximo paso.
Paso 1: Crear archivos de texto
a. Inicien la VM CyberOps Workstation.
b. Abran una ventana del terminal. Verifiquen que están en el directorio de inicio de analyst. Si no es así, introduzcan cd ~ en el cursor del terminal.
c. Creen una carpeta nueva de nombre Zip-Files con el comando mkdir Zip-Files.
d. Ingresen a ese directorio con el comando cd Zip-Files.
e. Introduzca el siguiente texto para crear tres archivos de texto.
[analyst@secOps Zip-Files]$ echo This is a sample text file > sample-1.txt [analyst@secOps Zip-Files]$ echo This is a sample text file > sample-2.txt [analyst@secOps Zip-Files]$ echo This is a sample text file > sample-3.txt
f. Utilicen el comando ls para verificar que se hayan creado los archivos.
Paso 2: Comprimir y cifrar los archivos de texto
A continuación crearemos varios archivos comprimidos cifrados con contraseñas de diversas longitudes. Para hacerlo, cifraremos los tres archivos de texto con la utilidad zip.
a. Utilicen el siguiente comando para crear un archivo zip cifrado de nombre file-1.zip que contenga los tres archivos de texto:
[analyst@secOps Zip-Files]$ zip –e file-1.zip sample*
b. Cuando se le solicite una contraseña, introduzca una de un carácter de su elección. En el ejemplo se introdujo la letra B. Introduzcan la misma letra cuando se les solicite verificarla.
c. Repitan el procedimiento para crear los siguientes 4 archivos
- file-2.zip con una contraseña de 2 caracteres de su elección. En nuestro ejemplo, utilizamos R2.
- file-3.zip con una contraseña de 3 caracteres de su elección. En nuestro ejemplo, utilizamos 0B1.
- file-4.zip con una contraseña de 4 caracteres de su elección. En nuestro ejemplo, utilizamos Y0Da.
- file-5.zip con una contraseña de 5 caracteres de su elección. En nuestro ejemplo, utilizamos C-3P0.
d. Utilice el comando ls -l f* para verificar que se hayan creado todos los archivos comprimidos.
e. Traten de abrir un zip con una contraseña incorrecta, tal como se muestra.
[analyst@secOps Zip-Files]$ unzip file-1.zip
Parte 2: Recuperar contraseñas de archivos Zip cifrados
En esta parte utilizarán la utilidad fcrackzip para recuperar contraseñas olvidadas de archivos comprimidos cifrados. Fcrackzip busca archivos cifrados en cada archivo zip dado para adivinar la contraseña utilizando métodos de fuerza bruta.
El motivo por el cual creamos archivos zip con contraseñas de diversas longitudes es ver si la longitud de la contraseña tiene alguna influencia sobre el tiempo necesario para descubrirla.
Paso 1: Introducción a fcrackzip
a. En la ventana del terminal, introduzcan el comando fcrackzip –h para ver las opciones del comando asociadas.
En nuestros ejemplos utilizaremos las opciones de comando –v, -u y -l. La opción -l se incluirá a lo último porque especifica la posible longitud de la contraseña. Tienen plena libertad de experimentar con otras opciones.
Paso 2: Recuperar contraseñas utilizando fcrackzip
a. Ahora traten de recuperar la contraseña del archivo file-1.zip. Recuerden que se utilizó una contraseña de un carácter para cifrar el archivo. En consecuencia, utilicen el siguiente comando fcrackzip:
[analyst@secOps Zip-Files]$ fcrackzip -vul 1-4 file-1.zip
Nota: La longitud de la contraseña se podría haber definido en menos de 1 a 4 caracteres.
¿Cuánto tiempo es necesario para descubrir la contraseña?
Toma menos de un segundo.
b. Ahora traten de recuperar la contraseña del archivo file-2.zip. Recuerden que se utilizó una contraseña de dos caracteres para cifrar el archivo. En consecuencia, utilicen el siguiente comando fcrackzip:
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-2.zip
¿Cuánto tiempo es necesario para descubrir la contraseña?
Debe tomar aproximadamente un segundo.
c. Repitan el procedimiento y recuperen la contraseña del archivo file-3.zip. Recuerden que se utilizó una contraseña de tres caracteres para cifrar el archivo. Cronometren la operación para averiguar cuánto tiempo se necesita para descubrir una contraseña de 3 letras. Utilicen el siguiente comando fcrackzip:
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-3.zip
¿Cuánto tiempo es necesario para descubrir la contraseña?
Las respuestas variarán según la plataforma y la contraseña real utilizada, pero debería tomar aproximadamente uno o dos segundos.
d. ¿Cuánto tiempo es necesario para averiguar una contraseña de cuatro caracteres? Repitan el procedimiento y recuperen la contraseña del archivo file-4.zip. Cronometren la operación para saber cuánto tiempo es necesario para descubrir la contraseña con el siguiente comando fcrackzip:
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-4.zip
¿Cuánto tiempo es necesario para descubrir la contraseña?
Las respuestas van a variar según la plataforma y la contraseña real utilizada, pero debería tomar unos segundos.
e. ¿Cuánto tiempo es necesario para averiguar una contraseña de cinco caracteres? Repitan el procedimiento y recuperen la contraseña del archivo file-5.zip. La contraseña tiene una longitud de cinco caracteres; por ese motivo, tenemos que definir la opción -l del comando en 1-5. Nuevamente, cronometren la operación para saber cuánto tiempo es necesario para descubrir la contraseña con el siguiente comando fcrackzip:
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-5 file-5.zip
¿Cuánto tiempo es necesario para descubrir la contraseña?
Las respuestas van a variar según la plataforma y la contraseña real utilizada, pero debería tomar aproximadamente dos minutos.
f. Recuperar una contraseña de 6 caracteres utilizando fcrackzip
Aparentemente, se necesita más tiempo para descubrir contraseñas más largas y, por lo tanto, son más seguras. Sin embargo, una contraseña de 6 caracteres no desalentará a un ciberdelincuente.
¿Cuánto tiempo creen que demoraría fcrackzip para descubrir una contraseña de 6 caracteres?
Las respuestas pueden variar.
Para responder esa pregunta, creen un archivo de nombre file-6.zip con una contraseña de 6 caracteres de su elección. En nuestro ejemplo utilizamos Jarjar.
[analyst@secOps Zip-Files]$ zip –e file-6.zip sample*
g. Repitan el procedimiento para recuperar la contraseña del archivo file-6.zip con el siguiente comando fcrackzip:
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-6 file-6.zip
¿Cuánto tiempo demora fcrackzip para descubrir la contraseña?
Las respuestas van a variar según la plataforma y la contraseña real utilizada, pero tomará mucho más tiempo (horas).
La simple verdad es que las contraseñas más largas son más seguras porque se necesita más tiempo para descubrirlas.
¿Qué longitud recomendarían para que una contraseña sea segura?
Las respuestas pueden variar.