Menu dostępności

Jak haker przechwytuje Twoje hasło, jeśli je zmieniasz w Windows.

Na Kapitanie Hack’u dużo piszemy o bezpieczeństwie haseł użytkowników. Poznanie haseł jest jednym z priorytetów cyberprzestępców. W dzisiejszym, nowym artykule kampanii CYBER KILL CHAIN pokażemy inny, nieopisywany jeszcze przez nas sposób na kradzież poświadczeń (haseł) użytkowników Windows w chwili, gdy zmieniają oni hasło na nowe.


Jak to jest z tymi hasłami i ich bezpieczeństwem?

W mediach trwają różne kampanie uświadamiające w temacie cyber- bezpieczeństwa. Jak się nim przyjrzymy bliżej, to najczęstszym z zaleceń jakie w nich się pojawia to wymóg stosowania silnych haseł i ich częstej zmiany. To, że powinniśmy stosować silne hasła nie podlega wątpliwości. Słabe hasło można szybko odgadnąć lub złamać, natomiast na temat jego częstej zmiany powinniśmy się już zastanowić. Jak stwierdził sam Microsoft zmiana hasła powinna nastąpić wtedy, kiedy istnieją symptomy, że mogło ono wyciec. W przeciwnym wypadku nie ma konieczności zmiany. My ta opinię podzielamy i powinniśmy ze szczególną uwagą monitorować aktywności użytkowników. Niestety świat bezpieczeństwa w tym zakresie jest podzielony podobnie jak świat muzyki na fanów i przeciwników Zenka.

W artykule tutaj pisaliśmy o metodzie przechwytywania haseł użytkowników Windows. Również pisaliśmy o wyciąganiu haseł z różnych miejsc Windows pisaliśmy przy wykorzystaniu mechanizmu DPAPI (programowalnego interfejsu dla aplikacji w celu ochrony danych). W poniższym artykule pokażemy, że zmiana hasła może nieść za sobą ryzyko związane z możliwością poznania naszego hasła przez cyberprzestępcę.


Filtry haseł w Windows

W artykule o Security Support Providers (SSP) pisaliśmy o ciekawym ustawieniu w rejestrze systemowym Windows w gałęzi „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa” o nazwie „Security Packages”, dzięki któremu mogliśmy załadować do pamięci komputera specjalną bibliotekę DLL, za pomocą której można było przechwycić wszystkie wprowadzane przez użytkowników hasła do systemu Windows.
Oprócz kontroli SSP, Microsoft wprowadził w systemie Windows filtry haseł jako metodę wymuszania przez administratorów systemów zasad haseł i powiadamiania o zmianie. Za kontrolę ładowanych do pamięci filtrów haseł i powiadomień odpowiedzialny jest klucz rejestru „Notification Packages” również znajdujący się w powyższej ścieżce rejestru.

Filtry haseł służą do sprawdzania poprawności nowych haseł i zapewnienia, że są one zgodne z obowiązującą polityką haseł i nie są używane żadne hasła, które mogą być zgodne z zasadami domeny. Na przykład hasło o długości 9 znaków może być akceptowane przez zasady grupy (GPO), ale jeśli ma postać $Alamakota123 lub Wiosna2020, jest uważane za słabe, ponieważ cyberprzestępca może użyć tych haseł podczas ataku siłowego. Filtry haseł pomagają administratorom zapobiegać tego typu hasłom, aby użytkownicy mogli wybrać bardziej unikalne hasła.

Technicznie wygląda to tak, że filtr haseł w celu przeprowadzenia weryfikacji hasła wymaga od lokalnego mechanizmu bezpieczeństwa Windows (LSA) hasła użytkownika w postaci zwykłego tekstu. Dlatego jeśli będziemy mogli zainstalować i zarejestrować w systemie dowolny filtr haseł, to będziemy mogli go wykorzystać do zbierania danych uwierzytelniających za każdym razem, gdy użytkownik zmienia swoje hasło.
Przed zapisaniem nowego hasła w lokalnej bazie zwanej SAM, wymagane jest sprawdzenie go przez filtr haseł. Zgodnie z dokumentacją Microsoft każdy filtr haseł jest wywoływany dwukrotnie w celu sprawdzenia poprawności nowego hasła, jego akceptacji i powiadomienia filtra o zmianie hasła.

Poniższy zrzut ekranu pokazuje przebieg żądania zmiany hasła przez użytkownika. Uwzględnia zainstalowaną, złośliwą bibliotekę, która zapisuje zmienione hasło do pliku na dysku.



Scenariusz – zapisywanie zmienianych haseł użytkowników do pliku na dysku

Poniższe eksperymenty z wyciąganiem haseł z procesu LSASS.EXE i omijaniem AV wykonaliśmy na najnowszym Windows 10 1909 zaktualizowanym w dniu opublikowania artykułu.

Aby można było poprawnie wykonać scenariusz musimy użyć poświadczenia konta posiadającego uprawnienia lokalnego administratora. Cały scenariusz opiera się na wykonaniu czterech kroków:

  1. Przygotowanie i skompilowanie odpowiedniej biblioteki filtrów haseł DLL – kapitanhack.dll.
  2. Umieszczenie tej biblioteki (plik DLL) w folderze „C:\Windows\ System32” (wymagane uprawnienia administracyjne).
  3. Modyfikacja klucza rejestru „Notification Packages” w celu zarejestrowania biblioteki DLL (wymagane uprawnienia administracyjne).
  4. Uruchomienie ponownie systemu Windows w celu załadowania biblioteki filtrów haseł do procesu LSASS.

Po zarejestrowaniu pliku biblioteki „kapitanhack.dll” w pakietach powiadomień Windows (Notification packages) zostanie ona załadowana do pamięci procesu lsass.exe i przechwyci wszystkie zmieniane hasła użytkowników.


Krok 1- przygotowanie biblioteki filtrów haseł

Kawałek kodu biblioteki „kapitanhack.dll” przedstawia poniższy listing.

W wyniku działania biblioteki otrzymamy nowe zmienione hasła użytkowników w postaci zwykłego tekstu zapisane w pliku „c:\temp\user-passwors.txt”.
Po kompilacji w C++ powyższego kodu do biblioteki „kapitanhack.dll” i testach jej niewykrywalności na Windows Defender, będziemy ją mogli załadować do pamięci komputera.


Krok 2 – skopiowanie biblioteki kapitanhack.dll do „C:\Windows\System32”

W systemie operacyjnym musimy najpierw skopiować nasza bibliotekę do katalogu „c:\Windows\system32”. Możemy to wykonać poleceniem (wymagane uprawnienia administracyjne):

copy kapitanhack.dll c:\windows\system32


Krok 3 – Dodanie biblioteki do klucza rejestru „Notification Packages”

Następnie musimy dodać do rejestru wartość klucza

reg add „HKLM\SYSTEM\CurrentControlSet\Control\Lsa” /v “Notification Packages” /d “scecli\0kapitanhack” /t REG_MULTI_SZ /f

Uwaga! Pomiędzy nazwą biblioteki „scecli” a „kapitanhack” umieściliśmy znak spacji „\0”.

W wyniku powyższej komendy w rejestrze systemowym w kluczu „Notification Packages” zaobserwujemy następujące wartości:


Krok 4 – Restart komputera

Po restarcie komputera będziemy mogli w pliku „lsass-paswords.txt” w katalogu „c:\temp” zobaczyć hasła wszystkich użytkowników, którzy zmienią hasło.

Po stronie procesu Lsass.exe możemy zaobserwować załadowaną naszą bibliotekę kapitanhack.dll, za pomocą, której będziemy mogli zapytywać zmieniane hasła do pliku.


Jak sobie radzić z problemem?

Udało nam się pokazać scenariusz, w którym możemy wykonać złośliwy kod na zabezpieczonym i zaktualizowanym komputerze z Windows 10 (wydanie 1909 ) i dzięki temu poznać hasła zmieniane na kontach przez użytkowników. W celu zabezpieczenia się w przyszłości przed tego typu działaniami możemy skorzystać z następujących wskazówek:

  • Monitorować zmiany w pakietach bezpieczeństwa (wartość klucza rejestru):
    “hklm\system\ currentcontrolset \control\lsa\”
  • Naszą bibliotekę „kapitanhack.dll”można zaobserwować na liście bibliotek DLL ładowanych przez lsass.exe. W celu wykrycia nowych/innych niestandardowych bibliotek możemy ustalić białą listę podstawowych bibliotek DLL, jakie ładują się do procesu lsass i monitorować go pod kątem wszelkich nowych, podejrzanych bibliotek DLL
  • Wdrożyć SYSMON do monitorowania procesów.
  • Wdrożyć dobrego antywirusa (najlepiej z funkcją EDR).

Popularne

Atak bez hasła na Microsoft 365. Przestępcy przejmowali sesje i obchodzili MFA

Atak bez hasła na Microsoft 365. Przestępcy przejmowali sesje i obchodzili MFA

Kampania wykorzystująca kradzież i powtórne użycie tokenów uwierzytelniających doprowadziła do przejęcia 97 kont w 79 organizacjach. Cyberprzestępcy nie musieli łamać haseł ani ponownie przechodzić uwierzytelni...
Jedna luka może pozwolić na przejęcie kontroli nad całą domeną. Microsoft łata krytyczną podatność Active Directory

Jedna luka może pozwolić na przejęcie kontroli nad całą domeną. Microsoft łata krytyczną podatność Active Directory

Active Directory od lat stanowi fundament zarządzania tożsamością i dostępem w środowiskach korporacyjnych. To właśnie za jego pośrednictwem organizacje kontrolują konta użytkowników, uprawnienia, dostęp do s...
Badacz uzyskał uprawnienia roota w najnowszym Samsung Smart TV i odkrył zaskakujące fakty

Badacz uzyskał uprawnienia roota w najnowszym Samsung Smart TV i odkrył zaskakujące fakty

Współczesne Smart TV korzystają z systemów operacyjnych, łączą się z Internetem, analizują sposób korzystania z aplikacji i mogą wspierać personalizację reklam. Pojawia się jednak pytanie, gdzie kończy...
Wykradanie haseł do Wifi z urządzeń sieciowych (na przykładzie modemu od UPC)

Wykradanie haseł do Wifi z urządzeń sieciowych (na przykładzie modemu od UPC)

Posiadasz urządzenie od UPC lub inne, które łączy się po Wifi? Chciałbyś poznać jego hasło do sieci? W tym artykule opiszemy sposób, dzięki któremu będziemy mogli poznać aktualne hasło do WiFi przech...
Jak hakerzy wykorzystują PHP2Shell do uzyskania uprawnień administratora (root) na Firewallach

Jak hakerzy wykorzystują PHP2Shell do uzyskania uprawnień administratora (root) na Firewallach

Nie tak dawno obszernie analizowaliśmy dwie krytyczne luki dotyczące silnika PHP wykorzystywanego przez miliony stron internetowych. W artykule dostępnym tutaj opisywaliśmy, jak mogą być eksploatowane te po...