Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Łamanie hashy haseł w systemach Windows. Team Hashcat stanął do boju i złamał wszystkie hasła.
W ramach zawodów Crack Me If You Can, odbywających się podczas konferencji DEF CON 6-8 sierpnia, należało przeprowadzić łamanie haseł z różnych systemów. Zespół, pod nazwą Team Hashcat, odpowiedzialny za narzędzie hashcat (którego zastosowanie zostało omówione na SekurakTV), podzielił się swoim write-upem.
W tym roku organizator (firma KoreLogic) zamiast listy gotowych hashy udostępnił zespołom plik OVA (Open Virtual Appliance) z Windows Server 2019, zawierający włączoną usługę AD DC. W dodatku uczestnicy musieli zmierzyć się z utrudnieniami:
To make working with the VM hard, Korelogic decided to booby trap it with various things like automatic shutdowns, calling back to KL (if networking was enabled), replacing various menu entries with garbage, etc.
Team Hashcat podpiął do maszyny wirtualnej dodatkowy dysk w standardowym formacie VMDK (plik OVA może zawierać taki wirtualny dysk i informacje o maszynie wirtualnej). Z załączonego do opisu zrzutu ekranu wynika, że była to jakaś dystrybucja Linuxa, do której zamontowano dysk z systemem Windows. Następnie skopiowano pliki: SAM, SECURITY, SYSTEM i NTDS.dit, po czym skryptem secretsdump.py wyodrębniono hashe lokalne i domenowe. Efekt był następujący (przypominał plik /etc/shadow znany z Linuxa):
Udało się złamać hasło do konta użytkownika lokalnego i domenowego konta administratora. Oczywiście naturalną kolejnością było zalogowanie się za ich pomocą do systemu Windows. Poprzez Server Manager wyłączono Windows Defender, który raczej sklasyfikowałby oprogramowanie używane przez zespół do ataku jako złośliwe.
Podłączono pendrive z mimikatz, który podał kilka interesujących informacji o środowisku:
Twórcy write-upu podali też metodę zapobiegania automatycznemu wyłączaniu systemu Windows po każdej godzinie z powodu wygasłej licencji. W PowerShell należy wykonać:
slmgr -dlv
slmgr -rearm
Chcąc upewnić się, że wszystkie hashe zostały wyodrębnione, użyli skryptu PS Get-ADDBAccount z pakietu DSInternals. Zastosowali też filtr listujący jednie użytkowników, bez listy hostów.
Dzięki temu uzyskali hasła w jawnej postaci. Wystarczył prosty grep, aby pobrać hasła wszystkich użytkowników (chociaż użycie skrótu Ctrl+F również mogłoby się sprawdzić):
Wyjaśniono, że w tym roku wartość hasha rośnie wraz ze złożonością. W związku z tym najmniej „warte” hashe muszą zostać złamane jako pierwsze, by potem było możliwe atakowanie pozostałych. Do złamania pierwszego i przedostatniego hasła wystarczyła lista RockYou (dostępna m.in. w Kali Linux). Podobnie było z innymi hasłami, chociaż wymagało to nieco więcej czasu.
Analizując odgadnięte hasła, porównywano ich „treść” i w ten sposób ostatecznie udało się złamać wszystkie hashe, bazując na zastosowanych regułach, np.:
- BON JOVI i warianty słowa „Obsessiveness”,
- nazwy gier,
- tytuły utworów muzycznych,
- liczby,
- kontekst DEF CON (DEF CON, Vegas, Ballys),
- miejsca w Ameryce Południowej.
Tworząc dobre, czyli trudne do złamania, hasło, najlepiej używać losowych ciągów znaków. Niestety – ciężko o całkowitą losowość (co potwierdził generator firmy Kaspersky), więc dobrze jest generować zabezpieczenie w lokalnym menedżerze haseł (lub używając różnych poleceń w Linuxie) i dodać do niego w różnych miejscach swoje znaki. Warto też zmieniać hasła po wyciekach (na haveibeenpwned.com można sprawdzić listę upublicznionych danych).
–Michał Giza
> Dzięki temu uzyskali hasła w jawnej postaci.
Nie łapię skąd na tym etapie pojawiły się plejnteksty…
PS literówka w tytule: hachcat
Odszyfrowali zawartość NTDS.dit przy użyciu DSInternals (Get-BootKey + GetADDBAccount)
Team Hashcat podpiął do maszyny wirtualnej… a w jaki sposób niby tego dokonali ? Myślę, że to istota rzeczy bo jak się dostali do plików systemowych to już pozamiatane. To tak jak dostać dostęp do fizycznego serwera. Wszystko jest wtedy łatwe i przyjemne.
W win2012r2 nie potrzeba tak mocno grzebać. Mi zrobili wjazd pewną dziurą i potem samym mimikatzem wyciągneli hasła domain admina jak i kont sql server. Dzialali na koncie usera, ktory logowal sie rzadko na rds, wiec nikt nie zauwazyl dodatkowych pliczkow na pulpicie. Za to kazdy zauwazyl zaszyfrowane udzialy. Czyli „da sie”.
Mozna zabezpieczac, kombinowac, utrudniac wszystkim w robicie zycie i wywalac worki pieniedzy na kolejne sec-zabawki a i tak ktos wejdzie jakas dziurka.