Właśnie pojawiła się nowa, nietypowa podatność zeroday Follina. Nie ma jeszcze na nią dostępnej łatki Microsoftu (są tylko zalecenia). Chociaż grozi zhackowaninem komputera. Dlatego w szczególności należy zwrócić na nią uwagę i zabezpieczyć system. Poniżej pokazujemy, jak się zabezpieczyć.

Ktoś mógłby powiedzieć Follina – jak to pięknie brzmi! Przecież to urocza miejscowość we Włoszech w regionie Wenecji Eugańskiej. Kto był, ten pewnie teraz z zachwytem marzy o ponownej podróży;) Jak się okazuje, nazwa ta może wywołać przykre wspomnienia dla branży cybersec. Tytuł naszego postu, dość dosadny, ma zwrócić uwagę na pewien przekaz – „ZAWSZE ZAJDZIE SIĘ OBEJŚCIE”, a na podstawie nowoodkrytej podatności ZeroDay, „Follina” pokażemy, że cybersecurity to wciąż jedna wielka niewiadoma i obszar, w którym ciągle pojawiają się nowe sposoby na obejścia zabezpieczeń systemowych.

Luka dotyczy aplikacji Microsoft Office (wszystkie wersje od 2013). Ciekawostką w niej jest to, że do działania nie potrzebuje włączonego trybu obsługi Makr w dokumentach Office (zazwyczaj koniecznego do przeprowadzenia pierwszego kroku exploitacji w ataku np. phishingu)!


Co to jest Follina?

Pierwsza wzmianka w Internecie na temat tej podatności pojawia się 27 maja br.. Użytkownik o pseudonimie „Nao_sec” zidentyfikował dziwnie wyglądający dokument Worda, przesłany z adresu IP na Białorusi. Okazało się, że jest to luka dnia zerowego w pakiecie Office i/lub Windows. Wcześniejsze informacje na temat problemu były zgłaszane do Microsoft już w kwietniu, lecz firma stwierdziła, że to nie jest problem bezpieczeństwa!
Przykład dokumentu z maila rozsyłanego do Rosjan w kwietniu, który wykorzystywał podatność Follina i trafił na virustotal.

Dopiero, gdy problem urósł do większych rozmiarów i został bardziej nagłośniony w społeczności cybersecurity, Microsoft zdecydował się nim zająć (czekamy zatem na łatki).
Zanim rozłożymy problem na czynniki pierwsze posłużymy się krótkim opisem, który opublikował badacz Kevin Beaumont na swoim blogu tutaj wyjaśniając podatność.

„Złośliwy dokument zawiera w sobie instrukcję pobrania zewnętrznego szablonu (w formie HTML), a w tym HTML używany jest protokół (schemat) ms-msdt (czyli zamiast np. https:// jest ms-msdt://), który wykonuje lokalne polecenie msdt.exe, żeby z kolei odpalić już dowolny kod w PowerShellu.”

Zródło: Twitter profil „nao_sec”

Tłumacząc powyższe na język mniej techniczny:

  1. Osoba otwiera dokument Word lub RTF (lub jak pokażemy poniżej, wcale nie musi go otwierać)!
  2. W dokumencie skonfigurowany jest parametr URL, który zdalnie pobiera konfigurację pozwalającą na wywołanie wbudowanego w Windows narzędzia MSDT
  3. Za pomocą narzędzia MSDT uruchamiany jest kod (na uprawnieniach zalogowanego do systemu użytkownika)

Teraz wyobraźmy sobie sytuację, w której powyższy dokument otwiera administrator w firmie pracujący na podwyższonych (jak nie najwyższych) uprawnieniach w firmie 🙂

Na dzień publikacji tego artykułu, dokument na portalu Virustotal rozpoznaje jako szkodliwy 31 skanerów. Lecz pamiętajcie, że to nie jest w tym momencie największy wyznacznik. Liczy się sposób/metoda i to, że ktoś potrafi ją dostosować, tak aby była nierozpoznawalna! Pisaliśmy już wcześniej o tym tutaj.

Dla fanatyków cyberbezpieczeństwa publikujemy poniżej bardziej techniczne objaśnienie problemu i zalecenia.


Follina od środka

Warto poznać podatność od środka, by móc w ogóle zrozumieć co się dzieje w tle i jak w przyszłości unikać tego typu podobnych sytuacji. W Internecie znaleźliśmy ciekawą analizę badaczy Hountresslab i postanowiliśmy ją nieco skrócić oraz osobiście sprawdzić.
Pierwsze, co zrobiliśmy to pobraliśmy i rozpakowaliśmy złośliwy dokument z Internetu– najlepiej w jakimś bezpiecznym, odizolowanym środowisku testowym lub piaskownicy.

Zaglądając do wnętrza pliku XML „document.xml.rels” zobaczymy, że zawiera on pewną linię w elemencie „Relationship” i w atrybucie „Target”

Jest to link do zewnętrznego złośliwego zasobu, skąd Microsoft Office (proces winword.exe ) automatycznie pobiera obiekt powiązany o nazwie „RDF842l.html”. Możemy się o tym przekonać wrzucając plik *.doc do zewnętrznego analizatora ANY.RUN:

Zaś pobierany przez Word złośliwy plik HTML zawiera następującą treść w postaci skryptu w javascript:

I druga część:

Z czego interesujące są dwie rzeczy: początek skryptu (z bardzo dużą ilością znaków „A”) oraz koniec – wykonywany kod, który wygląda na sedno exploit’a:

Używając schematu ms-msdt, natywny pakiet PCWDiagnostic jest wywoływany z parametrami IT_BrowseForFile, który zawiera składnię PowerShell osadzoną w „$()”.

Już tutaj widzimy, że atakujący zastosowali specjalna technikę obfuskacji i maskowania kodu oraz wbudowane w Windows narzędzia (tzw. LOLBIN), które są pomocne w jego automatycznym wykonaniu – „msdt.exe”

Po zdekodowaniu powyższego kodu Powershell otrzymamy:

Badacze z Hountresslab zwracają uwagę na dużą ilość znaków „A” na początku skryptu. Jak się okazuje, pozwala to ominąć bufor 4096 bajtów, po którym wyzwalany jest exploit. Wzmiankę o tym można przeczytać tutaj.

Są jeszcze dwie ciekawostki na temat tego exploita.

1) Można za jego pomocą utworzyć plik w formacie Rich Text Format (.rtf) i exploit może wykonać się automatycznie w okienku podglądu w Eksploratorze Windows!

Jak piszą badacze:

„Podobnie jak CVE-2021-40444, zwiększa to powagę tego zagrożenia nie tylko dzięki „jednemu kliknięciu”, ale potencjalnie dzięki wyzwalaczowi „zero kliknięcia”.”

Poniżej przykład z uruchomienia okna komunikatu dla użytkownika w momencie przeglądania dokumentu rtf w trybie automatycznego podglądu Windows.

Źródło: Huntresslab

2) Można przejąć hash hasła użytkownika zdalnie poprzez siec, jeśli osadzi się w skrypcie specjalny kod wywołania po SMB

Przykład poniżej

Źródło: Huntresslab

Zalecenia i zapobieganie problemowi

W powyższym przykładzie eksploit’a zero-day widzimy kolejne użycie nowych, wbudowanych w Windows narzędzi (LOLBINS) i technik do uruchomienia złośliwego kodu malware.
Warto zwracać uwagę na uruchomienie narzędzia diagnostycznego „msdt.exe” (Microsoft Support Diagnostic Tool) w systemie Windows, w szczególności, gdy jest uruchamiane przez procesy nadrzędne Microsoft Office np.„winword.exe”.
Chociaż łatka nie została jeszcze wydana (w momencie pisania tego tekstu), możemy jedynie podejmować wysiłki łagodzące, aby ograniczyć powierzchnię ataku. Są to między innymi następujące kroki:

  • Zastosowanie reguł redukcji powierzchni ataku (ASR) w programie Microsoft Defender. Aktywacja reguły „Zablokuj wszystkim aplikacjom pakietu Office tworzenie procesów podrzędnych” w trybie blokowania zapobiegnie jej wykorzystaniu. Jeśli jednak nie korzystasz jeszcze z ASR, możesz najpierw uruchomić regułę w trybie audytu i monitorować wynik, aby upewnić się, że nie ma negatywnego wpływu na użytkowników końcowych.
  • Usunięcie skojarzenia typu pliku dla ms-msdt (można to zrobić w Rejestrze Windows HKCR:\ms-msdt lub za pomocą fragmentu PowerShell Kelvina Tegelaara). Po otwarciu złośliwego dokumentu pakiet Office nie będzie mógł wywołać ms-msdt, uniemożliwiając w ten sposób uruchomienie złośliwego oprogramowania. Pamiętaj, aby wykonać kopię zapasową ustawień rejestru przed użyciem tego ograniczenia.
  • Sugestią Benjamina Delpy jest także wyłączenie „Kreatora rozwiązywania problemów” przez GPO https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.ScriptedDiagnostics::ScriptedDiagnosticsExecutionPolicy
    Lub ręcznie poprzez modyfikacje wartości klucza: HKLM\SOFTWARE\Policies\Microsoft\Windows\ScriptedDiagnostics – EnableDiagnostics – 0
  • Na czas niedostępności łatki od Microsoft dobrym pomysłem może być zablokowanie protokołu „ms-msdt:”. Nie spotkaliśmy się z jego użyciem w prawdziwym świecie (choć istnieją bardziej niebezpieczne protokoły), więc może to sprawi, że będziemy bardziej bezpieczni. Tutaj przykład jak to zrobić.

Podziel się z innymi tym artykułem!