Follina: Exploit 0-day w Microsoft Office prosto z Białorusi

31 maja, 2022

Badacze z grupy nao_sec znaleźli w serwisie VirusTotal plik w formacie DOC przesłany z adresu IP wskazującego na Białoruś, który wykorzystuje nieznaną wcześniej podatność pozwalającą na zdalne wykonanie kodu w systemie Windows. Lukę nazwano „Follina” (identyfikator przyznano dopiero kilka godzin temu: CVE-2022-30190), ponieważ ostatni człon nazwy przesłanego pliku odpowiada kodowi pocztowemu miasta o tej nazwie. Jest to przykład 0-day, czyli podatności, którą jeszcze nie załatano lub nie podano sposobu zabezpieczenia środowisk (niektóre antywirusy wykrywają już ten konkretny plik, ale nie jest to raczej całkowite bezpieczeństwo). Działanie pliku jest nowatorskie, wykorzystano technikę template injection do pobrania pliku HTML zawierającego składnię msdt (Narzędzie diagnostyczne Pomocy technicznej Microsoft) uruchamiającą polecenia w PowerShell.

Follina: Exploit 0-day z Białorusi

Wgląda to w ten sposób:

follina - exploit

Natomiast po zdekodowaniu:

follina exploit microsoft office decode

Źródło: https://doublepulsar.com/

 Wyłączenie obsługi makr w Office nie przynosi oczekiwanego rezultatu – kod nadal może być uruchomiony. Z kolei w przypadku widoku chronionego wystarczy zmiana formatu na RTF. Luka jest używana w atakach, o czym świadczy plik z kwietnia, którego nazwa przetłumaczona z języka rosyjskiego to „zaproszenie na rozmowę.doc”. Przygotowany został także PoC w postaci pliku Word uruchamiającego kalkulator.

Oprócz tego możemy samodzielnie wygenerować złośliwy plik, używając skryptu napisanego w Python dostępnego w tym repozytorium: https://github.com/chvancooten/follina.py.

Użycie narzędzia ogranicza się do uruchomienia skryptu (wymagany Python 3). Tworzy on plik clickme.docx, który po otwarciu pobiera plik HTML, a następnie wykonuje polecenie uruchamiające calc.exe.

Bez żadnych zmian w kodzie, Word będzie próbował załadować plik HTML z localhost, natomiast Python wystawia swój webserver z możliwością zewnętrznego dostępu (do wystawienia aplikacji na porcie 80 potrzebne są oczywiście uprawnienia sudo).

Korzystając z tej własności, możemy przetestować działanie bez pakietu Office. Atakujący może z kolei przesłać odpowiedni link do ofiary, ale uruchomienie z poziomu przeglądarki nie będzie skutkować wykonaniem kodu (przynajmniej bez odpowiednich zmian).

python webserver

Plik exploit.html zawiera poniższy kod JavaScript:

				
					location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_BrowseForFile=/../../$(\\\\localhost\\c$\\windows\\system32\\calc)/.exe\"";
				
			

W celu „zmuszenia” Word do pobrania pliku z zewnętrznego adresu i/lub ustawienia innego programu do uruchomienia, wystarczy zmienić zawartość zmiennych payload_url i payload.

Uruchamiamy Edytor rejestru zamiast kalkulatora.
Uruchamiamy Edytor rejestru zamiast kalkulatora.

Podatności nie są niczym nowym i należy być na nie przygotowanym. Opisywana luka jest z pewnością interesująca, ale zawsze warto mieć świadomość różnych zagrożeń. Tymczasem Microsoft opublikował środki zaradcze, jakie należy podjąć, ponieważ nie ma jeszcze oficjalnej aktualizacji, a podatne są systemy od Windows 7, aż do Windows Server 2022.

Plików Office z różnych zewnętrznych źródeł nie powinno się otwierać bez użycia np. sandbox’a, czyli ograniczonego środowisk do uruchamiania aplikacji (bardziej zaawansowani użytkownicy mogą użyć także wirtualizacji). Tutaj warto polecić nasz materiał z cyklu „Podstawy bezpieczeństwa: jak analizować malware i przetestować antywirusa w domowym labie?”

Program antywirusowy w teorii może taki złośliwy plik wykryć, lecz jako użytkownicy, musimy także myśleć samodzielnie. Dodatkowo pliki możemy bezpiecznie otwierać również online np. w Google Docs czy Microsoft Office Online.

PODZIEL SIĘ:

Czy ten artykuł był pomocny?

Kliknij na gwiazdkę, aby zagłosować!

Średnia ocena: 5 / 5. Liczba głosów: 6

Jak na razie nikt nie podzielił się opinią.

guest
0 komentarzy
Inline Feedbacks
View all comments

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]