Przygody nieuchwytnego złośliwego oprogramowania, część IV: Pola dokumentów DDE i Word

Przygody nieuchwytnego złośliwego oprogramowania, część IV: Pola dokumentów DDE i Word

Ten artykuł jest częścią serii Złośliwe oprogramowanie bez plików. Wszystkie pozostałe części serii:

W tym artykule miałem zamiar zagłębić się w jeszcze bardziej złożony, wieloetapowy scenariusz ataku bezplikowego z przypięciem do systemu. Ale potem natknąłem się na niezwykle prosty atak bez użycia kodu — nie są wymagane żadne makra Worda ani Excela! To znacznie skuteczniej potwierdza moją pierwotną hipotezę leżącą u podstaw tej serii artykułów: przełamanie zewnętrznych granic jakiejkolwiek organizacji nie jest wcale trudnym zadaniem.

Pierwszy atak, który opiszę, wykorzystuje lukę w zabezpieczeniach programu Microsoft Word, na której bazuje przestarzały protokół dynamicznej wymiany danych (DD). Już była naprawiony. Drugi wykorzystuje bardziej ogólną lukę w zabezpieczeniach Microsoft COM i możliwościach przesyłania obiektów.

Powrót do przyszłości z DDE

Czy ktoś jeszcze pamięta DDE? Prawdopodobnie nie wielu. To był jeden z pierwszych protokoły komunikacji między procesami, które umożliwiały aplikacjom i urządzeniom przesyłanie danych.

Sam się na tym trochę znam, bo sprawdzałem i testowałem sprzęt telekomunikacyjny. DDE umożliwiało wówczas np. operatorom call center przenoszenie ID rozmówcy do aplikacji CRM, która ostatecznie otwierała kartę klienta. Aby to zrobić, trzeba było podłączyć kabel RS-232 między telefonem a komputerem. To były dni!

Jak się okazuje, Microsoft Word jest nadal obsługuje DDE.

To, co sprawia, że ​​ten atak jest skuteczny bez kodu, to fakt, że można uzyskać dostęp do protokołu DDE bezpośrednio z automatycznych pól w dokumencie Word (czapki z głów przed SensePost for badania i publikacje o tym).

Kody pól to kolejna starożytna funkcja programu MS Word, która umożliwia dodanie dynamicznego tekstu i odrobiny programowania do dokumentu. Najbardziej oczywistym przykładem jest pole numeru strony, które można wstawić do stopki za pomocą wartości {PAGE *MERGEFORMAT}. Umożliwia to automatyczne generowanie numerów stron.

Przygody nieuchwytnego złośliwego oprogramowania, część IV: Pola dokumentów DDE i Word
Wskazówka: Pozycję menu Pole można znaleźć w obszarze Wstaw.

Pamiętam, że kiedy po raz pierwszy odkryłem tę funkcję w programie Word, byłem zdumiony. Dopóki łatka tego nie wyłączyła, program Word nadal obsługiwał opcję pól DDE. Pomysł polegał na tym, że DDE umożliwi programowi Word bezpośrednią komunikację z aplikacją, dzięki czemu będzie mógł następnie przekazać dane wyjściowe programu do dokumentu. Była to wówczas bardzo młoda technologia – obsługa wymiany danych z aplikacjami zewnętrznymi. Została później rozwinięta w technologię COM, której przyjrzymy się również poniżej.

W końcu hakerzy zdali sobie sprawę, że ta aplikacja DDE może być powłoką poleceń, która oczywiście uruchamia PowerShell, i stamtąd hakerzy mogą robić, co chcą.
Poniższy zrzut ekranu pokazuje, jak zastosowałem tę technikę stealth: mały skrypt PowerShell (zwany dalej PS) z pola DDE ładuje kolejny skrypt PS, który uruchamia drugą fazę ataku.

Przygody nieuchwytnego złośliwego oprogramowania, część IV: Pola dokumentów DDE i Word
Dziękuję systemowi Windows za wyskakujące ostrzeżenie, że wbudowane pole DDEAUTO potajemnie próbuje uruchomić powłokę

Preferowaną metodą wykorzystania luki jest wykorzystanie wariantu z polem DDEAUTO, który automatycznie uruchamia skrypt podczas otwierania Dokument Worda.
Zastanówmy się, co możemy z tym zrobić.

Jako początkujący haker możesz na przykład wysłać wiadomość e-mail phishingową, udając, że jesteś z Federalnej Służby Podatkowej i osadzić pole DDEAUTO ze skryptem PS na pierwszy etap (w zasadzie dropper). I nie musisz nawet robić żadnego prawdziwego kodowania makr itp., Tak jak to zrobiłem poprzedni artykuł.
Ofiara otwiera Twój dokument, osadzony skrypt zostaje aktywowany, a haker trafia do wnętrza komputera. W moim przypadku zdalny skrypt PS po prostu drukuje wiadomość, ale równie dobrze mógłby uruchomić klienta PS Empire, który zapewni zdalny dostęp do powłoki.
I zanim ofiara zdąży cokolwiek powiedzieć, hakerami okażą się najbogatsi nastolatkowie w wiosce.

Przygody nieuchwytnego złośliwego oprogramowania, część IV: Pola dokumentów DDE i Word
Powłoka została uruchomiona bez najmniejszego kodu. Nawet dziecko może to zrobić!

DDE i pola

Microsoft później wyłączył DDE w programie Word, ale wcześniej stwierdził, że funkcja ta została po prostu niewłaściwie wykorzystana. Ich niechęć do zmiany czegokolwiek jest zrozumiała. Z mojego doświadczenia wynika, że ​​sam widziałem przykład, w którym włączona była aktualizacja pól podczas otwierania dokumentu, ale makra Worda zostały wyłączone przez informatyka (ale wyświetlało się powiadomienie). Nawiasem mówiąc, odpowiednie ustawienia można znaleźć w sekcji ustawień programu Word.

Jednak nawet jeśli aktualizacja pól jest włączona, Microsoft Word dodatkowo powiadamia użytkownika, gdy pole żąda dostępu do usuniętych danych, jak ma to miejsce w przypadku powyższego DDE. Microsoft naprawdę Cię ostrzega.

Jednak najprawdopodobniej użytkownicy nadal będą ignorować to ostrzeżenie i aktywować aktualizację pól w programie Word. Jest to jedna z rzadkich okazji, aby podziękować firmie Microsoft za wyłączenie niebezpiecznej funkcji DDE.

Jak trudno jest dziś znaleźć niezałatany system Windows?

Do tych testów użyłem AWS Workspaces, aby uzyskać dostęp do wirtualnego pulpitu. W ten sposób otrzymałem niezałataną maszynę wirtualną MS Office, która pozwoliła mi wstawić pole DDEAUTO. Nie mam wątpliwości, że w podobny sposób można znaleźć inne firmy, które nie zainstalowały jeszcze niezbędnych poprawek bezpieczeństwa.

Tajemnica przedmiotów

Nawet jeśli zainstalowałeś tę poprawkę, w pakiecie MS Office występują inne luki w zabezpieczeniach, które umożliwiają hakerom wykonanie czegoś bardzo podobnego do tego, co zrobiliśmy w programie Word. W następnym scenariuszu dowiemy się użyj Excela jako przynęty na atak phishingowy bez pisania żadnego kodu.

Aby zrozumieć ten scenariusz, przypomnijmy sobie, w skrócie, model obiektowy komponentów Microsoft COM (model obiektowy komponentów).

COM istnieje od lat 1990. XX wieku i jest definiowany jako „neutralny językowo, zorientowany obiektowo model komponentów” oparty na zdalnych wywołaniach procedur RPC. Aby zapoznać się z ogólnym zrozumieniem terminologii COM, przeczytaj ten post na StackOverflow.

Zasadniczo aplikację COM można traktować jako plik wykonywalny programu Excel lub Word albo inny działający plik binarny.

Okazuje się, że można także uruchomić aplikację COM scenariusz — JavaScript lub VBScript. Technicznie to się nazywa skryptlet. Być może widziałeś rozszerzenie .sct dla plików w systemie Windows — jest to oficjalne rozszerzenie dla skryptletów. Zasadniczo są to kod skryptu zawinięty w opakowanie XML:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Hakerzy i pentesterzy odkryli, że w systemie Windows istnieją osobne narzędzia i aplikacje, które akceptują obiekty COM, a co za tym idzie, także skryptlety.

Mogę przekazać skryptlet do narzędzia Windows napisanego w VBS, znanego jako pubprn. Znajduje się w głębinach C:Windowssystem32Printing_Admin_Scripts. Nawiasem mówiąc, istnieją inne narzędzia systemu Windows, które akceptują obiekty jako parametry. Przyjrzyjmy się najpierw temu przykładowi.

Przygody nieuchwytnego złośliwego oprogramowania, część IV: Pola dokumentów DDE i Word
Jest całkiem naturalne, że powłokę można uruchomić nawet ze skryptu drukującego. Przejdź do Microsoftu!

W ramach testu stworzyłem prosty zdalny skryptlet, który uruchamia powłokę i wypisuje zabawną wiadomość: „Właśnie został napisany skrypt!” Zasadniczo pubprn tworzy instancję obiektu skryptletu, umożliwiając kodowi VBScript uruchomienie opakowania. Ta metoda zapewnia wyraźną przewagę hakerom, którzy chcą wkraść się i ukryć w systemie.

W następnym poście wyjaśnię, w jaki sposób skryptlety COM mogą zostać wykorzystane przez hakerów korzystających z arkuszy kalkulacyjnych Excel.

Jeśli chodzi o pracę domową, spójrz Ten film z Derbycon 2016, który dokładnie wyjaśnia, w jaki sposób hakerzy używali skryptletów. A także przeczytaj Ten artykuł o skryptletach i jakimś pseudonimie.

Źródło: www.habr.com

Dodaj komentarz