IISpy: złożony backdoor po stronie serwera z funkcjami antykryminalistycznymi

Węzeł źródłowy: 1860948

Druga część naszej serii o zagrożeniach IIS omawia złośliwe rozszerzenie IIS, które wykorzystuje sprytne sztuczki, próbując zabezpieczyć długoterminowe szpiegostwo na zaatakowanych serwerach

Badacze firmy ESET odkryli i przeanalizowali wcześniej nieudokumentowanego backdoora, zaimplementowanego jako rozszerzenie Internet Usługi informacyjne (IIS), oprogramowanie serwera WWW firmy Microsoft. Backdoor, który nazwaliśmy IISpy, wykorzystuje różne sztuczki, aby zakłócać logowanie serwera i unikać wykrycia w celu prowadzenia długoterminowego szpiegostwa. IISpy jest wykrywany przez rozwiązania zabezpieczające ESET jako Win{32,64}/BadIIS.

Ten post na blogu jest drugą częścią naszej serii, w której badacze firmy ESET przyglądają się zagrożeniom serwerów internetowych IIS. W pozostałych częściach omówiono złośliwe oprogramowanie IIS wykorzystywane do cyberprzestępczość i Oszustwa SEO, Odpowiednio. Obszerny przewodnik dotyczący wykrywania, analizowania i usuwania złośliwego oprogramowania IIS można znaleźć w naszej białej księdze Anatomia natywnego złośliwego oprogramowania IIS, gdzie IISpy jest przedstawiane jako jedna z badanych rodzin (grupa 7).

Przegląd ataków

Według danych telemetrycznych firmy ESET ten backdoor jest aktywny co najmniej od lipca 2020 r. i był używany z Soczysty Ziemniak (wykrywany jako Win64/HackTool.JuicyPotato przez rozwiązania zabezpieczające ESET), które jest narzędziem do eskalacji uprawnień. Podejrzewamy, że napastnicy najpierw uzyskują wstępny dostęp do serwera IIS poprzez jakąś lukę w zabezpieczeniach, a następnie go wykorzystują Soczysty Ziemniak aby uzyskać uprawnienia administracyjne, które są wymagane do zainstalowania IISpy jako natywne rozszerzenie IIS.

Według naszej telemetrii IISpy wpływa na niewielką liczbę serwerów IIS zlokalizowanych w Kanadzie, USA i Holandii – ale prawdopodobnie nie jest to pełny obraz, ponieważ administratorzy nadal często nie używają żadnego oprogramowania zabezpieczającego na serwerach, co powoduje, że nasz wgląd w serwery IIS jest ograniczony.

Ponieważ IISpy jest skonfigurowany jako rozszerzenie IIS, może zobaczyć wszystkie żądania HTTP otrzymane przez zaatakowany serwer IIS i ukształtować odpowiedź HTTP, za pomocą której serwer odpowie. IISpy używa tego kanału do implementacji komunikacji C&C, co pozwala mu działać jako pasywny implant sieciowy. Jak pokazano na rysunku 1, operator (nie backdoor) inicjuje połączenie, wysyłając specjalne żądanie HTTP do zaatakowanego serwera. Backdoor rozpoznaje żądanie atakującego, wyodrębnia i wykonuje wbudowane polecenia backdoora oraz modyfikuje odpowiedź HTTP, aby uwzględnić dane wyjściowe polecenia.

Obsługiwane są następujące polecenia backdoora:

  • Uzyskaj informacje o systemie
  • Przesyłaj/pobieraj pliki
  • Wykonuj pliki lub polecenia powłoki
  • Utwórz odwrotną powłokę
  • Twórz/listuj/przenoś/zmieniaj nazwy/usuwaj pliki i foldery
  • Utwórz mapowanie między dyskiem lokalnym i zdalnym
  • Eksfiltruj zebrane dane

IISpy ignoruje wszystkie inne żądania HTTP wysyłane do zaatakowanego serwera IIS przez legalnych gości – oczywiście są one nadal obsługiwane przez łagodne moduły serwera.

Rysunek 1. Mechanizm kontroli backdoora IISpy

Rysunek 1. Mechanizm kontroli backdoora IISpy

Komunikacja sieciowa

Żądania kontrolne od operatorów IISpy mają predefiniowaną strukturę, z określoną (ukrytą) relacją pomiędzy Cookies i Gospodarz nagłówki i adres URL. Aby zidentyfikować takie żądania, IISpy najpierw oblicza skrót MD5 zarówno adresu URL, jak i Gospodarz nagłówek przychodzącego żądania HTTP i dzieli każde MD5 na cztery podwójne słowa:

  • = md0 (wartość nagłówka hosta)
  • = md0 (surowa wartość adresu URL)

Następnie sprawdza, czy nagłówek Cookie zawiera podciąg zbudowany z następujących wartości:

  • <r1><h2>=<h3><r2><r3><r0><h0><h1>

Rysunek 2 ilustruje sposób montażu tego podciągu. Polecenia backdoora są osadzone w treści HTTP, szyfrowane AES-CBC i kodowane w standardzie Base64.

Rysunek 2. IISpy kontroluje format żądania HTTP

Rysunek 2. IISpy kontroluje format żądania HTTP

Należy pamiętać, że ta struktura żądań kontroli jest unikalna dla IISpy: wszystkie inne znane backdoory IIS (które udokumentowaliśmy w naszym oficjalnym dokumencie Anatomia natywnego złośliwego oprogramowania IIS) są kontrolowane przez zakodowane na stałe hasła, określone identyfikatory URI lub niestandardowe nagłówki HTTP. W przeciwieństwie do tych „tajemnic”, żądania kontrolne IISpy są trudniejsze do odcisków palców i odnalezienia w dziennikach, co stanowi próbę niezauważenia komunikacji C&C.

Inną taką sztuczkę stosuje się po drugiej stronie komunikacji: IISpy osadza swoją zaszyfrowaną i zakodowaną odpowiedź w fałszywym obrazie PNG, pomiędzy nagłówkami plików PNG jako TEKST or KROPELKA kawałek. Aby odpowiedzieć na kontrolne żądanie HTTP, IISpy zastępuje oryginalną treść odpowiedzi HTTP (wysłaną przez serwer IIS) fałszywym plikiem PNG i ustawia Typ zawartości nagłówek do image / png aby zwiększyć wiarygodność tej farsy.

Obie strony komunikacji C&C są szyfrowane AES-CBC i kodowane w standardzie Base64 przy użyciu następujących parametrów:

  • Klucz szyfrowania: DA1F8BE19D9122F6499D72B90299CAB080E9D599C57E802CD667BF53CCC9EAB2
  • IV: 668EDC2D7ED614BF8F69FF614957EF83EE

Analiza techniczna

Z technicznego punktu widzenia IISpy jest zaimplementowany jako natywny moduł IIS – biblioteka DLL C++ wdrożona w %windir%system32inetsrv albo %windir%SysWOW64inetsrv folder na zaatakowanym serwerze IIS pod nazwą cache.dll or logowanie.dll.

IISpy jest skonfigurowany jako rozszerzenie IIS w pliku %windir%system32inetsrvconfigApplicationHost.config plik konfiguracyjny, dzięki czemu jest on ładowany automatycznie przez proces roboczy IIS (w3wp.exe), który obsługuje wszystkie żądania wysyłane do serwera WWW IIS. Jeśli chodzi o wykonanie i trwałość, skonfigurowanie IISpy jako samego modułu IIS sprawdza wszystkie pola – jedyne, co pozostało do zaimplementowania w złośliwym module, to faktyczne przetwarzanie żądań (a jako bonus kilka sztuczek zapobiegających wykryciu i kryminalistyce) ). W tej sekcji omówimy oba.

Moduł

IISpy jest napisany przy użyciu API IIS C++i używa instancji Kontekst IHttp, Żądanie IHttp i Odpowiedź IHttp interfejsy do analizowania żądań HTTP i manipulowania odpowiedziami HTTP.

Zgodnie z wymaganiami wszystkich natywnych modułów IIS eksportuje funkcję o nazwie Zarejestruj moduł, gdzie tworzy instancję swoich klas podstawowych i rejestruje ich metody dla zdarzeń serwera za pomocą IHttpModuleRegistrationInfo::SetRequestNotifications sposób, jak pokazano na rysunku 3.

Rysunek 3. Eksport modułu RegisterModule programu IISpy

Rysunek 3. Eksport modułu RegisterModule programu IISpy

Z niej dziedziczona jest podstawowa klasa IISpy Moduł CHttp i, jak widać na rysunku 4, zastępuje trzy ze swoich metod – procedury obsługi zdarzeń dla zdarzeń serwera:

  • Żądanie OnBegin jest wywoływany za każdym razem, gdy serwer rozpoczyna przetwarzanie nowego żądania HTTP, a IISpy używa tej procedury obsługi do analizowania go w poszukiwaniu żądań atakującego
  • Żądanie końcowe, wywoływany w ostatnim kroku w ramach protokołu HTTP potok przetwarzania żądań, implementuje interpreter backdoora IISpy
  • OnLogRequest, wywoływany tuż przed zarejestrowaniem przez serwer IIS przetworzonego żądania HTTP, implementuje funkcję zapobiegającą logowaniu IISpy

IISpy rejestruje te procedury obsługi z najwyższym priorytetem (poprzez IHttpModuleRegistrationInfo::SetPriorityForRequestNotification API). Ponieważ dla tego samego zdarzenia można zarejestrować kilka modułów IIS (złośliwych i zwykłych), gwarantuje to, że procedura obsługi IISpy zostanie wykonana przed innymi procedurami obsługi zarejestrowanymi dla tego samego zdarzenia.

Rysunek 4. Podstawowa klasa IISpy implementuje trzy procedury obsługi zdarzeń

Rysunek 4. Podstawowa klasa IISpy implementuje trzy procedury obsługi zdarzeń

Polecenia tylnego wejścia

W swoich Żądanie końcowe handler, IISpy odszyfrowuje treść HTTP żądania atakującego i wyodrębnia jego parametry, które są zorganizowane w pary klucz-wartość i wymienione w tabeli 1.

Tabela 1. Parametry żądania atakującego IISpy

Klawisz wartość
/tryb Typ polecenia
/akcja Command
/ścieżka
/dwójkowy
/dane
...
Argumenty poleceń (pełna lista znajduje się w tabeli 2)
/poświadczenia/nazwa użytkownika Nazwa użytkownika lokalnego, używana do podszywania się pod inne osoby
/poświadczenia/hasło Hasło użytkownika lokalnego, używane do podszywania się

Jeśli poświadczenia są obecne, IISpy używa ich do logowania się jako użytkownik (przez LoginUserW, Podszywaj się pod użytkownikaLoggedOn), aby wykonać polecenia backdoora w kontekście użytkownika. Polecenia i argumenty backdoora są również zorganizowane jako zagnieżdżone pary klucz-wartość, jak pokazano w tabeli 2.

Tabela 2. Polecenia i argumenty backdoora IISpy

Typ polecenia (/tryb wartość) Komenda (/akcja wartość) Argumenty (nazwy kluczy) Opis polecenia Zwracane dane (struktura mapy lub opis)
startowych N / A N / A Gromadzi podstawowe informacje o systemie: nazwę i domenę komputera, nazwę użytkownika i domenę, informacje o dyskach logicznych. /komputer/domena
/Nazwa komputera
/użytkownik/domena
/nazwa użytkownika
/-
  /Nazwa
  /rodzaj
filet podstęp /ścieżka Zbiera informacje o plikach w określonym folderze. /-
  /Nazwa
  /atr
  /rozmiar
  /tworzyć
  /dostęp
  /pisać
otrzymać /ścieżka
/dwójkowy
Pobiera plik o określonej nazwie z zaatakowanego serwera IIS. Zawartość pliku zaszyfrowana i osadzona w fałszywym obrazie PNG (nagłówek PNG, po którym następują dane inne niż obraz).
Stwórz /ścieżka
/informator
/dane
Tworzy nowy plik lub katalog w określonej ścieżce. Opcjonalny /dane argument może przechowywać zawartość pliku. /-
  /plik
  /atr
  /rozmiar
  /tworzyć
  /dostęp
  /pisać
przesłać /ścieżka
/dane
Przesyła plik o określonej nazwie na zaatakowany serwer. The /dane wpis zawiera zawartość pliku zakodowaną w standardzie Base64. /-
  /plik
  /atr
  /rozmiar
  /tworzyć
  /dostęp
  /pisać
usunąć /ścieżka
/akta
  /Nazwa
  /atr
Usuwa listę plików/katalogów w podanej ścieżce. /akta
  / kod
  /Nazwa
ruch /ścieżka
/desk
/Kopiuj
/akta
  /Nazwa
  /Nowy
Kopiuje lub zmienia nazwy plików z listy z katalogu źródłowego do katalogu docelowego. /akta
  / kod
  /Nazwa
czas /ścieżka
/tworzyć
/dostęp
/pisać
Modyfikuje znaczniki czasu plików N / A
napęd mapa /list
/udział
/nazwa użytkownika
/hasło
Tworzy mapowanie między dyskiem lokalnym i zdalnym przy użyciu określonych poświadczeń dla zasobu sieciowego. N / A
usunąć /list Usuwa istniejące mapowanie dysku N / A
cmd exec /cmd Wykonuje określone polecenie w kontekście bieżącego użytkownika lub użytkownika podanego w argumentach. Zwraca wynik polecenia. /wynik

Po wykonaniu polecenia backdoora IISpy szyfruje i koduje zwracane dane oraz wykorzystuje je do modyfikowania odpowiedzi HTTP na żądanie atakującego. Zwracane dane są również zorganizowane w postaci par klucz-wartość, z wpisami wymienionymi w tabeli 2 oraz dwoma dodatkowymi wpisami na podstawie GetLastError wynik (lub niestandardowe komunikaty o błędach):

  • /Kod błędu
  • /Komunikat o błędzie

Funkcja zapobiegająca logowaniu

Na koniec IISpy implementuje OnLogRequest obsługa zdarzeń – wywoływana tuż przed zarejestrowaniem przez serwer IIS przetworzonego żądania HTTP. Backdoor używa tego modułu obsługi do modyfikowania wpisów dziennika żądań pochodzących od osób atakujących, aby wyglądały jak zwykłe żądania. Jak pokazano na rysunku 5, podejmowane są następujące kroki:

  • Przepisz metodę HTTP w żądaniu do GET
  • Przepisz adres URL z żądania na /
  • Usuń te nagłówki z żądania: Cookies , Origin, Referer, Tryb drugiego pobierania, Witryna Sec-Fetch, Typ zawartości, Content-Length, X-przesłane-IP, X przekazane do, X-Przesłane-Przez, X-Przesłane-Proto

Po zmodyfikowaniu w ten sposób wpisów dziennika osoby atakujące próbują jeszcze bardziej ukryć ślady swoich szkodliwych działań, aby utrudnić potencjalną analizę kryminalistyczną.

Rysunek 5. IISpy modyfikuje wpisy dziennika dla żądań atakującego

Rysunek 5. IISpy modyfikuje wpisy dziennika dla żądań atakującego

Wnioski

IISpy to złożony backdoor po stronie serwera, który niewłaściwie wykorzystuje rozszerzalność oprogramowania serwera WWW IIS do jego trwałości, wykonywania i mechanizmów C&C. Dzięki swoim sztuczkom pozwalającym wtopić się w normalny ruch sieciowy i usunąć obciążające dzienniki, jest przeznaczony do długoterminowego szpiegostwa na zaatakowanych serwerach IIS.

Powinny zachować czujność organizacje, które przechowują poufne dane na swoich serwerach, np. organizacje, które mają włączoną usługę Outlook on the web (OWA) na swoich serwerach poczty e-mail Exchange – OWA jest wdrażana za pośrednictwem IIS i stanowi interesujący cel dla szpiegostwa. W każdym razie najlepszym sposobem na utrzymanie IISpy z dala od serwerów jest ich aktualizacja i dokładne rozważenie, które usługi są dostępne w Internecie, aby zmniejszyć ryzyko wykorzystania serwera.

Dodatkowe szczegóły techniczne dotyczące szkodliwego oprogramowania, wskaźników naruszenia i zasad YARA można znaleźć w naszym kompleksowym dokumencie biały papier, A na GitHub. W przypadku jakichkolwiek pytań lub składania przykładowych zgłoszeń związanych z tematem, skontaktuj się z nami pod adresem: groźba intel@eset.com.

Wskaźniki kompromisu (IoC)

Nazwy wykrywania ESET

Win32/BadIIS.F
Win64/BadIIS.U

SHA-1

22F8CA2EB3AF377E913B6D06B5A3618D294E4331
435E3795D934EA8C5C7F4BCFEF2BEEE0E3C76A54
CED7BC6E0F1A15465E61CFEC87AAEF98BD999E15

Nazwy plików

cache.dll
logowanie.dll

Techniki SKOŚNE ATT&CK

Uwaga: ta tabela została zbudowana przy użyciu wersja 9 frameworku MITER ATT&CK.

Taktyka ID Imię Opis
Rozwój zasobów T1587.001 Rozwijanie możliwości: złośliwe oprogramowanie IISpy to rodzina złośliwego oprogramowania stworzona na zamówienie.
T1588.002 Uzyskaj możliwości: Narzędzie Operatorzy IISpy używali Juicy Potato, lokalnego narzędzia do eskalacji uprawnień.
Wstępny dostęp T1190 Wykorzystaj aplikację publiczną IISpy prawdopodobnie uzyskuje początkowy dostęp do serwera IIS poprzez lukę w aplikacji internetowej lub na serwerze, zanim użyje narzędzia do eskalacji uprawnień Juicy Potato w celu uzyskania uprawnień administracyjnych wymaganych do zainstalowania natywnego modułu IIS.
Egzekucja T1059.003 Interpreter poleceń i skryptów: powłoka poleceń systemu Windows IISpy obsługuje polecenie backdoora, które używa powłoki poleceń systemu Windows do wykonywania poleceń powłoki na zaatakowanym serwerze IIS.
T1569.002 Usługi systemowe: wykonanie usługi Serwer IIS (i co za tym idzie, IISpy) pozostaje usługą Windows.
Uporczywość T1546 Wykonanie wywołane zdarzeniem IISpy jest ładowany przez proces roboczy IIS (w3wp.exe), gdy serwer IIS odbiera przychodzące żądanie HTTP.
Eskalacja uprawnień T1068 Wykorzystywanie do eskalacji uprawnień Operatorzy IISpy wykorzystali lokalne narzędzie do eskalacji uprawnień Juicy Potato w celu podniesienia uprawnień.
Unikanie obrony T1134.001 Manipulacja tokenem dostępu: podszywanie się pod token/kradzież IISpy ma możliwość wykonywania poleceń backdoora w kontekście innego użytkownika (poprzez LogonUserW, personifikujLoggedOnUser).
T1070 Usunięcie wskaźnika na hoście IISpy ma możliwość oczyszczenia rejestrowania żądań atakujących na serwerze IIS.
T1070.006 Usunięcie wskaźnika na hoście: Timestomp IISpy obsługuje polecenie backdoora umożliwiające modyfikowanie znaczników czasu plików.
Collection T1005 Dane z systemu lokalnego IISpy obsługuje polecenie backdoora umożliwiające zbieranie i wydobywanie plików z zaatakowanego serwera IIS.
Dowodzenia i kontroli T1071.001 Protokół warstwy aplikacji: protokoły internetowe IISpy to pasywny implant sieciowy: przeciwnicy wysyłają żądania HTTP do zaatakowanego serwera IIS w celu kontrolowania backdoora.
T1001 Zaciemnianie danych Operatorzy IISpy wysyłają polecenia ze specjalnie skonstruowaną kombinacją adresów URL, nagłówków hosta i plików cookie.
IISpy eksfiltruje dane w fałszywym pliku PNG (nagłówek PNG, po którym następują dane inne niż obraz), próbując nadać ruchowi C&C wygląd zwykłego ruchu sieciowego.
T1132.001 Kodowanie danych: kodowanie standardowe IISpy koduje komunikację C&C z kodowaniem Base64.
T1573.001 Szyfrowany kanał: kryptografia symetryczna IISpy używa AES-CBC do szyfrowania komunikacji C&C.
T1105 Transfer narzędzia Ingress IISpy obsługuje polecenie backdoora umożliwiające przesłanie dodatkowych narzędzi na zaatakowany serwer IIS.
Exfiltracja T1041 Eksfiltracja przez kanał C2 IISpy obsługuje polecenie backdoora umożliwiające eksfiltrację danych i plików z zaatakowanego serwera IIS.

Źródło: https://www.welivesecurity.com/2021/08/09/iispy-complex-server-side-backdoor-antiforensic-features/

Znak czasu:

Więcej z WeLiveSecurity