The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields

Tento článek je součástí série Fileless Malware. Všechny další díly seriálu:

V tomto článku jsem se plánoval ponořit do ještě složitějšího scénáře vícestupňového útoku bez souborů s využitím vytrvalosti. Pak jsem ale narazil na neuvěřitelně jednoduchý útok bez nutnosti kódování – žádná makra ve Wordu ani Excelu nejsou potřeba! A to mnohem účinněji dokazuje mou původní hypotézu, která je základem této série: proniknutí do vnějšího perimetru jakékoli organizace není obtížný úkol.

První útok, který popíšu, zneužívá zranitelnost aplikace Microsoft Word, která se spoléhá na zastaralý protokol dynamické výměny dat (DDE)Už tam byla. pevnýDruhá zneužívá obecnější zranitelnost v Microsoft COM a jeho možnostech předávání objektů.

Zpátky do budoucnosti s DDE

Pamatuje si ještě někdo DDE? Asi ne mnoho. Byl to jeden z prvních protokoly meziprocesové komunikace, které umožňovaly aplikacím a zařízením vyměňovat si data.

Sám jsem s tím trochu obeznámen, protože jsem dříve kontroloval a testoval telekomunikační zařízení. Tehdy DDE umožňovalo například operátorům call center přenášet ID volajícího do CRM aplikace, což nakonec otevřelo profil zákazníka. K tomu bylo nutné propojit telefon a počítač kabelem RS-232. To byly časy!

Jak se ukázalo, Microsoft Word je stále podporuje DDE.

Účinnost tohoto útoku bez kódu spočívá v tom, že umožňuje přístup k protokolu DDE. přímo z automatických polí dokumentu Word (klobouk dolů před SensePostem za výzkum a publikace o tomto).

Kódy polí – Toto je další starobylá funkce MS Wordu, která umožňuje přidávat do dokumentu dynamický text a trochu programování. Nejzřetelnějším příkladem je pole „číslo stránky“, které lze vložit do zápatí pomocí hodnoty {PAGE *MERGEFORMAT}. To umožňuje automatické generování čísel stránek.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Tip: Položku nabídky Pole najdete v části Vložit.

Pamatuji si, jak jsem byl ohromen, když jsem tuto funkci ve Wordu poprvé objevil. Dokud ji nějaká záplata nezakázala, Word nadále podporoval možnost polí DDE. Myšlenka byla, že DDE by Wordu umožnilo komunikovat přímo s aplikací a následně předávat výstupní data programu do dokumentu. V té době se jednalo o velmi mladou technologii – podporu pro výměnu dat s externími aplikacemi. Později se z ní vyvinula technologie COM, o které si také povíme níže.

Hackeři si nakonec uvědomili, že tato DDE aplikace by mohla být příkazovým shellem, který samozřejmě spouští PowerShell, a odtud by si hackeři mohli dělat, co chtěli.
Níže uvedený snímek obrazovky ukazuje, jak jsem použil tuto nenápadnou techniku: malý PowerShellový skript (dále jen PS) z pole DDE načte další PS skript, který spustí druhou fázi útoku.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Díky Windows za zobrazení varování, že vestavěné pole DDEAUTO se tajně pokouší spustit shell.

Preferovanou metodou zneužití této zranitelnosti je použití varianty s polem DDEAUTO, které automaticky spouští skript. při otevírání Wordový dokument.
Zamysleme se nad tím, co se s tím dá dělat.

Jako začínající hacker byste například mohli poslat phishingový e-mail, vydávat se za pracovníka Federální daňové služby (Federal Tax Service) a v první fázi vložit do pole DDEAUTO PS skript (v podstatě dropper). A ani nemusíte dělat žádné skutečné makro kódování ani nic podobného, ​​jako jsem to udělal já v... předchozí článek.
Oběť otevře váš dokument, vložený skript se aktivuje a hacker je uvnitř počítače. V mém případě vzdálený PS skript pouze vypíše zprávu, ale stejně snadno by mohl spustit klienta PS Empire, který by poskytoval vzdálený přístup k shellu.
A než oběť stihne říct jediné slovo, hackeři se stanou nejbohatšími teenagery ve vesnici.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Shell byl spuštěn bez jakéhokoli kódování. Zvládlo to i dítě!

DDE a pole

Microsoft nakonec DDE ve Wordu zakázal, ale předtím tvrdil, že tato funkce byla jednoduše zneužita. Jejich neochota cokoli měnit je pochopitelná. Osobně jsem pozoroval situaci, kdy byla aktualizace polí při otevření dokumentu povolena, ale makra Wordu byla IT službou zakázána (i když se zobrazovalo oznámení). Mimochodem, příslušná nastavení najdete v nastavení Wordu.

I když je aktualizace polí povolena, Microsoft Word navíc upozorní uživatele, když pole požaduje přístup ke vzdáleným datům, jako v případě DDE výše. Microsoft vás na to upozorní.

Uživatelé ale toto varování pravděpodobně ignorují a povolí aktualizace polí ve Wordu. Toto je jedna z mála příležitostí, jak poděkovat Microsoftu za vypnutí nebezpečné funkce DDE.

Jak těžké je v dnešní době najít neopravený systém Windows?

Pro toto testování jsem pro přístup k virtuálnímu desktopu použil prostředí AWS Workspaces. To mi poskytlo neinstalovaný virtuální počítač s MS Office, který mi umožnil vložit pole DDEAUTO. Nepochybuji o tom, že by se dalo vynaložit podobné úsilí i na nalezení dalších společností, které si stále nenainstalovaly požadované bezpečnostní záplaty.

Záhada objektů

I když jste si tuto opravu nainstalovali, v MS Office existují další bezpečnostní díry, které hackerům umožňují dělat něco velmi podobného tomu, co jsme udělali s Wordem. V dalším scénáři se naučíme, jak na to. Použijte Excel jako návnadu pro phishingový útok bez nutnosti psaní kódu.

Abychom tomuto scénáři porozuměli, připomeňme si model komponentních objektů (Component Object Model) od společnosti Microsoft, neboli zkráceně Component Object Model. COM (komponentní objektový model).

COM existuje od 90. let 20. století a je definován jako „jazykově neutrální, objektově orientovaný komponentní model“ založený na vzdálených voláních procedur (RPC). Pro obecné pochopení terminologie COM si přečtěte tento příspěvek na StackOverflowu.

V podstatě si můžete COM aplikaci představit jako spustitelný soubor aplikace Excel nebo Word, nebo nějaký jiný spustitelný binární soubor.

Ukazuje se, že COM aplikace může také běžet skript — JavaScript nebo VBScript. Technicky se tomu říká skriptletMožná jste se v souborech Windows setkali s příponou .sct – jedná se o oficiální příponu pro skriptlety. V podstatě se jedná o kód skriptu zabalený v 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>

Hackeři a penetesteri zjistili, že ve Windows existují samostatné utility a aplikace, které přijímají objekty COM a odpovídajícím způsobem i skriptlety.

Skriptlet můžu předat utilitě pro Windows napsané ve VBS, známé jako pubprn. Nachází se v hlubinách adresáře C:\Windows\system32\Printing_Admin_Scripts. Mimochodem, existují i ​​další utility pro Windows, které přijímají objekty jako parametry. Začněme s tímto příkladem.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Je jen přirozené, že shell lze spustit i z tiskového skriptu. Jen do toho, Microsofte!

Pro testovací účely jsem vytvořil jednoduchý vzdálený skriptlet, který spustí shell a vypíše vtipnou zprávu: „Právě vám byl napsán skript!“ V podstatě pubprn vytvoří instanci objektu skriptletu, což umožňuje kódu VBScript spustit shell. Tato metoda nabízí jasné výhody hackerům, kteří se chtějí vplížit a skrýt se ve vašem systému.

V dalším příspěvku vysvětlím, jak mohou hackeři zneužít COM skriptlety pomocí excelových tabulek.

Jako domácí úkol se podívejte na toto toto video z Derbyconu 2016, který přesně vysvětluje, jak hackeři používali skriptlety. Přečtěte si také tento článek o skriptletech a nějaké přezdívce.

Zdroj: www.habr.com

Přidat komentář