Menu dostępności

Exploit na 0-day umożliwiający przejęcie Windows i domeny Active Directory

Przedwczoraj do sieci wyciekł exploit 0-day (potoczna nazwa: „Nightmare”) na odkrytą niedawno podatność Microsoft o numerze CVE-2021-1675. Udało nam się go również przetestować.
Szczegóły techniczne i exploit typu proof-of-concept (PoC) zostały przypadkowo ujawnione w związku z niezałataną obecnie luką w systemie Windows, która umożliwia zdalne wykonanie kodu (ang. Remote Command Execution).
Pomimo konieczności uwierzytelniania (wymagane poświadczenia zwykłego użytkownika Windows lub Active Directory), problemu jest krytyczny, ponieważ cyberprzestępcy mogą wykorzystać go do przejęcia kontrolera domeny AD, aby łatwiej wdrożyć złośliwe oprogramowania w sieci firmowej.


Problemy z usługą PrintSpooler

Odkryta luka dotyczy bufora wydruku (spoolsv.exe), usługi systemu Windows, która służy jako ogólny uniwersalny interfejs między systemem operacyjnym Windows, aplikacjami i drukarkami lokalnymi lub sieciowymi, umożliwiając twórcom aplikacji łatwe inicjowanie zadań drukowania.

Usługa ta jest dostępna w systemie Windows od lat 90-tych i jest jednym z najbardziej wadliwych procesów systemu operacyjnego, w której na przestrzeni lat wykryto wiele luk, w tym błędy takie jak PrintDemon, FaxHell, Evil Printer, CVE-2020-1337, a nawet niektóre 0-day’e używane w atakach Stuxnet. O podatności o nazwie „PrintDemon” pisaliśmy tutaj oraz o przejęciu kontrolera domeny przy wykorzystaniu SprintSpooler – tutaj.

CVE-2021-1675, najnowszy z tej długiej linii błędów bufora wydruku, został odkryty przez badaczy bezpieczeństwa z Tencent Security, AFINE i NSFOCUS na początku tego roku.


Zdalne uruchomienie kodu

Błąd został początkowo sklasyfikowany jako nieistotna luka umożliwiająca podniesienie uprawnień, która pozwalała atakującym na uzyskanie uprawnień administratora, ale w zeszłym tygodniu Microsoft zaktualizował opis błędu, aby sklasyfikować CVE-2021-1675 jako problem dotyczący zdalnego uruchomienia kodu, który może być wykorzystywany do umożliwienia atakującym przejęcia pełnej kontroli nad niezałatanymi systemami Windows.

Początkowo dla CVE-2021-1675 nie opublikowano żadnego technicznego opisu ani kodu weryfikującego koncepcję, co oznacza, że osoby atakujące, które chciały wykorzystać błąd, musiały same zbadać kod łatki i stworzyć exploita, jeśli chciały zintegrować ten błąd w ich atakach.


Exploit usunięty z Internetu

W zeszłym tygodniu chińska firma zajmująca się bezpieczeństwem QiAnXin po raz pierwszy opublikowała niskiej jakości GIF pokazujący exploita dla błędu CVE-2021-1675, ale firma nie ujawniła żadnych szczegółów technicznych ani działającego PoC, aby dać użytkownikom więcej czasu na aktualizacje zabezpieczeń z tego miesiąca.

Jednak, dogłębny opis techniczny i w pełni działający exploit PoC zostały udostępnione na GitHub 29 czerwca br. Repozytorium GitHub zostało wyłączone po kilku godzinach, ale wcześniej zostało sklonowane przez kilku innych użytkowników.


Szczegóły techniczne

Opracowany przez trzech analityków z chińskiej firmy zajmującej się bezpieczeństwem Sangfor, artykuł, którego nie będziemy tutaj linkować (zainteresowani mogą go jeszcze znaleźć w Google cache), szczegółowo opisuje, w jaki sposób trio odkryło błąd niezależnie od zespołów, które zgłosiły lukę Microsoftowi.

„Znaleźliśmy również ten błąd wcześniej i mamy nadzieję, że utrzymamy go w tajemnicy, aby wziąć udział w Tianfu Cup [konkursie hakerskim]”, powiedział zespół chińskich hakerów.

Badacze powiedzieli, że odkąd QiAnXin opublikował wideo z exploitem CVE-2021-1675, postanowili w rezultacie opublikować pełny opis i PoC.

Jednak zespół pożałował swojej decyzji kilka godzin później, po tym, jak zdał sobie sprawę, że zdradzają wszystkie szczegóły rozmowy, którą zaplanowali na konferencję bezpieczeństwa Black Hat USA 2021 w tym roku.

Zespół zdjął repozytorium na GitHub, ale do tego czasu exploit i zapis CVE-2021-1675 zostały już sklonowane.

Źródła i PoC są obecnie udostępniane w zamkniętych społecznościach infosec i oczekuje się, że w najbliższych dniach ponownie wejdą do domeny publicznej.

Oczywiście znaleźliśmy kody źródłowe exploit’a i udało nam się również go przetestować. Działa 🙂

Według twórców exploita błąd tkwi w funkcji ”ValidateObjectAccess” realizującej kontrolę bezpieczeństwa dla usługi buforowania:

„Uwierzytelniony do systemu atakujący może ominąć kod biblioteki RpcAddPrinterDriver i dzięki temu może na uprawnieniach SYSTEM zainstalować złośliwy sterownik na serwerze wydruku. Zgodnie z tym, co twierdzi Microsoft w bazie msdn klient potrzebuje uprawnienia SeLoadDriverPrivilege do wywołania RPC. Jednak to nieprawda.”

„W liniach 19 i 20 argument a4 jest kontrolowany przez użytkownika. Tak więc normalny użytkownik może ominąć kontrolę bezpieczeństwa i dodać sterownik. Jeśli jesteśmy w domenie, zwykły użytkownik domeny może połączyć się z usługą buforowania na kontrolerze i zainstalować tam sterownik. Wtedy będzie mógł w pełni kontrolować Domenę.”

Uruchomienia exploita na systemie Windows:

Skutek wykonania exploit widoczny w narzędziu Proces Monitorz’e – biblioteka MyExploit.dll została załadowana do procesu spoolsv.exe:


Scenariusz POC

Benjamin Delpy, twórca narzędzia Mimikatz, przeprowadził test zdalnego uruchomienia wykonania kodu z najwyższymi uprawnieniami na w pełni załatanym systemie! Kod exploit’a skompilował do najnowszej wersji narzędzia Mimikatz (30 czerwca) do modułu „printnightmare”, którego wynik uruchomienia możecie zobaczyć na poniższym ekranie.

Chociaż jego test był również na kontrolerze domeny, Delpy stwierdził, że ten sam wynik jest osiągany „zdalnie lub lokalnie na wszystkich systemach Windows po protokole RPC oraz które mają włączoną usługę bufora wydruku”.

Delpy nakręcił film pokazujący, że jego system testowy z najnowszymi aktualizacjami nie powstrzymał exploita PrintNightmare:


Zalecania dla firm

Ponieważ luka CVE-2021-1675, którą zespół Sangfor nazwał PrintNightmare, została zmieniona przez Microsoft w wektor ataku RCE, a kod exploita PoC jest teraz w domenie publicznej, firmom zaleca się jak najszybsze zaktualizowanie swoich systemów Windows. Przy czym pamiętać należy, że wydana przez Microsoft 8 czerwca poprawka dla CVE-2021-1675 łata tylko wektor ataku podniesienia uprawnień, ale nie RCE, ponieważ wydaje się, że Microsoft dołączył dwie różne luki w zabezpieczeniach w ramach tego samego identyfikatora CVE. W wyniku tego odkrycia łatanie systemów Windows nie chroni ich przed atakami, a zamiast tego zaleca się administratorom systemu wyłączenie usługi Bufor wydruku, zwłaszcza na serwerach Windows działających jako kontrolery domeny, z których atakujący mogą przejść do całych sieci wewnętrznych.

Należy zauważyć, że luka dotyczy wszystkich dostępnych obecnie wersji systemu operacyjnego Windows, a nawet może mieć wpływ na przestarzałe wersje systemu Windows, takie jak XP i Vista.

Ponieważ błędy bufora wydruku były wykorzystywane w atakach w przeszłości, istnieje duże prawdopodobieństwo, że ten błąd również zostanie nadużyty, zwłaszcza że jest to RCE, klasa podatności ceniona przez większość atakujących.

Grzegorz Tworek (pozdrawiamy) opublikował skrypt w Powershell na Github o nazwie „StopAndDisableDefaultSpoolers.ps1” pomagający wykryć włączoną usługę PrintSpooler na serwerach i ją wyłączyć (disable):

Ze swojej strony dodamy, że warto monitorować biblioteki jakie zostają ładowane do procesu „spoolsv.exe” (proces bufora wydruku). Można to wykonać za darmo narzędziem SYSMON oraz komercyjnymi narzędziami np. 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...
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...
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...
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...