Menu dostępności

MS Outlook as C2 client via IFilter

Użycie Outlooka jako klienta C2 do uruchamiania poleceń na uprawnieniach „Local System” w Windows. Wystarczy wysłać odpowiednią wiadomość e mail!

Dzisiaj mamy dla Was infosecową bombę – opisujemy nowy, nietypowy wektor ataku na organizacje, wykorzystujący aplikację kliencką Microsoft Outlook, która posłuży do wykonywania dowolnych poleceń po stronie komputera z Windows. Wystarczy wysłać do użytkownika odpowiednią wiadomość e-mail ze złośliwym załącznikiem (zwykłym plikiem tekstowym), a w tle systemu operacyjnego zostaną z niego automatycznie przeczytane i uruchomione komendy!

UWAGA! W opisywanym ataku użytkownik nie musi wykonywać żadnych aktywności, ponieważ podczas automatycznego odbierania poczty przez aplikację Outlook system operacyjny Windows uruchomi polecenia z załącznika w tle. Co ważne, polecenia zostaną uruchomione na najwyższych uprawnieniach w systemie – czyli jako „NT AUTHORITY\LOCAL SYSTEM”.

Microsoft Outlook jako klient serwera C2. Jak to możliwe?

Jak wykorzystać Microsoft Outlook do uruchamiania dowolnych poleceń na komputerze? Z pewnością wielu z Was łapie się w tym momencie za głowę i zadaje sobie pytanie – jak to możliwe? Odpowiedź jest prosta – przy pewnych warunkach (opisujemy je poniżej) jest to możliwe i w dodatku pokochacie lub znienawidzicie tę metodę. Nadmienimy, że jedną z podobnych (Follina) pokazywaliśmy tutaj.

Na wstępie warto wspomnieć, że nowy wektor ataku przedstawił na swoim Twitterze Grzegorz Tworek. Zamieścił też krótkie demo pokazujące, jak za pomocą zarejestrowanej dodatkowej biblioteki „iFilter” w Windows można przeprowadzić atak z wykorzystaniem oprogramowania Outlook na komputerze, przesyłając na niego maila z załącznikiem zawierającym linie kodu, które automatycznie uruchomią się po dotarciu na skrzynkę odbiorczą adresata.

atak z wykorzystaniem Outlooka i biblioteki iFilters
Źródło: Twitter (@0gtweet)

Jak się okazuje, winowajcą jest tutaj pewna usługa – Windows Search, indeksująca na dysku wszystkie pliki, które potrafi rozpoznać i przeczytać lub takie, jakie jej wskażemy za pomocą specjalnej biblioteki.

W ostatniej części powyższego zdania zawarte jest całe sedno ataku. Chodzi tutaj o mechanizm (API) w Windows zwany iFilter.

iFilter – co to takiego?

iFilter to udokumentowane przez Microsoft proste API napisane w C (filter.h), które skanuje dokumenty w poszukiwaniu tekstu i właściwości (zwanych także atrybutami). Wyodrębnia z nich fragmenty tekstu, odfiltrowując osadzone formatowanie i zachowując informacje o położeniu tekstu. Wyodrębnia również fragmenty wartości, które są właściwościami całego dokumentu lub jego dobrze zdefiniowanych części. IFilter zapewnia podstawę do tworzenia aplikacji wyższego poziomu, takich jak indeksery dokumentów i przeglądarki niezależne od aplikacji.

Dzięki iFilter, wpisując dowolne słowo w wyszukiwarce Windows, otrzymujemy w wyniku dokumenty, maile lub inne dane, które wcześniej zostały odnalezione i zindeksowane. Warto dodać, że system operacyjny Windows jest dostarczany z kilkoma standardowymi iFilterami (filtrami indeksującymi). iFiltry te umożliwiają szybkie wyszukiwanie pełnotekstowe w plikach Microsoft Office, dokumentach tekstowych, plikach HTML i innych.

Biblioteki dla iFilters oferują także inni producenci oprogramowania, między innymi Adobe, Corel czy Foxit. Dzięki nim Windows wie, jak ma je indeksować.

Grzegorz wpadł na pomysł, aby napisać własny iFilter i zainstalować go w systemie Windows.  Stworzył w ten sposób backdoor, który oczekuje pojawienia się określonego typu pliku. W momencie gdy ten się pojawi, Windows automatycznie przeczyta go i uruchomi z niego kod. Najprostszym sposobem na przesłanie takiego pliku na komputer użytkownika jest poczta, lecz musi on mieć zainstalowany ów dodatkowy iFilter.

Opis ataku z wykorzystaniem iFilter oraz Outlooka

UWAGA W celu przeprowadzenia ataku należy zarejestrować w Windows dodatkową bibliotekę iFilter. Aby było to możliwe, musimy posiadać uprawnienia administracyjne do systemu.

Poniżej prezentujemy wektor ataku na system Windows z wykorzystaniem specjalnej biblioteki iFilter oraz Microsoft Outlook do przesłania ładunku (pliku tekstowego z komendami do uruchomienia).

Krok 1. Tworzymy specjalną bibliotekę iFilter

Stworzona przez Grzegorza biblioteka nosi nazwę „MalFilter.dll”. W swoim kodzie zawiera informację, że musi rozpoznawać pliki o rozszerzeniu „*.filtertest”. Ciekawe przykłady na to, jak utworzyć taką bibliotekę, znajdziecie tutaj.

Krok 2. Wgrywamy bibliotekę iFilter na komputer użytkownika i instalujemy ją w systemie.

Poleceniem „regsvr32.exe MalFilter.dll” wgrywamy do systemu bibliotekę. Wykonujemy to na uprawnieniach administratora systemu. Od tej pory system monitoruje pojawiające się pliki o rozszerzeniu *.filtertest.

Wgrywanie biblioteki IFilter
Źródło: Twitter (@0gtweet)

Krok 3. Tworzymy plik tekstowy z payload do uruchomienia zewnętrznego polecenia

Tworzymy plik tekstowy o nazwie „command1.filtertest”. Rozszerzenie pliku jest tak naprawdę dowolne, ponieważ zdefiniuje je i rozpozna wgrana wcześniej do systemu biblioteka iFilter.

W pliku tekstowym zamieszczamy polecenie „net.exe”, za pomocą którego z linii wiersza poleceń Windows (cmd.exe) będziemy chcieli utworzyć w systemie użytkownika „hacker”. Przykład takiego polecenia zamieszczamy poniżej.

Tworzenie pliku tekstowy o nazwie „command1.filtertest”.
Źródło: Twitter (@0gtweet)

Krok 3. Przesyłamy plik pocztą do wskazanego użytkownika

Załączamy utworzony plik do wiadomości e-mail i przesyłamy do użytkownika. Pamiętajmy, że na jego komputerze musi być zainstalowany powyższy iFilter, ponieważ bez niego system nie będzie mógł rozpoznać pliku, a w szczególności zaindeksować jago treści.

Wysyłanie pliku do użytkownika
Źródło: Twitter (@0gtweet)

Krok 5. Automatyczne uruchomienie payload na komputerze

Po automatycznym odebraniu maila przez aplikację Outook na stacji użytkownika wykona się polecenie z pliku tekstowego.

Wykonanie polecenia z pliku tekstowego
Źródło: Twitter (@0gtweet)

Dzieje się tak, ponieważ system Windows przeczytał i zaindeksował załącznik w mailu.

Grzegorz udowadnia to poprzez uruchomione w tle narzędzie DebugView.

Potwierdzenie w narzędziu DebugView
Źródło: Twitter (@0gtweet)

W zaznaczonych na powyższym ekranie na czerwono linijkach widzimy, jak w tle systemu operacyjnego ma miejsce proces „SearchFilterHost.exe” (na uprawnieniach Local System) i dodatkowo uruchamiane jest polecenie (linijka z pliku tekstowego).

Demo opisanego ataku możecie zobaczyć na poniższym nagraniu, którego autorem jest Grzegorz.

Jak sobie radzić z problemem?

W przypadku opisywanego ataku istotną kwestią jest zainstalowana w systemie specjalna biblioteka iFilter, która umożliwia utworzenie w nim backdoora i uruchomienie dowolnego polecenia z pliku podczas procesu jego indeksowania. Z pewnością wyszukanie niestandardowych iFiltrów będzie wyzwaniem, ale możemy spróbować napisać własne polecenie sprawdzające konkretne wpisy w rejestrze systemowym. Na przykład iFilter dla PDF znajduje się w lokalizacji: „HKEY_CLASSES_ROOT\.pdf\PersistentHandler”. Można też użyć narzędzia FiltReg.

Popularne

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
Jak awaria Azure Front Door rzuciła cień na globalne usługi chmurowe

Jak awaria Azure Front Door rzuciła cień na globalne usługi chmurowe

W środę 9 października użytkownicy platformy Microsoft Azure na całym świecie doświadczyli poważnych zakłóceń. Wiele usług stało się niedostępnych, a administratorzy nie mogli nawet zalogować się do portalu...
Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jeśli masz odrobinę szczęścia lub „odpowiednie umiejętności” i potrafisz zdobyć lokalne uprawnienia administracyjne na Twoim komputerze w firmie lub zaliczasz się do grona tych szczęściarzy, którzy pracuj...
Czego nie mówi Broadcom? Luka w VMware jest banalna do wykorzystania i korzysta z niej co najmniej jedna grupa hakerska!

Czego nie mówi Broadcom? Luka w VMware jest banalna do wykorzystania i korzysta z niej co najmniej jedna grupa hakerska!

Niedawno załatana wysoce poważna luka w zabezpieczeniach VMware jest wykorzystywana jako zero-day od października 2024 roku do wykonywania kodu z podwyższonymi uprawnieniami. Taką informacją podzieliło się w...
Uwaga, administratorzy oraz zespoły bezpieczeństwa Splunk! Sześć krytycznych luk w Splunk Enterprise – analiza i rekomendacje

Uwaga, administratorzy oraz zespoły bezpieczeństwa Splunk! Sześć krytycznych luk w Splunk Enterprise – analiza i rekomendacje

Splunk opublikował ważne informacje, dotyczące szeregu nowych podatności w swoich produktach Splunk Enterprise i Splunk Cloud Platform. Luki mogą umożliwić atakującym wykonanie nieautoryzowanego kodu Ja...