Mostramos un sencillo ejemplo en Python que, a partir de un fichero comprimido con contraseña 7zip y un fichero de contraseña posibles (diccionario), mediante fuerza bruta, comprueba todas las contraseñas del diccionario y si alguna es la correcta la obtiene y la muestra. Se trata de un ejemplo para test de seguridad, para que aprendamos a establecer contraseñas que no estén en diccionarios.

Código fuente Python para extraer contraseña de fichero 7zip mediante fuerza bruta (diccionario)

El código fuente en Python para leer todas las contraseñas contenidas en un fichero (diccionario) e ir comprobando una a una si es la correcta para un fichero comprimido 7zip es:

En el código anterior, suponemos que está instalado 7zip en la carpeta:

C:\Program Files\7-Zip\

En caso de estar en otra carpeta el fichero 7z.exe, se especificará en la línea correspondiente del código.

El código Python de ejemplo muestra el progreso en función de la palabra actual comprobada del diccionario y el total de palabras que hay en el diccionario.

Ejecutar el script Python para obtener contraseña de fichero 7zip

Si guardamos el código Python en un fichero, por ejemplo con el nombre contraseña_7zip.py y lo ejecutamos con el comando:

& «C:/Program Files/python.exe» d:/ProyectoA_Python/Contraseña7zip/contraseña_7zip.py D:\ProyectoA_Python\Contraseña7zip\a.7z D:\ProyectoA_Python\Contraseña7zip\1.dic

En el comando anterior suponemos lo siguiente:

  • Que tenemos el fichero python.exe instalado en la carpeta C:/Program Files/
  • Que tenemos el fichero 7zip en D:\ProyectoA_Python\Contraseña7zip\, con el nombre a.7z
  • Que tenemos el fichero de diccionario con las posibles contraseñas en D:\ProyectoA_Python\Contraseña7zip\ con el nombre 1.dic
  • Que el fichero 1.dic contiene una serie de palabras que puedan ser la contraseña, separadas por un salto de línea:

Si el programa encuentra la contraseña correcta para descomprimir el fichero 7zip la mostrará con el mensaje «La contraseña es: ….»:

Ejemplo en Python para obtener contraseña de fichero 7zip por fuerza bruta leyendo diccionario

Y en caso de no encontrarla en el diccionario, tras comprobar todas las palabras, mostrará el mensaje «¡No se ha encontrado la contraseña en el diccionario!»:

Ejemplo en Python para obtener contraseña de fichero 7zip por fuerza bruta leyendo diccionario

Recomendaciones para establecer contraseñas seguras

Como podemos comprobar, la efectividad de este método de extracción de contraseña de un fichero comprimido 7zip irá en función del diccionario empleado. Por ello, por seguridad, recomendamos usar contraseñas que no tengan que ver con nombres, palabras, animales, lugares o cualquier otra combinación que sea susceptible de estar en un diccionario. Lo ideal es usar una combinación de caracteres numéricos, letras y especiales que no tengan significado.

Hay infinidad de diccionarios disponibles para descarga de varias temáticas. Todos ellos contienen millones de palabras y combinaciones. Por ello, repetimos, cuando se introduce una contraseña, sea en un fichero comprimido 7zip o en cualquier otro medio, recomendamos usar palabras sin significado ni posibilidad de que existan en diccionarios.

Un ejemplo de contraseñas inseguras y fácilmente detectables por fuerza bruta:

Murcia2000
España…
123456
8888888
Juan27

Un ejemplo de contraseñas seguras, que no estarán en diccionarios ni se podrán obtener con combinaciones de estos:

8U.h3pa*2KR7
iOh,249%fgUW