24 Luglio 2016 - Tempo di lettura: 4 minuti
Per chi non l’ha mai letto, o conosciuto, esiste un libro, parecchio interessante dal titolo “Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers”. In questo libro vengono spiegati molti modi per sfruttare il linguaggio di programmazione Python, per creare utility e script di sicurezza, tecniche di analisi di vulnerabilità e quantaltro, di modo da poterne studiare il funzionamento.
In questo post vediamo come, con un esempio semplice, si può tramutare in concretezza. Noi tutti sappiamo che le password di accesso in un sistema Unix vengono memorizzate all’interno del file /etc/shadow, leggibile solo dall’utente root. Ora sicuramente starete pensando: “Posso quindi scaricare il file e quindi leggerlo? In questo modo posso trovare tutte le password degli utenti e accedere al pc della vittima per esplorarne tutto il contenuto? Ehm… No. Fortunatamente non è così immediata la situazione. Il concetto è questo: quel file è criptato di modo che non è sufficiente aprirlo per leggerne il contenuto.
Quindi è così? Non c’è un modo per ottenere le password ora? Beh in realtà, è possibile realizzare la vostra missione in un sacco di altri modi!
La password viene criptata con un sale e l’hash della password stessa. Fondamentalmente il sale è una stringa di 2 caratteri che verrà utilizzata per selezionare una delle 4096 variazioni di DES (Data Encryption Standard), un vecchio sistema di criptazione. Lasciate che vi faccia un esempio di come questo sistema funziona! Aprire il vostro IDE, Gedit o qualunque tipo di programma di scrittura che usate abitualmente.
import crypt
crypt.crypt(“turtle”,”HX”)
“HX.t7090XWhTI” Come si può notare HX è il sale e il resto è esattamente l’hash della password. Capite ora come funziona? Se si utilizza un attacco di tipo dizionario, confrontando l’hash di ogni parola nel dizionario con l’hash di una password data tramite /etc/shadow. Cominciamo a scrivere codice.
E con questo abbiamo tutto ciò che occorre per creare un UNIX DES password cracker! Solo testando e provando le tecniche assodate dagli hacker, possiamo comprenderne i meccanismi veri e propri, per capire anche come difendere i nostri sistemi.