W dzisiejszym artykule pokażemy na przykładzie specjalnie skonstruowanego dokumentu Microsoft Office (Word) jak atakujący mogą ominąć wbudowane zabezpieczenia Windows oraz niekontrolowanie uruchomić złośliwy kod na stacji roboczej użytkownika.

W Internecie możemy znaleźć sporo przykładów na tzw. „udany phishing” oraz informacje o atakach na użytkowników komputerów z Windows. Te najciekawsze staramy się publikować na Kapitanie. Dlaczego postanowiliśmy opisać akurat ten konkretny? Ponieważ zwrócił on naszą uwagę tym, w jaki sposób działa oraz obchodzi zabezpieczenia Microsoft. Zabezpieczenia, które według zapewnień giganta miały być skuteczne, a jak się okazuje nie są. Lecz zanim przejdziemy do omówienia szczegółów i pokazania POCa najpierw wyjaśnijmy o jakie zabezpieczenia nam tutaj chodzi.


Blokowanie uruchomienia makr w MS Office?

Zapewne część z czytelników Kapitana pamięta, jak w lutym tego roku opublikowaliśmy informacje, że Microsoft zablokuje możliwość uruchamiania makr w MS Office. Według zapewnień firmy od kwietnia powinno się już wszystko pozmieniać w aktualizacjach tych aplikacji – całą informację można przeczytać tutaj.

„Od kwietnia 2022 roku użytkownicy zauważą ostrzeżenie, w którym Microsoft powiadomi ich o makrach w dokumentach, których nie można włączyć ze względów bezpieczeństwa.”

Pisaliśmy także, aby uniemożliwić użytkownikom przypadkowe otwieranie plików zawierających makra z Internetu, firmy mogą wdrożyć globalne ustawienie „Zablokuj uruchamianie makr w plikach pakietu Office z Internetu”.
Mamy lipiec, więc postanowiliśmy sprawdzić, czy to zabezpieczenie działa w praktyce. Nie wiemy jeszcze jak długo to obejście zadziała i kiedy Microsoft poprawi ten błąd, lecz możemy być pewni, że działa obecnie z wszystkimi najnowszymi aktualizacjami i aplikacjami Microsoft Office 365 oraz na najnowszą wersją systemu Windows 11 (21H2). Zanim podzielimy się szczegółami na temat działania tej techniki, musimy zrozumieć, w jaki sposób została zidentyfikowana i jak byliśmy w stanie ją wykorzystać.


Specjalny skrypt VBA

W celu przetestowania zachowania zabezpieczeń Microsoft stworzyliśmy makro w Microsoft Word (specjalny skrypt), który odwołuje się do zapisanej wartości we właściwości naszego dokumentu i uruchamia zewnętrzny kod (kalkulator).
Zgodnie z informacjami od Microsoft postanowiliśmy także wyłączyć obsługę makr w MS Office i przetestować, czy zadziała.
Testy wykonaliśmy na najnowszej wersji Windows 11 (21H2) z najnowszymi aktualizacjami z dnia publikacji artykułu, włączonym Windows Defender oraz w aplikacji MS Word pakietu Microsoft 365.

Dodatkowo w naszym testowanym dokumencie „KapitanHack.docx” i w ustawieniach zabezpieczeń MS Word wyłączyliśmy obsługę makr.


Na czym polega obejście?

Najprostsze makro jakie moglibyśmy stworzyć, które nie byłoby podejrzane dla systemu, to takie, które obsługuje właściwości dokumentu i pobiera z nich parametry. Podobny przypadek opisywaliśmy tutaj w 2019r., lecz skupiliśmy się w nim na przechowaniu całego payload w atrybucie „komentarza”. Co było bardziej podejrzane.
Przy budowie naszego nowego makro skorzystaliśmy z funkcji „Document.BuiltInDocumentProperties”, która zwraca pojedynczy obiekt reprezentujący określoną wbudowaną właściwość dokumentu. Jeśli dokument nie może zdefiniować wartości z jednej z właściwości we wbudowanych właściwościach dokumentu, wygeneruje błąd. Na przykład możemy stworzyć skrypt VBA, który pobierze wartość, którą podamy w jednej z właściwości dokumentu. W naszym przykładzie jest to atrybut „Temat” z właściwości dokumentu KapitanHack.docx, do którego wpisaliśmy wartość „calc.exe”. Jak się pewnie domyślasz Drogi Czytelniku, będziemy chcieli uruchomić kalkulator.

Nadszedł moment na skonstruowanie odpowiedniego makro, którego kod wklejamy do naszego nowoutworzonego dokumentu „KapitanHack.docx” w opcjach Makr i poniżej.

Sub AutoOpen()
run_calc
End Sub

Sub run_calc()
Dim payload As String
Set Document = ActiveDocument
payload = Document.BuiltInDocumentProperties(“Subject”).Value
Call Shell(“””” & payload & “”””, vbNormalFocus)
End Sub

Zdefiniowaliśmy w skrypcie dwie funkcje AutoOpen() i run_calc(). Pierwsza jest uruchamiana automatycznie przy otwarciu dokumentu oraz wykonuje w środku drugą. Funkcja run_calc() zawiera zmienną, pobierająca z właściwości naszego dokumentu wartość atrybutu „Temat” oraz przekazuje go do wywołania wbudowanej funkcji Shell()

Oczywiście po zapisaniu tak skonstruowanego dokumentu uruchamiamy go na Windows 11. Wynik jest dla nas zaskoczeniem – udało nam się uruchomić kalkulator, pomimo wyłączonej obsługi makr i to beż żadnego ostrzeżenia!

Bieżące ustawienia Office sprawdziliśmy także umieszczając dokument w Internecie i pobierając go na nasz komputer z Windows 11.


Dokument z makro pobrany z Internetu

Po pobraniu i uruchomieniu dokumentu na komputerze otrzymaliśmy ostrzeżenie o zablokowanej jego edycji (typowe dla plików pobieranych z Internetu przy ich pierwszym uruchomieniu) oraz błąd jak poniżej. Wciskając przycisk „End” lub „Debug” pozbędziemy się komunikatu.

Chcąc oczywiście edytować dokument (bo dlaczego nie mielibyśmy wprowadzać w nim zmian) po wciśnięciu odblokowania możliwości edycji – przycisk „Włącz edytowanie” ku naszemu zdziwieniu na ekranie pokazuje się aplikacja kalkulator.

Warto tutaj dodać jedną rzecz –

Przy próbie otwarcia dokumentu zarówno w pierwszym przypadku (otwieranie dokumentu lokalnie w sieci) jak i w drugim (otwieranie dokumentu pobieranego z Internetu) nie pokazało się żadne ostrzeżenie na temat blokady Makr Microsoft, o którym pisaliśmy na początku artykułu!

Powyższy przykład daje możliwość pójścia dalej – wykonania złośliwej komendy pobierającej i uruchamiającej malware na komputerze ofiary. Lecz tego sposobu nie będziemy już omawiać w tym artykule i pozostawimy do przemyślenia Tobie, drogi czytelniku.


Podsumowanie

Jak się okazuje, na podstawie powyższego przykładu, zapewnienia Microsoft, że coś się polepszy w bezpieczeństwie nowych wersji, tworzonych przez nich aplikacji lub ich aktualizacjach nie do końca może być prawdziwe. Być może zapomnieliśmy o skonfigurowaniu jakiegoś ważnego parametru lub czegoś innego, dodatkowego. Lecz staraliśmy się być otwarci i pokazaliśmy skonfigurowane przez nas opcje zabezpieczeń Office, Windows Defender oraz wszystkie najnowsze aktualizacje systemu Windows 11 (zaraz po jego domyślnej instalacji). Utworzony przez nas dokument Word z makro nie dość, że pomimo włączonej blokady uruchamiał je, to nawet aplikacja nie ostrzegła nas specjalnym komunikatem o jego włączeniu lub zablokowaniu. To dla nas stało się bardzo podejrzliwe, dlatego to postanowiliśmy opisać.

Pamiętajmy, że atakujący ciągle skupiają się na pracy przy tworzeniu obejść w zabezpieczeniach aplikacji pakietu Office, ponieważ są one używane w sieci wszystkich firm. Dzieki nim mogą wciąż atakować firmy i wyrządzać szkody. Makra VBA umożliwiają automatyzację pracy użytkowników na dokumentach oraz pozwalają na wykonywanie zadań i innych funkcji na komputerze użytkownika. Chociaż te elementy mają kluczowe znaczenie dla działalności biznesowej, mogą być łatwo nadużywane.

Podziel się z innymi tym artykułem!