Menu dostępności

Pass-the-Hash – wykorzystywanie zdobytych poświadczeń

Pass-the-Hash to jedna z najbardziej znanych technik używanych przez hakerów w planowanym ataku. W poprzednich postach pokazaliśmy jak atakujący zdobywają skróty (ang. hashes) haseł w domenie. Wykonują to na przykład korzystając z funkcji Mimikatz’a, takich jak DCSync czy zaglądanie do pamięci procesu lsass.exe. Exploit Pass-the-Hash umożliwia wykorzystanie zdobytych hashy, i bez ich odszyfrowywania, utworzenia nowej sesji uwierzytelniającej. Pozwala to, za pomocą nowo uruchomionego wiersza poleceń, wykonywać zmiany jako inny użytkownik, chociaż system nadal będzie myślał że jesteśmy sobą. Jest to poważna luka w mechanizmie uwierzytelniania użytkowników w domenie AD i jest ona nagminnie wykorzystywana przez hakerów.

Zadaniem każdego systemu uwierzytelniającego jest weryfikacja czy użytkownik jest tym za kogo się podaje. Aby trzymać z daleka podejrzane osoby, system musi zadbać o to, żeby tożsamość użytkowników nie została skradziona. Dużą rolę odgrywa tutaj zapewnienie bezpieczeństwa hasła, brzmi banalnie ale nie jest to proste. Ludzie często mylą uwierzytelnienie z kontrolą dostępu. Usługi uwierzytelniające sprawdzają jedynie tożsamość osoby, weryfikują czy Ty to na pewno Ty. Nie mają żadnego udziału w określaniu gdzie użytkownik ma dostęp i jakie posiada prawa.

Istnieją dwa mechanizmy uwierzytelniania w systemach Windows. NTLM oraz Kerberos. NTLM jest starym sposobem, teoretycznie mniej bezpiecznym. Kerberos to nowa metoda, która jest integralną częścią Active Directory od czasu Windows 2000. Obie te metody uwierzytelniania są obecnie używane, niezależnie od wersji systemu Windows. Z NTLM korzystamy na przykład przy próbie dostępu do udziału sieciowego:\\HOST\SHARE. Wiele aplikacji korzysta również z tego starszego protokołu.

Aby chronić hasła przed wzrokiem ciekawskich, NTLM unika wysyłania ich przez sieć w jakiejkolwiek postaci. Zamiast tego tworzy hash, czyli skrót reprezentujący hasło i nie dający odtworzyć się w nie z powrotem. Taki hash jest przechowywany w podręcznej pamięci komputera i używany zamiast hasła do niejawnego sprawdzania tożsamości. Skróty przechowywane są na komputerach lokalnych, na kontrolerach domeny i serwerach członkowskich. Wszędzie tam, gdzie użytkownik podawał swoje poświadczenia. Jeśli haker jest w stanie uzyskać hash hasła, może użyć go podczas uwierzytelnienia przeciwko dowolnemu celowi podszywając się pod inną osobę – pass-the-hash. Ponieważ hash jest efektywnie tym samym co hasło, zapewnia ono dowód uwierzytelnienia. Atakujący nie będzie znał zdobytych poświadczeń w postaci czystego tekstu, ale nie jest to potrzebne do otrzymania dostępu do chronionych zasobów. Ponadto, zdobywając skrót hasła, atakujący może użyć narzędzi offline w celu słownikowego dopasowania hasha do hasła (hashes cracking).

Na poniższym obrazku przedstawiono wykonanie pass-the-hash za pomocą Mimikatz’a. Pozyskanie hasha konta sa_admin pozwoliło uruchomić linię komend na kontrolerze domeny:

Pass-the-Hash wykonany na konto sa_admin

Aby pobrać hash z pamięci komputera potrzeba uprawnień lokalnego administratora. Jednak w dzisiejszych czasach nie jest trudno je zdobyć. Szczególnie, jeśli w organizacji użytkownicy przychodzą ze swoimi urządzeniami, na których są administratorami. Skróty wszystkich haseł w domenie, a także konta „krbtgt” które jest głównym celem ścieżki KILLCHAIN, przechowywane są na kontrolerze domeny.


Jak się chronić?


Aby zmniejszyć ryzyko ataku pass-the-hash należy ograniczyć dostęp administracyjny do komputerów tylko do zaufanych osób logujących się z zaufanych systemów. Warto także wprowadzić uwierzytelnianie dwu-etapowe, wykorzystujące na przykład tokeny, a także korzystać z modelu najmniejszych wymaganych uprawnień (ang. least privilege model). Ruch wewnątrz sieci powinien być stale monitorowany pod kątem podejrzanych zachowań. Należy zwrócić uwagę na horyzontalne przemieszczanie się po organizacji, czyli próby używania tych samych poświadczeń, na wielu różnych hostach w krótkim odstępie czasu.

Przeprowadzenie ataku Pass-the-Hash zaprezentowaliśmy na filmie poniżej.

Popularne

Polowanie na eskalację uprawnień w Windows: sterowniki jądra i Named Pipe pod lupą

Polowanie na eskalację uprawnień w Windows: sterowniki jądra i Named Pipe pod lupą

Podatności typu Local Privilege Escalation (LPE) pozostają jednym z kluczowych elementów realnych ataków na systemy Windows. Nawet przy poprawnie skonfigurowanym systemie i aktualnym oprogramowaniu bł...
Nowe podatności w architekturze sieci 5G

Nowe podatności w architekturze sieci 5G

Nowe badania nad architekturą 5G ujawniły lukę w zabezpieczeniach modelu dzielenia sieci oraz zwirtualizowanych funkcjach sieciowych, które można wykorzystać do nieautoryzowanego dostępu do danych, a tak...
Sekrety, które powinny pozostać sekretami – czyli jak chronić poświadczenia (credentials) NHI – część 2

Sekrety, które powinny pozostać sekretami – czyli jak chronić poświadczenia (credentials) NHI – część 2

Skoro znamy już źródła problemów, przejdźmy do drugiej części naszego opracowania, czyli poradnika. Poniżej przedstawiamy najlepsze praktyki w zarządzaniu sekretami kont maszynowych. Jakie są najlep...
Czym są non-human identities (NHI)? Jak możemy je chronić i jakie zagrożenia stwarzają dla organizacji?

Czym są non-human identities (NHI)? Jak możemy je chronić i jakie zagrożenia stwarzają dla organizacji?

W dzisiejszym artykule opisujemy pewien problem istniejący w firmach i organizacjach, związany z tożsamościami nieludzkimi (non-human identities), czyli inaczej – tożsamościami niezwiązanymi z pracow...
Top 10 podatności w aplikacjach w 2022 roku według OWASP

Top 10 podatności w aplikacjach w 2022 roku według OWASP

O bezpieczeństwie aplikacji piszemy na Kapitanie Hacku nieczęsto. Wiemy jednak, że kiepskie zarządzanie tym tematem w organizacji prowadzi do katastrofalnych konsekwencji. Jeśli jako firma udostępniamy własn...