In questo articolo vi spiego come sbloccare un PDF protetto senza avere la password di accesso ad esso. Prima di iniziare voglio spiegare cosa mi è capitato. Da quando è iniziata la pandemia siamo costretti ad utilizzare molto spesso i nostri smartphone o computer per poter ricevere ricette mediche o esami del sangue. Ma siamo sicuri che le password impostate dai nostri medici o chi di competenza lo faccia in maniera corretta? La risposta è stata no, nel mio caso sono stato sfortunato, e non è l’unico caso, in famiglia 4 persone su 4 hanno ricevuto PDF sbloccabili con una facilità incredibile. Tramite questa guida vi spiego come sono riuscito, fingendo di avere dimenticato la password del PDF inviatomi dal medico, a recuperare la chiave per sbloccare il PDF. Utilizzando gli strumenti di mia conoscenza, tramite le competenze da Penetration Tester, devo dire che è stato più semplice del previsto, sono bastati solamente 40 minuti di attacco per identificare la password di sblocco del PDF.
Che cos’è un file PDF?
Un file PDF (Portable Document Format) è un file di testo in sola lettura, leggibile indipendentemente dalla piattaforma che si utilizza, basta avere un lettore installato. Per generarlo è possibile utilizzare un qualsiasi software per la creazione di documenti come Word, libreoffice…
Come sbloccare un PDF
Lo strumento che andremo ad utilizzare per eseguire il Brute-Force si chiama Brute_force password_breaker_for_PDF ed è disponibile a questo link
Questo script (realizzato in Python) è compatibile con tutte le distribuzioni in commercio, io ho eseguito questo tentativo di brute-force con Kali Linux. Il dizionario viene creato con uno strumento chiamato Crunch in grado di generarmi lettere, numeri e caratteri speciali.
Cos’è un dizionario?
Il dizionario è un semplice file di testo contenti migliaia di parole. In questo caso il dizionario è stato generato con il tool Cruch utilizzando parole formate da numeri e lettere.
Cos’è un BruteForce?
Un attacco bruteforce o meglio conosciuto in italiano come attacco di forza bruta, è un tentativo da parte di un utente malintenzionato(cracker) di impossessarsi di una password per accedere ad un determinato servizio senza il consenso del proprietario, sfrutta dei file chiamati appunto dizionari i quali contengono svariati tipi di combinazioni: lettere-parole, numeri e caratteri speciali finché non ottiene la password di accesso corretta.
Creiamo il nostro dizionario tramite Crunch con la seguente configurazione:
- Numero di caratteri da 0 a 5
- Caratteri da utilizzare solo numeri da 0 a 9
crunch 0 5 1234567890 -o /media/kali/7E30-1A07/diz.txt
mov diz.txt dictionary.txt
Nel file diz.txt troveremo tutte le combinazioni possibili con i caratteri dati in input.
Una volta creato procediamo con l’attacco brute-force, lanciamo lo script Python e inseriamo il path del pdf protetto da password e il dizionario appena creato. Partiranno una serie di tentativi di combinazioni.
chmod +x brute_force password_breaker_for_PDF.py
mov brute_force password_breaker_for_PDF.py brute_force.py
python3 brute_force.py
Dopo circa 40 minuti di tentativi ecco il risultato della chiave di protezione corretto!
Conclusione
Esistono molti tools in grado di effettuare attacchi brute-force, quello preso in considerazione nel nostro esempio è molto semplice, un banale script Python di poche righe, con performance che lasciano il tempo che trovano. Lo scopo di questa dimostrazione è capire quanto sia vulnerabile un pin di soli numeri composto da 5 caratteri ma possono essere anche 7,8… e così via. Per la gestione delle password vi consiglio di usare un numero di caratteri alfanumerici contenenti caratteri speciali superiori a 20, molto comodi sono software come KeepassXC utili per la memorizzazione e la creazione delle password.