English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spiegazione dettagliata del metodo di crack delle password dei file zip con Python

Premessa

Grazie al modulo zipfile integrato in Python, è possibile decomprimere file zip e aggiungere ingredienti per completare la decrittazione delle password

Il modulo zipfile viene utilizzato per la compressione e decompressione di file in formato zip, all'interno di zipfile ci sono due classi molto importanti, rispettivamente ZipFile e ZipInfo, in quasi tutti i casi, è sufficiente utilizzare queste due classi. ZipFile è la classe principale, utilizzata per creare e leggere file zip mentre ZipInfo memorizza le informazioni di ciascun file del file zip.

Ad esempio, per leggere un modulo zipfile Python, qui supponiamo che filename sia il percorso di un file:

import zipfile 
z = zipfile.ZipFile(filename, 'r') 
for i in z.infolist(): 
print i.file_size, i.header_offset 

Qui viene utilizzato z.infolist(), che restituisce tutte le informazioni sui file nel pacchetto compresso, ossia una lista di ZipInfo. Un oggetto ZipInfo contiene le informazioni su un file nel pacchetto compresso, tra cui i più comuni sono filename, file_size, header_offset, rispettivamente il nome del file, la dimensione del file, l'offset dei dati del file nel pacchetto compresso.

Fase di preparazione

Prima di tutto, hai bisogno di un file compresso e di aggiungere una password a esso, ha questo aspetto


Poi hai avuto successo nel ottenere un file compresso con password predefinita, bene, è finita qui

Attacco a forza bruta

Prima di tutto, dobbiamo sapere cos'è l'attacco a forza bruta, in parole semplici, è confrontare in modo iterativo, tutti sanno dell'hash MD5, MD5 è reversibile, quindi come possono fare i siti di decrittazione MD5 online? In realtà, è anche un attacco a forza bruta.

Facciamo un esempio, hai criptato una stringa con MD5, str="abc", il risultato della criptazione è "3cd24fb0d6963f7d", un lungo stringa che gli altri non capiscono, come fanno i siti di decrittazione MD5? Invece di fare qualcosa di utile, si mettono a provare a criptare aa/cc/bb/abc e così via con MD5, li memorizzano nel loro database, quando cerchi, loro confrontano "3cd24fb0d6963f7d" nel database, se c'è una coincidenza, troverai, ma nella maggior parte dei casi, se la tua stringa criptata è più complessa, non troverai nulla, questo è ciò che si chiama decrittazione MD5, ossia attacco a forza bruta

Il codice sopra

import zipfile #Importa il modulo, è usato per la compressione e la decompressione
password="123" #Password impostata
zfile = zipfile.ZipFile("test.zip") #Pacchetto compresso da estrarre
zfile.extractall(path='C:\\Users\\Administrator\\Desktop\\', members=zfile.namelist(), pwd=password.encode('utf-8'))
#Esegui l'operazione di estrazione

Eseguiamo il codice sopra (ovviamente la tua password deve essere 123), scopriremo che sul desktop è già stato estratto test.zip, un ending perfetto, ma c'è ancora un attacco a forza bruta, se sai la password, cos'altro c'è da rompere? Non preoccuparti, continua a leggere

import zipfile 
zfile = zipfile.ZipFile("test.zip")
passFile=open('pwd.txt') # Leggi il file di password che hai impostato
for line in passFile.readlines():
  try:
    password = line.strip('\n')
    zfile.extractall(path='C:\\Users\\Administrator\\Desktop\\', members=zfile.namelist(), pwd=password.encode('utf-8'))
    break
  except:
    print("Di nuovo sbagliato")

Il contenuto di pwd.txt è il seguente

1223
abc
aaa
123

Bene, questo ha completato la forza bruta della password del file zip, in realtà è solo un uso molto astuto del meccanismo di eccezione try except, quando il decompressione è normale, la password è normale, il decompressione fallisce e viene segnalata un'eccezione, prova a fare un tentativo

Sommario

Questo è tutto il contenuto dell'articolo, speriamo che il contenuto di questo articolo abbia un valore di riferimento per la tua apprendimento o lavoro. Se hai domande, puoi lasciare un messaggio per scambiare opinioni, grazie per il supporto di呐喊教程.

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta agli autori originali, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di copyright, ti preghiamo di inviare una e-mail a notice#oldtoolbag.com (sostituisci # con @ durante l'invio dell'e-mail) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare