Tabamatu pahavara seiklused, IV osa: DDE ja Wordi dokumendiväljad

Tabamatu pahavara seiklused, IV osa: DDE ja Wordi dokumendiväljad

See artikkel on osa failivaba pahavara sarjast. Kõik teised sarja osad:

Selles artiklis kavatsesin sukelduda veelgi keerukamasse mitmeastmelisse failivaba rünnaku stsenaariumi koos süsteemi külge kinnitamisega. Kuid siis leidsin uskumatult lihtsa, ilma koodita rünnaku – Wordi ega Exceli makrosid pole vaja! Ja see tõestab palju tõhusamalt minu algset hüpoteesi, mis selle artiklite sarja aluseks on: ühegi organisatsiooni välisperimeetri murdmine pole sugugi keeruline ülesanne.

Esimene rünnak, mida ma kirjeldan, kasutab Microsoft Wordi haavatavust, mis põhineb aegunud dünaamiline andmevahetusprotokoll (DDE). Ta oli juba fikseeritud. Teine kasutab Microsofti COM-i ja objektide edastamise võimaluste üldisemat haavatavust.

Tagasi tulevikku DDE-ga

Kas keegi veel mäletab DDE-d? Ilmselt mitte palju. See oli üks esimesi protsessidevahelised sideprotokollid, mis võimaldasid rakendustel ja seadmetel andmeid edastada.

Olen ise sellega veidi kursis, kuna kontrollisin ja testisin telekomiseadmeid. Toona lubas DDE näiteks kõnekeskuste operaatoritel kanda helistaja ID CRM-i rakendusse, mis lõpuks avas kliendikaardi. Selleks tuli telefoni ja arvuti vahele ühendada RS-232 kaabel. Need olid päevad!

Nagu selgub, on Microsoft Word endiselt toetab DDE.

Selle rünnaku muudab tõhusaks ilma koodita see, et saate juurdepääsu DDE-protokollile otse Wordi dokumendi automaatsetelt väljadelt (müts maha SensePosti ees uuringud ja publikatsioonid sellest).

Väljakoodid on veel üks iidne MS Wordi funktsioon, mis võimaldab teil lisada oma dokumendile dünaamilist teksti ja natuke programmeerimist. Kõige ilmsem näide on leheküljenumbri väli, mille saab jalusesse sisestada, kasutades väärtust {PAGE *MERGEFORMAT}. See võimaldab leheküljenumbreid automaatselt genereerida.

Tabamatu pahavara seiklused, IV osa: DDE ja Wordi dokumendiväljad
Vihje: Menüüelemendi Väli leiate jaotisest Lisa.

Mäletan, et kui ma Wordis selle funktsiooni esimest korda avastasin, olin üllatunud. Ja kuni plaaster selle keelas, toetas Word endiselt DDE väljade valikut. Idee seisnes selles, et DDE võimaldaks Wordil rakendusega otse suhelda, et see saaks seejärel programmi väljundi dokumenti edastada. See oli tol ajal väga noor tehnoloogia – andmevahetuse tugi väliste rakendustega. Hiljem arendati see välja COM-tehnoloogiaks, mida me ka allpool vaatleme.

Lõpuks said häkkerid aru, et see DDE rakendus võib olla käsukest, mis loomulikult käivitas PowerShelli ja sealt edasi said häkkerid teha mida iganes tahavad.
Alloleval ekraanipildil on näha, kuidas ma seda varjamistehnikat kasutasin: väike PowerShelli skript (edaspidi PS) DDE väljalt laadib teise PS-skripti, mis käivitab rünnaku teise faasi.

Tabamatu pahavara seiklused, IV osa: DDE ja Wordi dokumendiväljad
Tänu Windowsile hüpikakna hoiatuse eest, et sisseehitatud DDEAUTO väli üritab salaja kesta käivitada

Eelistatud meetod haavatavuse ärakasutamiseks on kasutada varianti väljaga DDEAUTO, mis käivitab skripti automaatselt avamisel Wordi dokument.
Mõelgem, mida saame sellega seoses teha.

Algaja häkkerina võite saata näiteks andmepüügimeili, teeseldes, et olete föderaalsest maksuteenistusest, ja manustada DDEAUTO välja esimese etapi PS-skriptiga (sisuliselt tilguti). Ja te ei pea isegi makrode jne päris kodeerimist tegema, nagu ma tegin eelmine artikkel.
Ohver avab teie dokumendi, manustatud skript aktiveeritakse ja häkker satub arvutisse. Minu puhul prindib kaug-PS-skript lihtsalt sõnumi, kuid see võib sama lihtsalt käivitada PS Empire'i kliendi, mis pakub kaugjuurdepääsu kestale.
Ja enne kui ohver jõuab midagi öelda, osutuvad häkkerid küla rikkaimateks teismelisteks.

Tabamatu pahavara seiklused, IV osa: DDE ja Wordi dokumendiväljad
Kest käivitati ilma vähimagi kodeerimiseta. Isegi laps saab sellega hakkama!

DDE ja väljad

Microsoft keelas hiljem Wordis DDE, kuid mitte enne, kui ettevõte teatas, et seda funktsiooni lihtsalt kuritarvitati. Nende soovimatus midagi muuta on mõistetav. Olen oma kogemusest ise näinud näidet, kus väljade värskendamine dokumendi avamisel oli lubatud, kuid Wordi makrod oli IT poolt keelatud (kuid teatise näitamine). Muide, vastavad seaded leiate Wordi sätete jaotisest.

Isegi kui väljade värskendamine on lubatud, teavitab Microsoft Word kasutajat täiendavalt, kui väli taotleb juurdepääsu kustutatud andmetele, nagu ülaltoodud DDE puhul. Microsoft hoiatab teid tõesti.

Kuid tõenäoliselt ignoreerivad kasutajad seda hoiatust ja aktiveerivad Wordis väljade värskenduse. See on üks haruldasi võimalusi tänada Microsofti ohtliku DDE-funktsiooni keelamise eest.

Kui keeruline on tänapäeval leida paigata Windowsi süsteemi?

Selle testimise jaoks kasutasin virtuaalsele töölauale juurdepääsuks AWS-i tööruume. Nii sain paigatamata MS Office'i virtuaalmasina, mis võimaldas sisestada DDEAUTO välja. Ma ei kahtle, et sarnasel viisil võib leida ka teisi ettevõtteid, kes pole veel vajalikke turvapaiku installinud.

Objektide müsteerium

Isegi kui installisite selle paiga, on MS Office'is muid turvaauke, mis võimaldavad häkkeritel teha midagi sarnast, mida tegime Wordiga. Järgmises stsenaariumis me õpime kasutage Excelit andmepüügirünnaku söödana ilma koodi kirjutamata.

Selle stsenaariumi mõistmiseks meenutagem Microsofti komponentobjektimudelit või lühidalt COM (komponentobjekti mudel).

COM on olnud kasutusel alates 1990. aastatest ja seda määratletakse kui "keeleneutraalset, objektorienteeritud komponendimudelit", mis põhineb RPC kaugprotseduurikõnedel. COM-terminoloogia üldiseks mõistmiseks lugege see postitus StackOverflow's.

Põhimõtteliselt võite mõelda COM-rakendusele kui Exceli või Wordi käivitatavale failile või mõnele muule binaarfailile, mis töötab.

Selgub, et ka COM-i rakendus võib töötada stsenaarium - JavaScript või VBScript. Tehniliselt nimetatakse seda skriptlet. Võib-olla olete Windowsis näinud failide laiendit .sct – see on skriptifailide ametlik laiend. Põhimõtteliselt on need skriptikoodid, mis on pakitud XML-ümbrisesse:

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

Häkkerid ja pentestijad on avastanud, et Windowsis on eraldi utiliidid ja rakendused, mis aktsepteerivad COM-objekte ja vastavalt ka skripte.

Saan edastada skripti Windowsi utiliidile, mis on kirjutatud VBS-is, tuntud kui pubprn. See asub C:Windowssystem32Printing_Admin_Scripts sügavuses. Muide, on ka teisi Windowsi utiliite, mis aktsepteerivad objekte parameetritena. Vaatame kõigepealt seda näidet.

Tabamatu pahavara seiklused, IV osa: DDE ja Wordi dokumendiväljad
On üsna loomulik, et kesta saab käivitada isegi trükiskriptist. Mine Microsoft!

Testiks lõin lihtsa kaugskripti, mis käivitab kesta ja prindib naljaka sõnumi: "Teile on just kirjutatud skript!" Põhimõtteliselt loob pubprn skriptiobjekti, võimaldades VBScripti koodil ümbrist käivitada. See meetod annab selge eelise häkkeritele, kes soovivad teie süsteemi sisse hiilida ja peitu pugeda.

Järgmises postituses selgitan, kuidas häkkerid saavad Exceli tabeleid kasutades ära kasutada COM-skripte.

Kodutöö jaoks vaadake see video Derbycon 2016, mis selgitab täpselt, kuidas häkkerid skripte kasutasid. Ja ka lugeda Selle artikli skripti ja mingi nimetuse kohta.

Allikas: www.habr.com

Lisa kommentaar