Cyberprzestępcy wykorzystują aplikację Microsoft Teams i jej infrastrukturę informatyczną do przeprowadzania ataków phishingowych dzięki nowatorskiej techniki, znanej jako GIFshell. Używają przy tym plików o rozszerzeniu „GIF” do wykonywania ukrytych poleceń w celu kradzieży danych.
UWAGA! Omawiany w artykule atak może przysporzyć organizacjom korzystającym z Microsoft Teams wielu powodów do obaw, ponieważ jest on trudno wykrywany przez specjalistyczne narzędzia do cyberbezpieczeństwa. Poniżej opisujemy go oraz zamieszczamy wskazówki, jak się przed nim chronić.
Jak wygląda atak na Microsoft Teams?
Nową technikę ataku opisuje konsultant ds. cyberbezpieczeństwa i pentester, Bobby Rauch tutaj. Jest ona o tyle ciekawa, iż eksfiltracja danych odbywa się przez serwery własne Microsoftu, a co za tym idzie – ruch jest trudniejszy do wykrycia przez oprogramowanie zabezpieczające, które postrzega go jako legalny ruch Microsoft Teams.
W swoim artykule Bobby pokazuje, iż osoba atakująca może wykorzystać aż siedem różnych niezabezpieczonych elementów komunikacji sieciowej oraz luk w zabezpieczeniach występujących w Microsoft Teams celem uruchomienia odwrotnej powłoki do komunikacji między atakującym a ofiarą (C2 reverse shell).
Przy tym „żadna komunikacja nie jest bezpośrednio wymieniana między atakującym a ofiarą, ale jest w całości przesyłana przez złośliwe pliki GIF wysyłane w wiadomościach Teams oraz wyszukiwania plików GIF poza granicami (OOB) prowadzone przez własne serwery Microsoft”.
Jak twierdzi Rauch, „ta unikalna infrastruktura C2 może być wykorzystana przez zaawansowanych cyberprzestępców w celu uniknięcia wykrycia przez EDR i inne narzędzia do monitorowania sieci”.
Ten łańcuch ataku może spowodować zagrożenie szczególnie w wielu bezpiecznych środowiskach sieciowych, gdzie Microsoft Teams jest jednym z niewielu dozwolonych, zaufanych hostów i programów. Stanowi to dużą lukę w zabezpieczeniach, gdyż może prowadzić do otwarcia „tylnej furtki” do środowiska.
Ogólnie rzecz biorąc, technika ataku GifShell wykorzystuje różne luki w bezpieczeństwie, w tym siedem następujących luk w Microsoft Teams:
- Ominięcie kontroli bezpieczeństwa Microsoft Teams umożliwiające użytkownikom zewnętrznym wysyłanie załączników do użytkowników Microsoft Teams.
- Możliwość modyfikacji wysłanego załącznika w celu przekonania użytkownika do pobierania pliku z zewnętrznego adresu URL zamiast wygenerowanego łącza SharePoint.
- Fałszowanie załączników Microsoft Teams, aby wyglądały na nieszkodliwe pliki, ale pobierały złośliwy plik wykonywalny lub dokument.
- Niezabezpieczone schematy identyfikatorów URI, w celu umożliwienia kradzieży hashy haseł NTLM poprzez protokół SMB lub przeprowadzenie ataku NTLM Relay.
- Włączoną obsługę wysyłania plików GIF zakodowanych w formacie HTML base64 przez Microsoft. Dodatkowo funkcjonalność ta nie skanuje ich zawartości – pozwala to na dostarczanie złośliwych poleceń w normalnie wyglądającym GIF-ie.
- Przechowywanie wiadomości Teams w możliwym do przeanalizowania pliku dziennika Microsoft, zlokalizowanym lokalnie na komputerze ofiary i dostępnym dla użytkowników ze zwykłymi uprawnieniami (nieuprzywilejowanymi).
- Wykorzystanie zdalnych serwerów Microsoft do pobierania GIF, umożliwiając za ich pomocą eksfiltrację danych.
Nietrudno się domyślić, iż dzięki tej nowej metody atakujący mogą tworzyć złożone operacje, wykorzystując powyższe słabości Microsoft Teams i – co najważniejsze – przeprowadzać je z wykorzystaniem legalnej infrastruktury Microsoft. Mają one na celu dostarczanie i wykonywanie:
- złośliwych plików,
- niedozwolonych poleceń
- oraz eksfiltracji danych dzięki GIF-ów (przez serwery kontrolowane przez samą firmę Microsoft).
Demonstrację ataku możecie zobaczyć na poniższym nagraniu. https://gfycat.com/pl/shorttermbrownindigobunting
Atak GIFshell „od podszewki”
Cały atak oraz kroki potrzebne do jego wykonania autor publikuje na swoim blogu tutaj. Zamieścił także na GitHub źródła do skryptów wykorzystywanych w ataku. Poniżej opisujemy, jak wygląda atak „od podszewki”.
Główny składnik ataku nosi nazwę „GIFShell” i umożliwia atakującemu utworzenie odwróconej powłoki komunikacyjnej (reverse shell). Ta zaś dostarcza cyberprzestępcom możliwości uruchamiania na komputerze ofiary złośliwych poleceń. To wszystko możliwe jest dzięki plikom GIF zakodowanym w base64 w usłudze Teams oraz opcji eksfiltracji danych wyjściowych z wykorzystaniem infrastruktury firmy Microsoft za ich pomocą.
W celu uruchomienia odwrotnej powłoki osoba atakująca musi najpierw przekonać użytkownika do zainstalowania złośliwego „stagera” (pliku wykonywalnego złośliwego oprogramowania) , który jest odpowiedzialny za wykonywanie poleceń i przesyłanie danych wyjściowych poleceń za pośrednictwem adresu URL do pliku GIF poprzez Microsoft Teams.
Dodatkowo kod złośliwego programu stale skanuje dzienniki zdarzeń (logi) Microsoft Teams, znajdujące się na dysku w lokalizacji „$HOME\AppData\Roaming\Microsoft\Teams\IndexedDB\https_teams.microsoft.com_0.indexeddb. poziomdb\*.log.”.
Należy tutaj dodać, iż wszystkie otrzymane przez MS Teams wiadomości są zapisywane w tych dziennikach i mogą być odczytywane przez wszystkie grupy użytkowników systemu Windows. Oznacza to, iż każde złośliwe oprogramowanie na urządzeniu może uzyskać do nich dostęp.
Po umieszczeniu „stagera” atakujący muszą utworzyć własnego dzierżawcę Microsoft Teams (własny tenant) i skontaktować się ze swoją ofiarą spoza swojej organizacji przez Teams, co mogą łatwo osiągnąć, ponieważ Microsoft domyślnie zezwala na komunikację zewnętrzną w aplikacji.
W celu zainicjowania ataku cyberprzestępca może użyć napisanego w Python skryptu GIFShell (przedstawionego przez Raucha), który wysyła do użytkownika Microsoft Teams wiadomość zawierającą specjalnie spreparowany plik GIF. Jest to nic innego jak prawdziwy obraz GIF, jednak zmodyfikowany tak, aby zawierał polecenia, które będą wykonywane na komputerze docelowym (ofiary).
Gdy ofiara otrzyma wiadomość, wiadomość i GIF zostaną zapisane w dziennikach Microsoft Teams, które monitoruje złośliwy „stager”.
Następnie „stager” wykrywa wiadomość z GIF-em, wyodrębnia polecenia zakodowane w base64 i wykonuje je na urządzeniu ofiary. Dalej GIFShell pobiera dane wyjściowe wykonanego polecenia i konwertuje je na tekst zakodowany w base64. Tekst ten używany jest jako nazwa pliku zdalnego GIF osadzonego w karcie Microsoft Teams Survey Card, którą urządzenie pomostowe przesyła do publicznego webhooka Microsoft Teams osoby atakującej.
Gdy Microsoft Teams renderuje karty flash dla użytkownika, serwery Microsoftu łączą się z adresem URL serwera atakującego, aby pobrać GIF, który jest nazwany dzięki zakodowanych w base64 danych wyjściowych wykonanego polecenia.
Serwer GIFShell działający na serwerze atakującego otrzymuje to żądanie i automatycznie dekoduje nazwę pliku, umożliwiając atakującym zobaczenie wyniku polecenia uruchomionego na urządzeniu ofiary.
Podczas gdy Microsoft próbuje pobrać pliki GIF, atakujący mogą przez cały czas używać serwera GIFShell do wysyłania większej liczby plików GIF z dodatkowymi osadzonymi poleceniami do wykonania i przez cały czas otrzymywać dane wyjściowe. Dzieje się tak, ponieważ żądania te są wysyłane przez witrynę Microsoft „urlp.asm.skype.com”, która jest używana do regularnej komunikacji Microsoft Teams. Zatem w komunikacji sieciowej ruch ten będzie postrzegany jako uzasadniony i niewykrywany przez oprogramowanie zabezpieczające.
Pozwala to atakowi GIFShell na potajemną eksfiltrację danych, mieszając dane wyjściowe swoich poleceń z legalną komunikacją sieciową Microsoft Teams.
Co gorsza, ponieważ Microsoft Teams działa w tle, nie musi być choćby otwierany przez użytkownika, aby otrzymać polecenia atakującego do wykonania.
Co na to Microsoft?
Rauch ujawnił błędy Microsoftu w maju i czerwcu 2022 roku. Pomimo iż spółka oceniła te problemy jako ważne, postanowiła nie naprawiać ich natychmiast. Jednak po 85 dniach przeglądu raporty nie spełniły swojego „postoju serwisowego”, mimo iż są to „świetne badania”. Microsoft wyraźnie udzielił pozwolenia na „blogowanie/omawianie tej sprawy i/lub publiczne prezentowanie wyników”. Luki w zabezpieczeniach pozostają niezałatane w najnowszej wersji usługi Teams, a łańcuch ataków GIFShell może być na nią przenoszony.
Jak można się zabezpieczyć przed tego typu atakiem?
Poniżej wymieniliśmy wszystkie zalecane środki łagodzące sugerowane przez Raucha:
- Wyłącz domyślne ustawienia dostępu zewnętrznego w witrynie Teams Admin Center, do której link znajduje się tutaj. jeżeli pracownicy firmy muszą komunikować się z kontaktami zewnętrznymi, zrób to dzięki funkcji dostępu gościa usługi Teams.
- Monitoruj pod kątem nietypowego dostępu do plików dziennik Microsoft Teams. Lokalizacja dziennika zespołu Microsoft (wersja służbowa lub szkolna): „$HOME\AppData\Roaming\Microsoft\Teams\IndexedDB\https_teams.microsoft.com_0.indexeddb.leveldb\*.log”
- Monitoruj pod kątem nietypowych żądań wysyłanych do serwera wyszukiwania GIF Teams, szczególnie w przypadku długich nazw plików GIF, które mogą zawierać eksfiltrowane dane: „https://urlp.asm.skype.com/v1/url/content?url=<attacker-public-ip>/<eksfiltrowane_danne-data>.gif”
Oprócz powyższego warto:
- zapewnić użytkownikom szkolenia uświadamiające o zagrożeniach oraz na temat tego, jak ważne jest, aby nie klikać załączników z nieznanych źródeł,
- wdrożyć specjalistyczne narzędzia firm trzecich do monitorowania zachowania użytkowników, w szczególności zapewniające zasady bezpiecznych załączników, które mogą pomóc w zapobieganiu atakom typu Drive-By download w usłudze Office 365,
- wyłączyć w infrastrukturze Active Directory protokół NTLM,
- włączyć podpisywanie protokołu SMB,
- wdrożyć złożoną politykę haseł w celu uniknięcia ataków NTLM.