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.
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.
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
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.
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.
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ą.
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. |
- 2020
- 7
- dostęp
- aktywny
- zajęcia
- Dodatkowy
- Wszystkie kategorie
- analiza
- anatomia
- api
- Zastosowanie
- argumenty
- tylne drzwi
- BEST
- ciało
- Kanada
- Wykrywanie urządzeń szpiegujących
- przyjście
- wspólny
- Komunikacja
- zawartość
- treść
- ciastko
- cookies
- Listy uwierzytelniające
- Aktualny
- dane
- Wykrywanie
- odkryty
- ELEWACJA
- szpiegostwo
- wydarzenie
- wydarzenia
- wymiana
- egzekucja
- eksport
- eksport
- Wyciągi
- imitacja
- rodzin
- członków Twojej rodziny
- polecane
- Korzyści
- Postać
- i terminów, a
- format
- pełny
- funkcjonować
- Zarządzanie
- poprowadzi
- haszysz
- Ukryj
- przytrzymaj
- W jaki sposób
- How To
- HTTPS
- zidentyfikować
- obraz
- Informacja
- Internet
- IT
- lipiec
- Klawisz
- Ograniczony
- Lista
- miejscowy
- długo
- malware
- Manipulacja
- mapa
- Microsoft
- Nazwy
- Holandia
- sieć
- ruch sieciowy
- zamówienie
- Inne
- Outlook
- Papier
- Hasło
- hasła
- uporczywość
- obraz
- teraźniejszość
- Surowy
- zmniejszyć
- Zasób
- odpowiedź
- powraca
- rewers
- Ryzyko
- reguły
- Szukaj
- bezpieczeństwo
- Oprogramowanie zabezpieczające
- Serie
- Usługi
- Powłoka
- mały
- So
- Tworzenie
- Rozwiązania
- Utrzymany
- podpory
- system
- cel
- Techniczny
- Holandia
- Źródło
- zagrożenia
- czas
- żeton
- ruch drogowy
- us
- USA
- wartość
- widoczność
- wrażliwość
- sieć
- serwer wWW
- biały papier
- okna
- w ciągu
- słowa