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

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

Ĉi tiu artikolo estas parto de la serio Fileless Malware. Ĉiuj aliaj partoj de la serio:

En ĉi tiu artikolo, mi plonĝos en eĉ pli kompleksan plurfazan sendosieran atakscenaron kun alpinglo al la sistemo. Sed tiam mi renkontis nekredeble simplan, senkodan atakon—ne necesas makrooj de Word aŭ Excel! Kaj tio pruvas multe pli efike mian originan hipotezon subestas ĉi tiun serion de artikoloj: rompi la eksteran perimetron de iu ajn organizo tute ne estas malfacila tasko.

La unua atako, kiun mi priskribos, ekspluatas vundeblecon de Microsoft Word, kiu baziĝas malmoderna protokolo pri dinamika interŝanĝo de datumoj (DDE). Ŝi jam estis fiksita. La dua ekspluatas pli ĝeneralan vundeblecon en Microsoft COM kaj objektotransigo-kapabloj.

Reen al la estonteco kun DDE

Ĉu iu alia memoras DDE? Verŝajne ne multaj. Ĝi estis unu el la unuaj inter-procezaj komunikadprotokoloj kiuj permesis al aplikoj kaj aparatoj transdoni datenojn.

Mi mem iom konas ĝin, ĉar mi kutimis kontroli kaj testi telekomunikajn ekipaĵojn. En tiu tempo, DDE permesis, ekzemple, telefoncentrofunkciigistoj transdoni alvokantidentigon al CRM-aplikaĵo, kiu finfine malfermis klientkarton. Por fari tion, vi devis konekti RS-232-kablon inter via telefono kaj via komputilo. Tiuj estis la tagoj!

Kiel ĝi rezultas, Microsoft Word ankoraŭ estas subtenoj DDE.

Kio faras ĉi tiun atakon efika sen kodo estas ke vi povas aliri la DDE-protokolon rekte de aŭtomataj kampoj en Word-dokumento (ĉapelon al SensePost por esploroj kaj publikaĵoj pri ĝi).

Kampokodoj estas alia antikva MS Word trajto kiu permesas vin aldoni dinamikan tekston kaj iom da programado al via dokumento. La plej evidenta ekzemplo estas la paĝnumero-kampo, kiu povas esti enmetita en la piedpiedon uzante la valoron {PAĜO *MERGEFORMAT}. Ĉi tio ebligas paĝnumerojn esti generitaj aŭtomate.

The Adventures of the Elusive Malware, Part IV: DDE kaj Word Document Fields
Konsilo: Vi povas trovi la menueron Kampo sub Enmeti.

Mi memoras, ke kiam mi unue malkovris ĉi tiun funkcion en Word, mi miris. Kaj ĝis la flikaĵo malŝaltis ĝin, Word ankoraŭ subtenis la opcion de DDE-kampoj. La ideo estis ke DDE permesus al Word komuniki rekte kun la aplikaĵo, por ke ĝi tiam povu transdoni la produktaĵon de la programo en dokumenton. Ĝi estis tre juna teknologio en tiu tempo - subteno por interŝanĝo de datumoj kun eksteraj aplikoj. Ĝi poste estis evoluigita en COM-teknologion, kiun ni ankaŭ rigardos malsupre.

Fine, la piratoj rimarkis, ke ĉi tiu DDE-apliko povus esti komanda ŝelo, kiu kompreneble lanĉis PowerShell, kaj de tie la piratoj povis fari kion ajn ili volas.
La ekrankopio sube montras kiel mi uzis ĉi tiun kaŝteknikon: malgranda PowerShell-skripto (ĉi-poste nomata PS) de la kampo DDE ŝarĝas alian PS-skripton, kiu lanĉas la duan fazon de la atako.

The Adventures of the Elusive Malware, Part IV: DDE kaj Word Document Fields
Dankon al Vindozo pro la ŝprucfenestra averto, ke la enkonstruita kampo DDEAUTO sekrete provas komenci la ŝelon.

La preferata metodo por ekspluati la vundeblecon estas uzi varianton kun la kampo DDEAUTO, kiu aŭtomate rulas la skripton. kiam oni malfermas Vorta dokumento.
Ni pensu pri tio, kion ni povas fari pri tio.

Kiel novulo hakisto, vi povas, ekzemple, sendi phishing-retpoŝton, ŝajnigante, ke vi estas de la Federacia Imposto-Servo, kaj enigi la kampon DDEAUTO kun la PS-skripto por la unua etapo (gutigilo, esence). Kaj vi eĉ ne bezonas fari ajnan veran kodigon de makrooj ktp., kiel mi faris en antaŭa artikolo.
La viktimo malfermas vian dokumenton, la enigita skripto estas aktivigita, kaj la retpirato finas en la komputilo. En mia kazo, la fora PS-skripto nur presas mesaĝon, sed ĝi povus same facile lanĉi la klienton PS Empire, kiu provizos foran ŝelan aliron.
Kaj antaŭ ol la viktimo havos tempon diri ion ajn, la retpiratoj montros la plej riĉaj adoleskantoj en la vilaĝo.

The Adventures of the Elusive Malware, Part IV: DDE kaj Word Document Fields
La ŝelo estis lanĉita sen la plej eta kodigo. Eĉ infano povas fari ĉi tion!

DDE kaj kampoj

Mikrosofto poste malfunkciigis DDE en Word, sed ne antaŭ ol la firmao deklaris ke la funkcio estis simple misuzita. Ilia malemo ŝanĝi ion ajn estas komprenebla. Laŭ mia sperto, mi mem vidis ekzemplon kie ĝisdatigo de kampoj dum malfermo de dokumento estis ebligita, sed Vortaj makrooj estis malŝaltitaj de IT (sed montrante sciigon). Cetere, vi povas trovi la respondajn agordojn en la sekcio de Vortaj agordoj.

Tamen, eĉ se kampa ĝisdatigo estas ebligita, Microsoft Word aldone sciigas la uzanton kiam kampo petas aliron al forigitaj datumoj, kiel estas la kazo kun DDE supre. Microsoft vere avertas vin.

Sed plej verŝajne, uzantoj ankoraŭ ignoros ĉi tiun averton kaj aktivigos la ĝisdatigon de kampoj en Word. Ĉi tiu estas unu el la maloftaj ŝancoj danki Microsoft pro malŝalto de la danĝera DDE-trajto.

Kiom malfacile estas trovi neflikitan Vindozan sistemon hodiaŭ?

Por ĉi tiu provo, mi uzis AWS Workspaces por aliri virtualan labortablon. Tiel mi akiris neflikitan MS Office virtualan maŝinon, kiu permesis al mi enigi la kampon DDEAUTO. Mi ne dubas, ke simile vi povas trovi aliajn kompaniojn, kiuj ankoraŭ ne instalis la necesajn sekurecajn diakilojn.

Mistero de objektoj

Eĉ se vi instalis ĉi tiun flikilon, ekzistas aliaj sekurecaj truoj en MS Office, kiuj permesas al piratoj fari ion tre similan al tio, kion ni faris kun Word. En la sekva scenaro ni lernos uzu Excel kiel logilon por phishing-atako sen skribi ajnan kodon.

Por kompreni ĉi tiun scenaron, ni memoru la Mikrosoftan Komponan Objektan Modelon, aŭ mallonge COM (Kompozanta Objekto-Modelo).

COM ekzistas ekde la 1990-aj jaroj, kaj estas difinita kiel "lingv-neŭtrala, objekt-orientita komponentmodelo" bazita sur RPC malproksimaj procedalvokoj. Por ĝenerala kompreno de COM-terminologio, legu ĉi tiu afiŝo sur StackOverflow.

Esence, vi povas pensi pri COM-apliko kiel ekzekutebla Excel aŭ Word, aŭ iu alia binara dosiero, kiu funkcias.

Montriĝas, ke ankaŭ COM-apliko povas funkcii scenaro — JavaScript aŭ VBScript. Teknike ĝi nomiĝas scriptlet. Vi eble vidis la etendon .sct por dosieroj en Vindozo - ĉi tiu estas la oficiala etendo por scriptlets. Esence, ili estas skriptokodo envolvita en XML-envolvilo:

<?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>

Hakistoj kaj pentesteroj malkovris, ke ekzistas apartaj iloj kaj aplikoj en Vindozo, kiuj akceptas COM-objektojn kaj, sekve, ankaŭ scriptlets.

Mi povas transdoni scriptlet al Vindoza ilo skribita en VBS konata kiel pubprn. Ĝi situas en la profundo de C:Windowssystem32Printing_Admin_Scripts. Cetere, ekzistas aliaj Vindozaj iloj, kiuj akceptas objektojn kiel parametrojn. Ni rigardu ĉi tiun ekzemplon unue.

The Adventures of the Elusive Malware, Part IV: DDE kaj Word Document Fields
Estas tute nature, ke la ŝelo povas esti lanĉita eĉ de presita skripto. Iru Microsoft!

Kiel testo, mi kreis simplan fora skriptlet, kiu lanĉas ŝelon kaj presas amuzan mesaĝon, "Vi ĵus estis skribita!" Esence, pubprn instantigas scriptlet-objekton, permesante al VBScript-kodo ruli envolvaĵon. Ĉi tiu metodo provizas klaran avantaĝon al retpiratoj, kiuj volas ŝteliri kaj kaŝi vian sistemon.

En la sekva afiŝo, mi klarigos kiel COM-skriptleteroj povas esti ekspluataj de retpiratoj uzante Excel-kalkultabelojn.

Por via hejmtasko, rigardu Ĉi tiu Video de Derbycon 2016, kiu klarigas precize kiel hackers uzis scriptlets. Kaj ankaŭ legi ĉi tiu artikolo pri scriptlets kaj ia kromnomo.

fonto: www.habr.com

Aldoni komenton