W jaki sposób poświadczenia systemu Windows w pamięci podręcznej są przechowywane na komputerze lokalnym?

26

Jak przechowywane w pamięci podręcznej poświadczenia domeny Active Directory są przechowywane na kliencie Windows? Czy są przechowywane w lokalnej bazie danych SAM, przez co są podatne na te same ataki tabeli tęczy, na które są narażeni konta użytkowników lokalnych, czy też są przechowywane inaczej? Zauważ, że zdaję sobie sprawę, że są one solone i mieszane, aby nie były przechowywane jako zwykły tekst, ale czy są one mieszane w taki sam sposób jak konta lokalne i czy są przechowywane w tej samej lokalizacji?

Zdaję sobie sprawę, że przynajmniej są podatni na atak brutalnej siły, ale jest to o wiele lepsza sytuacja niż narażenie na tęczowe stoły w przypadku skradzionej maszyny.

MDMarra
źródło

Odpowiedzi:

17

„Pamięci podręczne”

Pamięci podręczne dla domeny AD są w rzeczywistości solonymi podwójnymi skrótami hasła i są przechowywane w gałęzi HKLM \ Security. Lokalizacja pliku gałęzi to: %systemroot%\System32\config\SECURITY

Tylko użytkownik „systemowy” ma dostęp do kluczy rejestru:
HKLM\Security\Cache\NL$ngdzie njest indeks 1 do maksymalnej liczby buforowanych poświadczeń.

Podatność na ataki

WinNT do WinXP używał skrótów „Lan Manager” dla kont lokalnych , które łatwo można złamać na nowoczesnym sprzęcie. Pękanie zwykle zajmuje kilka minut (ostatnio zrobiłem 3 hasła w 00:08:06) na zwykłym komputerze stacjonarnym. Skróty Lan Managera nie są solone, więc są też dostępne publicznie tabele tęczy.

Vista i nowsze używają skrótów NT dla kont lokalnych . Windows 2000 i nowsze wersje używają również skrótów NT dla kont domeny . Skróty NT są solonymi podwójnymi skrótami MD4. Sól na wejście zapobiega użyciu tęczowych tabel, ale MD4 można wykonać bardzo szybko na nowoczesnym sprzęcie: około 6 lat obliczeniowych dla hasła 60-bitowego. Przy odrobinie szczęścia i klastrze 6 GPU cracker może złamać tego rodzaju hasło w ciągu ~ 6 miesięcy. Biorąc to do chmury, około 35 000 $ na GPU Amazon EC2 - w zależności od dostępności, może to potrwać kilka godzin.

Chris S.
źródło
Wydaje mi się, że większa część mojego pytania dotyczyła tego, czy te przechowywane dane uwierzytelniające są podatne na te same ataki oparte na tabeli tęczy, co lokalne konta, jeśli są one mieszane inną metodą
MDMarra
Zaktualizowano ... Vista + to wszystko tak samo. Starsze wersje były inne.
Chris S,
„Skrót NT hasła jest obliczany przy użyciu niesolonego algorytmu skrótu MD4”. - Prosto z TechNet: technet.microsoft.com/en-us/library/hh994565(v=ws.10).aspx
thepip3r
Ta strona jest błędna, skróty NT są solone. Zobacz odpowiedź Joe poniżej, aby uzyskać link do bazy wiedzy.
Chris S
4

Poświadczenia nie są buforowane na komputerze lokalnym. Zobacz ten fragment z MS:

Bezpieczeństwo poświadczeń domeny z pamięci podręcznej

Termin poświadczenia w pamięci podręcznej nie opisuje dokładnie, w jaki sposób system Windows buforuje informacje logowania do logowania do domeny. W systemie Windows 2000 i nowszych wersjach systemu Windows nazwa użytkownika i hasło nie są buforowane. Zamiast tego system przechowuje zaszyfrowany weryfikator hasła. Ten weryfikator to solony skrót MD4, który jest obliczany dwa razy. Podwójne obliczenia skutecznie sprawiają, że weryfikator jest skrótem skrótu hasła użytkownika. To zachowanie jest inne niż zachowanie systemu Microsoft Windows NT 4.0 i wcześniejszych wersji systemu Windows NT.

http://support.microsoft.com/kb/913485

joeqwerty
źródło
Rozumiem, że same dane uwierzytelniające nie są buforowane, ale moje pytanie brzmiało mniej więcej tak: „wynikowe wartości skrótu są przechowywane w lokalnej bazie danych SAM w taki sam sposób, jak konta lokalne, co czyni je podatnymi na te same ataki. „ Zredaguję to za chwilę, aby było bardziej jasne.
MDMarra,
1
meh ... dla mnie to są mielące słowa. natura „mieszania” jest procesem jednokierunkowym, który tworzy w zasadzie zaciemnioną wartość hasła przy użyciu bezpiecznego algorytmu kryptograficznego. Problem polega na tym, że MD4 mógł być kryptograficznie bezpieczny 10-15 lat temu, ale nie jest już nawet blisko (ani MD5, ani SHA1 z punktu widzenia kryptografa). Tak więc, jeśli masz współczesny sprzęt, który może szybko brutalnie wymusić przestrzeń klucza algorytmu lub odkryć kolizję, możesz łatwo uzyskać hasło z skrótu ...
thepip3r
Jeśli dane uwierzytelniające są przechowywane w jakikolwiek sposób lub w formie, aby można je było zweryfikować w trybie offline - są one buforowane dla wszystkich celów i celów, bez względu na to, jak wyglądają dane w tej pamięci podręcznej
NiKiZe
4

Są one obsługiwane przez Credential Manager, dla którego istnieje API Credential Manager. Solone skróty są przechowywane w dość bezpieczny sposób na dysku i dostępne za pośrednictwem HKLM \ Security. (Do którego domyślnie można uzyskać dostęp tylko z LocalSystem, ale łatwo go ominąć, na przykład za pomocą psexec -i -s regedit.exe.)

W działającym systemie Windows sytuacja jest jednak bardziej tragiczna, ponieważ ostatnio używane poświadczenia można uzyskać i łatwo zamienić na zwykły tekst, podpinając bibliotekę DLL w Lsass. (Zobacz Mimikatz.)

Tak, tak, w HKLM \ Security \ Cache na kliencie znajdziesz jakiś skrót (lub skrót hash, lub „weryfikator” lub jakkolwiek chcesz to nazwać). Ale nie sądzę, że istnieje jakiś możliwy sposób na atak hasha na dysku. Nie jest to ten sam stary typ skrótu NTLM, który można zaatakować.

Ryan Ries
źródło
Łamanie haseł offline w SAM jest zupełnie inne niż przechowywanie LSASS w pamięci, jak robią to Mimikatz i WCE. W zależności od złożoności hasła łamanie haseł SAM w trybie offline może być BARDZO łatwe (patrz samdump2)
thepip3r