Kerberoast to rodzaj ataku, którego celem jest zdobycie poświadczeń kont serwisowych i uzyskanie dostępu do nowych zasobów w domenie. Jest często wykorzystywany w fazie eskalacji uprawnień. Po dobrze przeprowadzonym rozpoznaniu w domenie, haker wie jakie konta połączone są z jakimi usługami. Atak kerberoast pozwala przejąć te konta, co prowadzi do skompromitowania usługi lub dostępu do nowych, chronionych zasobów w organizacji. Metoda ta jest szczególnie niebezpieczna, ponieważ nie wymaga żadnych podwyższonych uprawnień, jest łatwa do przeprowadzenia oraz praktycznie niewykrywalna.

Aby zrozumieć jak działa ten typ ataku należy wiedzieć najpierw, co oznacza skrót SPN i do czego służy. Na stronie Microsoft możemy przeczytać: „Service Principal Name (SPN) jest to unikalny indentyfikator instancji usługi. Nazwy SPN są używane przez uwierzytelnianie Kerberos do kojarzenia konkretnej usługi z kontem serwisowym logowania do usługi. Dzięki temu aplikacja kliencka może zażądać, aby usługa uwierzytelniła konto, nawet jeśli klient nie posiada nazwy konta.”

Kerberoasting wykorzystuje sposób, w jaki konta serwisowe łączą uwierzytelnienie Kerberos z wartością SPN. Za pomocą prostego rozpoznania i skanowania znanych, powszechnych wartości SPN możemy dowiedzieć się jakie konta łączą się z interesującą nas usługą. Kerberoasting pozwala na złamanie haseł do tych kont. Logując się do domeny Active Directory jako dowolny uwierzytelniony użytkownik, możemy zażądać biletów dla kont serwisowych (TGS) podając wartość SPN usługi. Active Directory zapisze do pamięci lokalnej zaszyfrowany bilet, który zakodowany jest przy użyciu hasha NTLM konta powiązanego z podanym SPN. Za pomocą narzędzia Mimikatz, można wyodrębnić bilet z pamięci i zapisać go do pliku (screen poniżej). Po otrzymaniu biletu atakujący może w dość prosty sposób złamać go offline przy użyciu brute force, bez ryzyka wykrycia czy blokady konta. Po dopasowaniu odpowiedniego skrótu NTLM bilet zostaje odszyfrowany i haker otrzymuje hasło do konta w postaci czystego tekstu.

Użycie Mimikatz’a do pobrania biletów kerberos z pamięci komputera

Atak Kerberoast jest wyjątkowo skuteczną metodą kradzieży poświadczeń kont serwisowych, ponieważ można go przeprowadzić jako zwykły użytkownik i bez wysyłania jakichkolwiek pakietów do systemu. Jest prosty i szybki do przeprowadzenia, gdyż użytkownicy mają tendencję do tworzenia słabych haseł, co ułatwia słownikowe dopasowywanie zaszyfrowanych biletów. Dodatkowo większość kont serwisowych nie ma ustawionego czasu po którym hasło wygasa, więc jest bardzo prawdopodobne, że to samo hasło będzie obowiązywać przez miesiące czy lata. Co więcej, konta serwisowe posiadają często nadmiar uprawnień i są na przykład członkami grup administracyjnych na serwerach.


Jak się chronić?


Najskuteczniejsze zapobieganie temu atakowi to po prostu ustawianie silnych haseł dla kont serwisowych. Hasła te powinny mieć ponad 25 znaków, co powoduje, że złamanie ich metodą brute force stanie się niemożliwe.

Samo wykrycie ataku nie jest proste, ponieważ zapytania o bilety Kerberos odbywają się za każdym razem, gdy użytkownicy potrzebują dostępu do zasobów. Monitorwanie wielu żądań biletów serwisowych Kerberos w Active Directory jest możliwe poprzez włączenie w polityce audytu opcji: “Audit Kerberos Service Ticket Operations” i wyszukiwanie użytkowników z nadmierną ilością zdarzeń o id. 4769, czyli “Żądano biletu serwisowego Kerberos”.