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 chtěl ponořit do ještě složitějšího scénáře vícefázového bezsouborového útoku s připnutím na systém. Ale pak jsem narazil na neuvěřitelně jednoduchý útok bez kódu – nejsou potřeba žádná makra Wordu nebo Excelu! A to mnohem účinněji dokazuje mou původní hypotézu, která je základem této série článků: prolomit vnější perimetr jakékoli organizace není vůbec obtížný úkol.

První útok, který popíšu, zneužívá zranitelnost aplikace Microsoft Word, která je založena na zastaralý protokol dynamické výměny dat (DDE). Už byla pevný. Druhý využívá obecnější zranitelnost Microsoft COM a možnosti přenosu objektů.

Návrat do budoucnosti s DDE

Pamatuje si ještě někdo DDE? Pravděpodobně ne mnoho. Bylo to jedno z prvních meziprocesové komunikační protokoly, které umožňovaly aplikacím a zařízením přenášet data.

Sám se v tom trochu vyznám, protože jsem kdysi kontroloval a testoval telekomunikační zařízení. V té době DDE umožňovalo například operátorům call center přenést ID volajícího do CRM aplikace, což nakonec otevřelo zákaznickou kartu. K tomu jste museli propojit telefon a počítač kabelem RS-232. To byly časy!

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

Co dělá tento útok účinným bez kódu, je to, že máte přístup k protokolu DDE přímo z automatických polí v dokumentu aplikace Word (klobouk dolů před SensePost pro výzkum a publikace o tom).

Kódy polí je další prastará funkce MS Word, která vám umožňuje přidat do dokumentu dynamický text a trochu programování. Nejviditelnějším příkladem je pole s číslem 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 pod Vložit.

Pamatuji si, že když jsem poprvé objevil tuto funkci ve Wordu, byl jsem ohromen. A dokud to oprava nezakázala, Word stále podporoval možnost polí DDE. Myšlenka byla taková, že DDE by umožnilo Wordu komunikovat přímo s aplikací, aby pak mohl předat výstup programu do dokumentu. V té době to byla velmi mladá technologie – podpora výměny dat s externími aplikacemi. Později byl vyvinut do technologie COM, na kterou se také podíváme níže.

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

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

Preferovaným způsobem zneužití zranitelnosti je použití varianty s polem DDEAUTO, které skript automaticky spustí. při otevření Word dokument.
Zamysleme se nad tím, co s tím můžeme udělat.

Jako začínající hacker můžete například odeslat phishingový e-mail, předstírat, že jste z Federální daňové služby, a vložit do pole DDEAUTO skript PS pro první fázi (v podstatě kapátko). A nemusíte ani dělat žádné skutečné kódování maker atd., jako jsem to udělal já předchozí článek.
Oběť otevře váš dokument, aktivuje se vložený skript a hacker skončí uvnitř počítače. V mém případě vzdálený skript PS pouze vytiskne zprávu, ale mohl by stejně snadno spustit klienta PS Empire, který poskytne vzdálený přístup k shellu.
A než oběť stihne cokoliv říct, hackeři se stanou nejbohatšími teenagery ve vesnici.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Skořápka byla vypuštěna bez sebemenšího kódování. Zvládne to i dítě!

DDE a pole

Microsoft později skutečně zakázal DDE ve Wordu, ale ne dříve, než společnost prohlásila, že tato funkce byla jednoduše zneužita. Jejich neochota cokoliv měnit je pochopitelná. Sám jsem z vlastní zkušenosti viděl příklad, kdy byla povolena aktualizace polí při otevírání dokumentu, ale makra Wordu byla IT zakázána (ale zobrazovala upozornění). Mimochodem, odpovídající nastavení najdete v sekci Nastavení Wordu.

I když je aktualizace polí povolena, Microsoft Word navíc upozorní uživatele, když pole požaduje přístup k odstraněným datům, jako je tomu v případě DDE výše. Microsoft vás opravdu varuje.

Ale s největší pravděpodobností budou uživatelé toto varování stále ignorovat a aktivovat aktualizaci polí ve Wordu. Toto je jedna z mála příležitostí, jak poděkovat společnosti Microsoft za deaktivaci nebezpečné funkce DDE.

Jak těžké je dnes najít neopravený systém Windows?

Pro toto testování jsem použil AWS Workspaces pro přístup k virtuální ploše. Tímto způsobem jsem získal neopravený virtuální stroj MS Office, který mi umožnil vložit pole DDEAUTO. Nepochybuji, že podobným způsobem můžete najít další společnosti, které ještě nenainstalovaly potřebné bezpečnostní záplaty.

Záhada předmětů

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

Abychom tomuto scénáři porozuměli, vzpomeňme si na objektový model Microsoft Component Object Model nebo zkráceně COM (Component Object Model).

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

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

Ukazuje se, že může běžet i aplikace COM skript — JavaScript nebo VBScript. Technicky se tomu říká skriptlet. Možná jste viděli příponu .sct pro soubory ve Windows – to je oficiální přípona pro skriptlety. V podstatě se jedná o kód skriptu zabalený do obalu 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 pentesteri zjistili, že v systému Windows existují samostatné nástroje a aplikace, které přijímají objekty COM, a tedy i skriptlety.

Mohu předat skriptlet obslužnému programu Windows napsanému ve VBS známém jako pubprn. Nachází se v hlubinách C:Windowssystem32Printing_Admin_Scripts. Mimochodem, existují další nástroje Windows, které přijímají objekty jako parametry. Podívejme se nejprve na tento příklad.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Je zcela přirozené, že shell lze spustit i z tiskového skriptu. Přejít na Microsoft!

Jako test jsem vytvořil jednoduchý vzdálený skript, který spustí shell a vytiskne vtipnou zprávu: „Právě jste byli napsáni!“ Pubprn v podstatě vytváří instanci objektu skriptletu, což umožňuje kódu VBScript spustit obal. Tato metoda poskytuje jasnou výhodu hackerům, kteří se chtějí vplížit a schovat se do vašeho systému.

V příštím příspěvku vysvětlím, jak mohou být skriptlety COM zneužity hackery pomocí tabulek Excel.

Pro svůj domácí úkol se podívejte toto video z Derbycon 2016, který přesně vysvětluje, jak hackeři používali skriptlety. A také číst tento článek o skriptech a nějakém druhu přezdívky.

Zdroj: www.habr.com

Přidat komentář