Ostatnie błędy w zabezpieczeniach pakietu Office wywołały nową falę kreatywności wśród cyberprzestępców, objawiającą się także w zagadnieniach niezwiązanych bezpośrednio z owymi błędami. Wirusy załączane do najnowszych kampanii są przede wszystkim zorientowane na omijanie analizatorów i stosowanie niecodziennych formatów zapisu. Widać także innowacje w łańcuchu dostaw.
Nowa iteracja szkodników wykorzystujących makra stosuje formaty binarne. Zazwyczaj pod tą nazwą kryją się tzw. klasyczne formaty zapisu Office, znane z dawnych wersji pakietu, sprzed roku 2007. Ale tak, jak dzisiejszy format Office Open XML (DOCX/XLSX) miał swojego poprzednika (Office XP XML), tak formaty binarne mają swoich… następców. Na przykład XLSX ma swoją siostrzaną wersję XLSB. Jest to format binarny, zdolny do przechowywania wszystkich składników dokumentu Office 2007 i nowszych, bez konieczności parsowania gigantycznych drzew XML będących sercem formatu XLSX.
Pozwala on oszczędzać pamięć (i czas) podczas ładowania i jest zdecydowanie trudniejszy w automatycznym przetwarzaniu przez skanery. Pakiet oletools, będący zestawem narzędzi m.in. do wydobywania makr VBA z dokumentów Office, informuje o obsłudze formatu XLSB. Nie radzi on sobie jednak z najnowszą kampanią. Dlaczego?
Excel 4.0
Otóż przestępcy korzystają z ostatnich chwil obsługi formatu makr Excel 4.0 w pakiecie Office. Czwarta wersja Excela, wydana w roku 1992 i obecna na rynku przez niecały rok, zawierała obsługę makr w dialekcie o formacie poprzedzającym stosowany do dziś język VBA. Makra Excela 4.0 były poleceniami w komórkach arkusza, a nie oddzielnymi jego składnikami (dlatego oletools ich nie widzi!). Dziś „w naturze” nie ma niemal żadnych dokumentów w formacie Excela 4.0, 16-bitowego programu nieobsługującego nawet więcej niż jednego arkusza w dokumencie. Ale obsługa jego makr jest wciąż obecna.
Uruchomienie makra prowadzi do wykonania zbioru poleceń tworzących plik „excel.rtf” w dość nietypowej lokalizacji. Jest nią katalog ProgramData na dysku systemowym. W przeciwieństwie do katalogu AppData, gdzie każdy użytkownik ma swoje dokumenty, pliki tymczasowe/podręczne oraz programy, ukryty w systemowy katalog ProgramData zawiera pliki podręczne dla aplikacji zainstalowanych dla wszystkich użytkowników, wspólne dla każdego z nich. Jest zazwyczaj stosowany do przechowywania instalatorów aktualizacji oprogramowania (Firefox, OneDrive są tu przykładem). Użytkownicy nie mogą modyfikować tych plików (bez podniesienia uprawnień)… ale mogą tworzyć nowe! O wiele łatwiej je przeoczyć niż te z AppData.
HTA
Plik excel.rtf zdecydowanie nie jest jednak dokumentem RTF. To plik HTML z rozszerzeniami HTA. Aplikacje HTA, renderowane silnikiem Internet Explorera, stosują wszystkie technologie webowe dostępne w Windows, ale ponieważ są traktowane jak lokalne aplikacje, nie obowiązują ich żadne ograniczenia w kwestii korzystania z silników skryptów. Mają dostęp do narzędzi, których wykorzystanie przez strony internetowe jest domyślnie zakazane nawet w sieci wewnętrznej. Niniejsza złośliwa aplikacja HTA pracuje w zminimalizowanym, niewidocznym na pasku oknie i wywołuje silnie zaciemniony skrypt Visual Basic Script.
Po jego odkręceniu widzimy, że skrypt usiłuje pobrać i zapisać plik znajdujący się pod jednym z trzech adresów hostujących załączniki przesyłane przez komunikator Discord. Podobnie jak OneDrive, Discord uchodzi za „zaufaną aplikację” w tym znaczeniu, że ruch sieciowy generowany przez nią nie jest sam w sobie podejrzany. IPS lub zapora nie oznaczą ruchu do Discorda jako podejrzanego (co innego pobieranie pliku z bezimiennego IP w Kirgistanie). Dopiero zawartość owego (zaszyfrowanego przez TLS) ruchu może być niebezpieczna i to musi już wykryć antywirus. W momencie rozsyłania kampanii, tylko dwa z nich widziały zagrożenie w pobieranych plikach.
DLL
Załączniki z Discorda są także zapisywane do ProgramData, tym razem z rozszerzeniem MP4. Nie jest to jednak żaden plik MP4, a biblioteka DLL, uruchamiana następnie przez RunDll32. Interesująca metoda mylenia analizatorów zachodzi później. Punktem startowym biblioteki jest eksport KdSendPacket, co jest nazwą jednej z funkcji debugera jądra Windows. Biblioteka następnie istotnie usiłuje pisać do wyjścia debugera.
Według sandboksa Joe Sandbox Cloud, działanie takie nosi znamiona szkodnika Dridex, czyli znanego złodzieja haseł poświadczeń bankowych. Tego typu malware celuje raczej w użytkowników indywidualnych. Z tym, że złośliwy skrypt VBS dołączony do kampanii robił jeszcze jedną rzecz: porównywał nazwę serwera uwierzytelniającego z nazwą komputera. Kontynuował działanie tylko, gdy były różne. To ciekawa metoda sprawdzenia, czy komputer należy do domeny Active Directory. Zorientowanie ataku tylko na komputery firmowe oznacza, że kampania raczej miała rozsyłać ransomware niż tylko kraść hasła.
Złośliwy payload został już zdjęty z Discorda. Dzieje się to w jego przypadku znacznie szybciej niż na OneDrive’ie. Tam wirusy nierzadko leżą przez wiele tygodni, a przecież ruch do/z Microsoftu uchodzi za bezpieczny…
Pakiet Office do końca roku ma przestać obsługiwać makra Excela 4.0, ale prawdziwym rozwiązaniem byłoby raczej wyłączenie obsługi HTA. To jakoś nie może nastąpić już od wielu lat, a aplikacje HTA działają także w Windows 11, gdzie nie ma nawet Internet Explorera. Dobrą praktyką, poza zablokowaniem programu MSHTA.EXE na systemowej zaporze, jest także włączenie reguły redukcyjnej D4F940AB-401B-4EFC-AADC-AD5F3C50688A Defendera. Zabrania ona aplikacjom Office tworzyć procesy potomne. Dzięki temu wirusy celujące w dokumenty Office’a nie będą mogły uruchamiać swoich „ciągów dalszych”, wykorzystujących zazwyczaj takie rozwiązania jak HTA, VBS i PowerShell.