...

cracking password windows nt/2k/xp/2k3/vista

by user

on
Category: Documents
9

views

Report

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/
Fly UP