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ánok je súčasťou série Fileless Malware. Všetky ostatné diely seriálu:

V tomto článku som sa chystal ponoriť do ešte zložitejšieho scenára viacstupňového útoku bez súborov s pripnutím na systém. Potom som však narazil na neuveriteľne jednoduchý útok bez kódu – nie sú potrebné žiadne makrá vo Worde alebo Exceli! A to oveľa efektívnejšie dokazuje moju pôvodnú hypotézu, ktorá je základom tejto série článkov: prelomiť vonkajší obvod akejkoľvek organizácie nie je vôbec náročná úloha.

Prvý útok, ktorý popíšem, využíva zraniteľnosť Microsoft Word, na ktorej je založená zastarané protokol dynamickej výmeny údajov (DDE). Už bola pevné. Druhý využíva všeobecnú zraniteľnosť v Microsoft COM a možnostiach prenosu objektov.

Návrat do budúcnosti s DDE

Pamätá si ešte niekto DDE? Asi nie veľa. Bol jedným z prvých medziprocesné komunikačné protokoly, ktoré umožňovali aplikáciám a zariadeniam prenášať dáta.

Sám to trochu poznám, pretože som kedysi kontroloval a testoval telekomunikačné zariadenia. V tom čase DDE umožňovalo napríklad operátorom call centier preniesť ID volajúceho do CRM aplikácie, čo v konečnom dôsledku otvorilo zákaznícku kartu. Aby ste to dosiahli, museli ste medzi telefón a počítač pripojiť kábel RS-232. To boli dni!

Ako sa ukázalo, Microsoft Word je stále podporuje DDE.

Čo robí tento útok efektívnym bez kódu, je to, že máte prístup k protokolu DDE priamo z automatických polí v dokumente Word (klobúk dole pred SensePost pre výskum a publikácie o tom).

Kódy polí je ďalšia starodávna funkcia MS Word, ktorá vám umožňuje pridať do dokumentu dynamický text a trochu programovania. Najzrejmejším príkladom je pole s číslom strany, ktoré je možné vložiť do päty pomocou hodnoty {PAGE *MERGEFORMAT}. To umožňuje automatické generovanie čísel strán.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Tip: Položku ponuky Pole nájdete v časti Vložiť.

Pamätám si, že keď som prvýkrát objavil túto funkciu vo Worde, bol som ohromený. A kým to záplata nezakázala, Word stále podporoval možnosť polí DDE. Myšlienka bola, že DDE by umožnilo Wordu komunikovať priamo s aplikáciou, aby potom mohol odovzdať výstup programu do dokumentu. Bola to na tú dobu veľmi mladá technológia – podpora výmeny dát s externými aplikáciami. Neskôr bola vyvinutá do technológie COM, na ktorú sa tiež pozrieme nižšie.

Nakoniec si hackeri uvedomili, že táto DDE aplikácia môže byť príkazový shell, ktorý samozrejme spustil PowerShell a odtiaľ si hackeri mohli robiť, čo chceli.
Snímka obrazovky nižšie ukazuje, ako som použil túto stealth techniku: malý skript PowerShell (ďalej len PS) z poľa DDE načíta ďalší skript PS, ktorý spustí druhú fázu útoku.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Ďakujeme Windowsu za vyskakovacie upozornenie, že vstavané pole DDEAUTO sa tajne pokúša spustiť shell

Preferovanou metódou využitia zraniteľnosti je použitie variantu s poľom DDEAUTO, ktoré automaticky spustí skript pri otváraní Dokument programu Word.
Zamyslime sa nad tým, čo s tým môžeme urobiť.

Ako začínajúci hacker môžete napríklad poslať phishingový e-mail predstierať, že ste z Federálnej daňovej služby, a vložiť do poľa DDEAUTO skript PS pre prvú fázu (v podstate kvapkadlo). A nemusíte ani robiť žiadne skutočné kódovanie makier atď., ako som to urobil ja predchádzajúci článok.
Obeť otvorí váš dokument, aktivuje sa vložený skript a hacker skončí v počítači. V mojom prípade vzdialený skript PS iba vytlačí správu, ale rovnako ľahko by mohol spustiť klienta PS Empire, ktorý poskytne vzdialený prístup k shellu.
A kým obeť stihne niečo povedať, hackeri sa stanú najbohatšími tínedžermi v dedine.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Shell bol spustený bez najmenšieho kúsku kódovania. Zvládne to aj dieťa!

DDE a polia

Microsoft neskôr zakázal DDE vo Worde, ale až potom spoločnosť uviedla, že táto funkcia bola jednoducho zneužitá. Ich neochota čokoľvek zmeniť je pochopiteľná. Z vlastnej skúsenosti som videl príklad, kedy bola povolená aktualizácia polí pri otváraní dokumentu, ale makrá Wordu boli IT zakázané (ale zobrazovalo upozornenie). Mimochodom, príslušné nastavenia nájdete v časti Nastavenia programu Word.

Avšak aj keď je povolená aktualizácia poľa, Microsoft Word dodatočne upozorní používateľa, keď pole požaduje prístup k vymazaným údajom, ako je to v prípade DDE vyššie. Microsoft vás skutočne varuje.

S najväčšou pravdepodobnosťou však používatelia budú toto upozornenie stále ignorovať a aktivujú aktualizáciu polí v programe Word. Toto je jedna z mála príležitostí poďakovať spoločnosti Microsoft za vypnutie nebezpečnej funkcie DDE.

Aké ťažké je dnes nájsť neoplatený systém Windows?

Na toto testovanie som použil AWS Workspaces na prístup k virtuálnej ploche. Takto som získal neoplatený virtuálny stroj MS Office, ktorý mi umožnil vložiť pole DDEAUTO. Nepochybujem, že podobným spôsobom môžete nájsť aj iné spoločnosti, ktoré ešte nenainštalovali potrebné bezpečnostné záplaty.

Tajomstvo predmetov

Aj keď ste nainštalovali túto opravu, v balíku MS Office sú ďalšie bezpečnostné diery, ktoré hackerom umožňujú robiť niečo veľmi podobné tomu, čo sme urobili s Wordom. V ďalšom scenári sa to naučíme použite Excel ako návnadu na phishingový útok bez písania akéhokoľvek kódu.

Aby sme pochopili tento scenár, spomeňme si na Microsoft Component Object Model, alebo skrátene COM (Component Object Model).

COM existuje od 1990. rokov XNUMX. storočia a je definovaný ako „jazykovo neutrálny, objektovo orientovaný komponentový model“ založený na volaniach vzdialených procedúr RPC. Pre všeobecné pochopenie terminológie COM si prečítajte tento príspevok na StackOverflow.

Aplikáciu COM si v podstate môžete predstaviť ako spustiteľný súbor programu Excel alebo Word alebo nejaký iný spustený binárny súbor.

Ukazuje sa, že môže bežať aj aplikácia COM scenár — JavaScript alebo VBScript. Technicky sa to volá skriptlet. Možno ste už videli príponu .sct pre súbory v systéme Windows – toto je oficiálna prípona pre skriptlety. V podstate ide o kód skriptu zabalený v obale 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>

Hackeri a pentesteri zistili, že v systéme Windows existujú samostatné nástroje a aplikácie, ktoré akceptujú objekty COM a teda aj skriptlety.

Môžem odovzdať skriptlet obslužnému programu Windows napísanému vo VBS známemu ako pubprn. Nachádza sa v hĺbke C:Windowssystem32Printing_Admin_Scripts. Mimochodom, existujú aj iné nástroje systému Windows, ktoré akceptujú objekty ako parametre. Pozrime sa najprv na tento príklad.

The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields
Je celkom prirodzené, že shell je možné spustiť aj z tlačového skriptu. Choďte do Microsoftu!

Ako test som vytvoril jednoduchý vzdialený skript, ktorý spustí shell a vytlačí vtipnú správu: „Práve ste boli naskriptovaní!“ Pubprn v podstate vytvára inštanciu objektu skriptletu, čo umožňuje kódu VBScript spustiť obal. Táto metóda poskytuje jasnú výhodu hackerom, ktorí sa chcú vplížiť a skryť sa vo vašom systéme.

V ďalšom príspevku vysvetlím, ako môžu skriptlety COM zneužiť hackeri pomocou tabuliek programu Excel.

Pre vašu domácu úlohu sa pozrite Toto Video z Derbycon 2016, ktorý presne vysvetľuje, ako hackeri používali skriptlety. A tiež čítať tento článok o skriptletoch a nejakom druhu prezývky.

Zdroj: hab.com

Pridať komentár