Brute Force Attack ad un File Rar per individuare la Password
Diverso da come si attacca un file Zip. Non bastano le librerie Python ma bisogna fare affidamento ad UnRAR.exe in combinazione con il seguente script. Ricordate sempre di utilizzare questi Cracker esclusivamente per i file di vostra proprietà e di cui avete smarrito la password.
import itertools
import rarfile
rarfile.UNRAR_TOOL = "C:\\unrar\\UnRAR.exe"
def prova_password(file_rar, password):
try:
with rarfile.RarFile(file_rar, 'r') as rf:
rf.extractall(pwd=password)
return True
except (rarfile.BadRarFile, rarfile.RarCRCError): # Cattura specifiche eccezioni relative a password errate
return False
except Exception as e:
print(f"Errore non previsto: {e}")
return False
def attacco_forza_bruta(file_rar, lunghezza_massima):
caratteri = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_=+[]{}|;:,.<>?'
for lunghezza in range(1, lunghezza_massima+1):
for combinazione in itertools.product(caratteri, repeat=lunghezza):
password = ''.join(combinazione)
print(f"Prova con: {password}") # Stampa ogni tentativo
if prova_password(file_rar, password):
print(f"\nPassword trovata: {password}")
return password
print("\nPassword non trovata.")
return None
# Usa la funzione attacco_forza_bruta
file_rar = "TestRar.rar"
lunghezza_massima = 4 # Prova password fino a una lunghezza di 4. Aumenta se necessario.
attacco_forza_bruta(file_rar, lunghezza_massima)