Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaViktor Juhász Megváltozta több, mint 10 éve
1
NTDS.DIT offline hashdump, avagy a meztelen igazság a domaines jelszótárolásról
2
Bemutatkozás Barta Csaba Deloitte Zrt. Manager CHFI
3
NTDS.DIT? Active Directory elsődleges adattároló állománya
Helye: %WINDOWS%\NTDS\ntds.dit Mit tartalmaz Az összes AD-ben tárolt objektumot Felhasználók Csoportok Jogosultságok
4
Hogyan juthatunk hozzá?
Volume Shadow Copy Online forensic pillanatkép DC kikapcsolas + masolas
5
NTDS.DIT felépítés Táblák datatable (AD objektumok és attribútumaik)
linktable (hivatkozások pl.: memberof) sdtable (security descriptors /Server 2003 óta/)
6
NTDS.DIT felépítés 2 A schema-ban leírt összes tulajdonság megtalálható minden objektum-rekordban (csak nincs kitöltve) emiatt akár több ezer mezőből is állhat egy rekord Attr 1 Attr 2 Attr 3 Obj 1 1 2 null Obj 2 3
7
Hol tárolódnak a jelszavak?
A jelszó hash-eket a datatable tárolja Érdekesebb user attribútumok ATTm3 – SAMAccountName ATTm13 – Description ATTk – SID ATTk – Titkosított LM hash ATTk – Titkosított NT hash ATTk – Titkosított NT PWD history ATTk – Titkosított LM PWD history ATTk – Titkosított PEK
8
Hash titkosítás A jelszó hash-ek titkosítva tárolódnak
Standard algoritmusok (RC4, MD5, DES) A titkosító kulcs (PEK) tartományonként különbözik, megtalálható az NTDS.DIT állományban (szintén titkosítva a bootkey segítségével)
9
Dekriptálás menete Bootkey kinyerése a registryből PEK dekriptálás
Jelszó hash dekriptálás PEK-el Jelszó hash dekriptálás DES-el
10
PEK dekriptálás md5=MD5.new() md5.update(bootkey) for i in range(1000): md5.update(enc_pek[0:16]) rc4_key=md5.digest(); rc4 = ARC4.new(rc4_key) pek=rc4.encrypt(enc_pek[16:]) return pek[36:]
11
Jelszó hash dekriptálás
md5 = MD5.new() md5.update(pek) md5.update(enc_hash[0:16]) rc4_key = md5.digest(); rc4 = ARC4.new(rc4_key) denc_hash = rc4.encrypt(enc_hash[16:]) (des_k1,des_k2) = sid_to_key(rid) d1 = DES.new(des_k1, DES.MODE_ECB) d2 = DES.new(des_k2, DES.MODE_ECB) hash = d1.decrypt(denc_hash[:8]) + d2.decrypt(denc_hash[8:]) return hash
12
Jelszó history Miért fontos a vizsgálata Hol tárolódik
Jelszóválasztási minta keresése LM hashek Hol tárolódik Az ATTk és ATTk attribútumokban tárolódik Egymás után másolva (titkosítva) Külön-külön kell dekriptálni őket
13
Jelszó history dekriptálás
Bootkey kinyerése a registryből PEK dekriptálás History dekriptálás PEK-el Jelszó hash-ek dekriptálás egyenként DES-el
14
DEMO
15
Köszönöm a figyelmet!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.