Comments
Transcript
cracking password windows nt/2k/xp/2k3/vista
CRACKING PASSWORD WINDOWS NT/2K/XP/2K3/VISTA ..:: Nixw0rm ::.. INTRODUZIONE Chissà quante volte vi sarete chiesti “Ma è possible recuperare la password di Windows xp del pc che sta in laboratorio di informatica?”. La risposta è a dir poco semplice: si. Per rendere l’idea di come funzione il sistema di autenticazione in generale, spieghiamo brevemente (e in modo molto elementare) il discorso di hashing delle password. Dopo di che saranno illustrati alcuni metodi per il recupero delle password con un pc con Windows NT o superiori (fino a Vista). Saranno omessi i metodi per il recupero di password in Unix, anche se la metodologia è quasi identica. Ma prima: PREGHIERA: “LE INFORMAZIONI CONTENUTE IN QUESTO TUTORIAL SONO A SCOPO DIDATTICO. L’AUTORE DECLINA OGNI RESPONSABILITA’ DOVUTA ALL’USO ILLECITO DI TALE INFORMAZIONI. INSOMMA VA BENE IMPARARE MA NON DANNEGGIARE”. AUTENTICAZIONE Consideriamo il caso in cui accendete il PC di casa: 1) Avviate il sistema operativo 2) 3) 4) 5) 6) 7) Vi viene chiesta la password La inserite Il sistema verifica che la password sia giusta Se la password è giusta vai al punto (7) in caso contrario vai al (6) Se la password è errata torna al punto (2) Accesso al sistema. Ecco descritto il comportamento (in parole umane) del sistema di autenticazione. Un dubbio sorge al punto (4): ma il sistema come fa a verificare che la mia password sia corretta? E’ memorizzata da qualche parte in memoria? Si, in parte…. In memoria non viene memorizzata la password, ma una stringa di caratteri (hash) ottenuta attraverso un Algoritmo di crittografia che viene effettuato sulla password. Tale stringa viene salvata in memoria. Quindi il funzionamento del punto (4) si estende in altri sottopunti: 4.1) 4.2) 4.3) 4.4) Viene letta la password dal sistema Viene applicato l’algoritmo per la generazione dell’hash di tale password L’hash generato viene controllato con quello del sistema Se gli hash coincidono allora la password è corretta, in caso contrario è errata Detto ciò, i più smanettoni staranno già pensando: “E se mi faccio un programma che simuli l’algoritmo per il calcolo dell’hash del sistema operativo, prendendo in input le password contenute in un file di testo e fa il confronto con l’hash contenuto nel database del sistema operativo?”. Ebbene questo è il funzionamento (in linea di principio) di ogni software che opera con un attacco denominato “attacco a dizionario”.Tali programmi si chiamano password-cracker. Ecco il funzionamento: 1) 2) 3) 4) 5) 6) 7) 8) Lanciate il programma e avviate il cracking Il programma legge l’hash del sistema operativo Il programma legge la prima parola contenuta nel dizionario (il vostro file di testo) Calcola l’hash L’hash viene confrontato con quello del sistema operativo Se gli hash coincidono allora la password era la parola prelevata dal file di testo e vai al punto 8 Se gli hash non coincidono leggi la prossima parola del dizionario e torna al punto (4) Password trovata Il discorso appena descritto è già implementato in vari casi e in vari modi: prendete ad esempio i programmini che trovano la password dei file zip crittografati: la loro metodologia di attacco a dizionario è simile. Ormai si trovano in rete vari programmini per il cracking delle password (john the ripper, l0pth crack, zip cracker,…) Il problema è un altro: (i) Come prelevo il database degli hash del sistema operativo? (ii) Posso prelevarli da utente normale o devo essere amministratore? Per la (i) dipende dal sistema operativo di riferimento (verrà chiarito dopo) Per la (ii) l’esperienza della sicurezza (sin dagli anni ’80 con i server Unix, altra storia…) insegna che gli utenti normali NON DEVONO assolutamente accedere al database (o al file) delle password. Passiamo ora ad analizzare un caso concreto e alla portata di (quasi) tutti: Microsoft Windows con Tecnologia NT. LA STRADA PIU’ SEMPLICE Qui sorgono i primi problemi: credete che i sistemi operativi moderni vi permettano di reperire il file degli hash così facilmente? Nel caso di Windows no. Il file degli hash è C:\WINDOWS\SYSTEM32\CONFIG\SAM. A partire da NT Service Pack 3 il SAM è crittografato da un algoritmo la cui chiave di decrittazione è contenuta nel file C:\WINDOWS\SYSTEM32\CONFIG\SYSTEM. Basta ottenere i due file e darli in pasto al password-cracker preferito (a dopo le spiegazioni).. Se provate ad aprire il SAM windows vi dice che il file è utilizzato da un altro processo… in questo momento l’amministratore della macchina implora ed esulta, ma ancora per poco (molto poco) Prima di passare a tecniche più raffinate, provate questa: 1) Riavviate la macchina (potete farlo anche senza essere amministratori) 2) Premete F8 all’avvio di Windows 3) Avviate la modalità provvisoria… Potrebbe essere attivo l’account Administrator senza password (se l’amministratore è un imbecille lo troverete di sicuro) Tornando al caso di prima, è possibile prelevare gli hash delle password tramite PWDUMP, ma bisogna essere amministratori… ma allora a che serve? A nulla… troveremo un modo per prelevarlo anche se non siamo amministratori… Come? Ci sono vari modi: uno è quello di diventare amministratori tramite un bug presente nel sistema (lo sconsiglio è una procedura masochista e inutile) , e l’altro è quello di riavviare il sistema con un altro sistema operativo che permette di leggere le partizioni NTFS e/o FAT32. Creiamo uno scenario per rendere l’idea: Siamo nel laboratorio di calcolo della scuola (storia vera :-P) e ho accesso da utente normale ad una macchina con WinXP. Provato il trucchetto della modalità provvisoria (con F8), ma l’account Administrator è bloccato…. Ho un floppy di Linux che permette di resettare le password (http://home.eunet.no/~pnordahl/ntpasswd/bootdisk.html) Ma io non voglio resettarla (rischio di farmi beccare…) voglio trovarla… Inserisco il CD di knoppix (http://www.knoppix.org/) e riavvio il sistema. Speriamo solo che il bios mi permetta di fare il boot da altri dispositi… Metto il CD di knoppix e aspetto… METODO LINUX KNOPPIX (Avvio da CDROM) Sembra che il CD non parta…. Come fare? Pensa… Ecco!! Sicuramente la configurazione di boot del bios è CDROM/ HARDDISK/FLOPPY…. Bene, mi basta fare lo skip (con F4) degli hard disk all’avvio della macchina… tanto linux legge gli hard disk anche se non rilevati dal bios… Bene… funziona… Ecco il prompt di knoppix..Collego la pendrive USB e digito: knoppix lang=it 2 [INVIO] avviata la console da root ora vedo le partizioni del sistema con il comando # fdisk –l Ecco l’output (valori numerici inventati (e assurdi), ma simile): Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders Units = cylinders of * 512 bytes Device Boot /dev/hda1 /dev/hda2 Begin Start 1 1 5313 5313 End Blocks 5312 10231+ 50351 10260 Id 07 0B System HPFS/NTFS W95 FAT32 Bene… vediamo che la partizione di windows è /dev/hda1… quindi ora passiamo al montaggio della partizione # mount –t ntfs /dev/hda1 /mnt/hda1 Ora montiamo anche la pennina usb per copiare I file SAM e SYSTEM sopra di essa… # mount /dev/sda1 /mnt/sda1 (se la pennina usb si trova in sda1… vedete che nell’output di fdisk –l vi compare essa come disco a parte) NOTA: KNOPPIX NEL 99% DEI CASI MONTA AUTOMATICAMENTE TUTTLE LE PARTIZIONI!!! Ora passiamo alla copia dei file: # cd /mnt/hda1/windows/system32/config # cp sam /mnt/hda1 # cp system /mnt/hda1 Fatto ciò smontiamo i dispositivi #umount /dev/hda1 #umount /dev/sda1 # reboot Ora portiamo a casa i file e diamoli in pasto a SAMINSIDE… Scegliamo importazione hash tramite file SAM… Ci chiederà di selezionare i file SAM e SYSTEM. Avviamo il cracking e attendiamo (nota su un pc a 400Mhz (rottame) ci ha messo 24 ore circa per trovare la password di amministratore simile ad ALICEMAT) . METODO LINUX NO KNOPPIX (Avvio da floppy) Sembra che il CD non parta…. Come fare? Pensa… Ecco!! Sicuramente la configurazione di boot del bios è “C Only”…. Bene, mi basta fare lo skip (premendo in continuazione F4) all’avvio della macchina con dentro il floppy di linux con tutte le utilità necessarie (http://home.eunet.no/~pnordahl/ntpasswd/bootdisk.html)… tanto linux legge gli hard disk anche se non rilevati dal bios… Bene… funziona… Ecco l’avvio di linux da floppy (l’unica periferica non disattivata dal bios con F4). Avviato il sistema dovremmo ottenere un wizard che ci chiede se resettare le password o meno.. Usciamo da tale wizard (premendo CTRL+C) e montiamo le partizioni come spiegato nel metodo knoppix, copiamo i file nella pen-drive. In alternativa (se non abbiamo la pendrive), se sul floppy è installato il tool samdump2 (dovrebbe esserci) posizionamoci nella directory di SAM e SYSTEM e usiamo il comando che ci permette di estrarre gli hash: # samdump2 SAM SYSTEM > hash.txt Ora montiamo il floppy # mount /dev/fd0 /mnt/fd0 (o altra destinazione) Copiamo il file hash.txt # cp hash.txt /mnt/fd0/ (o altra destinazione) Smontiamo # umount /dev/fd0 Riavviamo #reboot Ora abbiamo gli hash oppure i file da dare in pasto a LC4 (l0pth crack) o a SAMINSIDE METODO NO LINUX Tale metodo consente nel riuscire a prelevare il file SAM (in qualche modo) e generare il SYSTEM tramite i comandi bkreg.exe e bkhive.exe… Tale metodo sarà omesso e lascio a gente più degna di me di spiegare l’argomento…. METODI VARI Ovviamente ci sono vari metodi per il cracking delle password di Windows tra cui lo sniffing degli hash (con LC) in una LAN durante una sessione netbios, l’attacco offline istantaneo con Ophrack ( http://ophcrack.sourceforge.net/), RainbowCrack (http://www.antsight.com/zsl/rainbowcrack/), Cain & Abel (http://www.oxid.it/cain.html) oppure tramite distribuzioni Linux costruite su misura, o ancora possiamo accedere ad un sistema tramite un tool (SMBRelay) che permette di usare gli hash contro la macchina che li “spara” in rete per accedere ad una condivisione.. Non mancano all’appello le null sessions, e i rootkit vari per windows (tipo il FU-Rootkit) accompagnati dai keylogger… CONCLUSIONE C’è un rimedio a tutto questo? Si basta trovare un modo per rendere inaccessibile i file SAM e SYSTEM magari salvarli su supporti esterni e inserirli all’avvio, come su delle smartcard, chiavette (è in linea di principio ma non so se si può fare) oppure cifrando il filesystem…. SALUTI VARI Vi lascio i vari link per approfondire l’argomento, ma vi do un consiglio: “Lasciare respirare il prof di laboratorio che ha altro a cui pensare”, e colgo l’occasione per salutare gli assistenti di laboratorio della mia vecchia scuola superiore Mi scuso con Vito per tutte le volte che l’ ho fatto restare fino alle 3 del pomeriggio in laboratorio a rimettere a posto i pc che manomettevo (ma che non danneggiavo) … E li ringrazio per non avermi mai sospeso…. :-P LINKS http://www.irongeek.com/i.php?page=security/vistasamcrack - Cracking Vista password http://www.irongeek.com/i.php?page=security/localsamcrack2 - Cracking local SAM passwords http://www.irongeek.com/i.php?page=videos/samdump2auditor - video tutorial Links Vari: • • • • • • Hardware Keyloggers In Action 2: The KeyLlama 2GB USB Keylogger Ghost 11 Plugin for Bart's PE Builder (BartPE) Hardware Key Logging Part 3: A Review Of The KeyLlama USB and PS/2 Keyloggers Updated video on "Encrypting The Windows System Partition With Truecrypt 5.0" Encrypting The Windows System Partition With Truecrypt 5.0 http://home.eunet.no/~pnordahl/ntpasswd/bootdisk.html MISC LINKS Information on SysKey from Microsoft: http://support.microsoft.com/kb/310105 Linux boot diskette that can reset local NT/2000/XP passwords: http://home.eunet.no/~pnordahl/ntpasswd/bootdisk.html Sala’s Password Renew http://www.sala.pri.ee/ Bart’s Pe Builder: http://www.nu2.nu/pebuilder/ Auditor security collection boot CD: http://www.remote-exploit.org/index.php/Auditor_main Ncuomo’s Samdump2, Bkhive and Bkreg: http://www.studenti.unina.it/~ncuomo/syskey/