The Adventures of the Eusive Malware, IV daļa: DDE un Word dokumentu lauki (mÄs esam Å”eit)
Å ajÄ rakstÄ es grasÄ«jos ienirt vÄl sarežģītÄkÄ daudzpakÄpju bezfailu uzbrukuma scenÄrijÄ ar piesprauÅ”anu sistÄmai. Bet tad es saskÄros ar neticami vienkÄrÅ”u uzbrukumu bez koda ā nebija nepiecieÅ”ami Word vai Excel makro! Un tas daudz efektÄ«vÄk pierÄda manu sÄkotnÄjo hipotÄzi, kas ir Ŕīs rakstu sÄrijas pamatÄ: jebkuras organizÄcijas ÄrÄjÄ perimetra pÄrkÄpÅ”ana nepavisam nav grÅ«ts uzdevums.
Pirmais uzbrukums, ko aprakstÄ«Å”u, izmanto Microsoft Word ievainojamÄ«bu, kuras pamatÄ ir novecojis dinamiskais datu apmaiÅas protokols (DDE). ViÅa jau bija fiksÄts. OtrajÄ tiek izmantota vispÄrÄ«gÄka Microsoft COM un objektu pÄrsÅ«tÄ«Å”anas iespÄju ievainojamÄ«ba.
Atgriezties nÄkotnÄ ar DDE
Vai kÄds vÄl atceras DDE? DroÅ”i vien nav daudz. Tas bija viens no pirmajiem starpprocesu sakaru protokoli, kas ļÄva lietojumprogrammÄm un ierÄ«cÄm pÄrsÅ«tÄ«t datus.
Pats esmu ar to mazliet pazÄ«stams, jo mÄdzu pÄrbaudÄ«t un testÄt telekomunikÄciju iekÄrtas. Toreiz DDE atļÄva, piemÄram, zvanu centru operatoriem pÄrsÅ«tÄ«t zvanÄ«tÄja ID uz CRM lietojumprogrammu, kas galu galÄ atvÄra klienta karti. Lai to izdarÄ«tu, tÄlrunim un datoram bija jÄpievieno RS-232 kabelis. TÄs bija dienas!
KÄ izrÄdÄs, Microsoft Word joprojÄm ir atbalsta DDE.
Å o uzbrukumu padara efektÄ«vu bez koda tas, ka varat piekļūt DDE protokolam tieÅ”i no automÄtiskiem laukiem Word dokumentÄ (sensePost priekÅ” pÄtÄ«jumi un publikÄcijas par to).
Lauku kodi ir vÄl viena sena MS Word funkcija, kas ļauj dokumentam pievienot dinamisku tekstu un nedaudz programmÄt. AcÄ«mredzamÄkais piemÄrs ir lapas numura lauks, ko var ievietot kÄjenÄ, izmantojot vÄrtÄ«bu {PAGE *MERGEFORMAT}. Tas ļauj automÄtiski Ä£enerÄt lappuÅ”u numurus.
Padoms. IzvÄlnes vienumu Lauks varat atrast sadaÄ¼Ä Ievietot.
Es atceros, ka, pirmo reizi atklÄjot Å”o funkciju programmÄ Word, es biju pÄrsteigts. Un lÄ«dz brÄ«dim, kad ielÄps to atspÄjoja, Word joprojÄm atbalstÄ«ja opciju DDE lauki. Ideja bija tÄda, ka DDE ļautu Word sazinÄties tieÅ”i ar lietojumprogrammu, lai tÄ pÄc tam varÄtu nodot programmas izvadi dokumentÄ. TÄ tolaik bija ļoti jauna tehnoloÄ£ija ā atbalsts datu apmaiÅai ar ÄrÄjÄm aplikÄcijÄm. VÄlÄk tÄ tika izstrÄdÄta COM tehnoloÄ£ijÄ, ko mÄs arÄ« apskatÄ«sim tÄlÄk.
Galu galÄ hakeri saprata, ka Ŕī DDE lietojumprogramma varÄtu bÅ«t komandu apvalks, kas, protams, palaida PowerShell, un no turienes hakeri varÄja darÄ«t visu, ko vÄlas.
TÄlÄk esoÅ”ajÄ ekrÄnuzÅÄmumÄ ir parÄdÄ«ts, kÄ es izmantoju Å”o slepeno paÅÄmienu: neliels PowerShell skripts (turpmÄk tekstÄ PS) no DDE lauka ielÄdÄ citu PS skriptu, kas uzsÄk uzbrukuma otro fÄzi.
Paldies Windows par uznirstoÅ”o brÄ«dinÄjumu, ka iebÅ«vÄtais lauks DDEAUTO slepeni mÄÄ£ina palaist Äaulu
IeteicamÄ ievainojamÄ«bas izmantoÅ”anas metode ir izmantot variantu ar lauku DDEAUTO, kas automÄtiski palaiž skriptu. atverot Word dokuments.
PadomÄsim par to, ko mÄs varam darÄ«t Å”ajÄ jautÄjumÄ.
KÄ iesÄcÄjs hakeris varat, piemÄram, nosÅ«tÄ«t pikŔķerÄÅ”anas e-pastu, izliekoties, ka esat no FederÄlÄ nodokļu dienesta, un iegult lauku DDEAUTO ar PS skriptu pirmajam posmam (bÅ«tÄ«bÄ pilinÄtÄjs). Un jums pat nav jÄveic reÄla makro kodÄÅ”ana utt., kÄ es to darÄ«ju iepriekÅ”Äjais raksts.
Upuris atver jÅ«su dokumentu, tiek aktivizÄts iegultais skripts, un hakeris nonÄk datorÄ. ManÄ gadÄ«jumÄ attÄlais PS skripts vienkÄrÅ”i izdrukÄ ziÅojumu, taÄu tas tikpat viegli varÄtu palaist PS Empire klientu, kas nodroÅ”inÄs attÄlo Äaulas piekļuvi.
Un, pirms upuris paspÄs kaut ko pateikt, hakeri izrÄdÄ«sies ciema bagÄtÄkie pusaudži.
Apvalks tika palaists bez mazÄkÄs kodÄÅ”anas. Pat bÄrns to var izdarÄ«t!
DDE un lauki
Microsoft vÄlÄk atspÄjoja DDE programmÄ Word, bet ne pirms tam, kad uzÅÄmums paziÅoja, ka Ŕī funkcija ir vienkÄrÅ”i ļaunprÄtÄ«gi izmantota. ViÅu nevÄlÄÅ”anÄs kaut ko mainÄ«t ir saprotama. Pats savÄ pieredzÄ esmu redzÄjis piemÄru, ka lauku atjauninÄÅ”ana, atverot dokumentu, bija iespÄjota, bet Word makro atspÄjoja IT (bet rÄda paziÅojumu). Starp citu, atbilstoÅ”os iestatÄ«jumus varat atrast Word iestatÄ«jumu sadaļÄ.
TomÄr pat tad, ja lauka atjauninÄÅ”ana ir iespÄjota, Microsoft Word papildus informÄ lietotÄju, kad lauks pieprasa piekļuvi dzÄstiem datiem, kÄ tas ir iepriekÅ” DDE gadÄ«jumÄ. Microsoft jÅ«s patieÅ”Äm brÄ«dina.
Bet, visticamÄk, lietotÄji joprojÄm ignorÄs Å”o brÄ«dinÄjumu un aktivizÄs lauku atjauninÄjumu programmÄ Word. Å Ä« ir viena no retajÄm iespÄjÄm pateikties Microsoft par bÄ«stamÄs DDE funkcijas atspÄjoÅ”anu.
Cik grÅ«ti mÅ«sdienÄs ir atrast neatkÄrtotu Windows sistÄmu?
Å ai pÄrbaudei es izmantoju AWS darbvietas, lai piekļūtu virtuÄlajai darbvirsmai. TÄdÄ veidÄ es ieguvu nelÄpÄ«tu MS Office virtuÄlo maŔīnu, kas ļÄva ievietot DDEAUTO lauku. NeÅ”aubos, ka lÄ«dzÄ«gÄ veidÄ var atrast arÄ« citus uzÅÄmumus, kuri vÄl nav uzstÄdÄ«juÅ”i nepiecieÅ”amos droŔības ielÄpus.
Objektu noslÄpumi
Pat ja instalÄjÄt Å”o ielÄpu, programmÄ MS Office ir arÄ« citi droŔības caurumi, kas ļauj hakeriem darÄ«t kaut ko ļoti lÄ«dzÄ«gu tam, ko mÄs darÄ«jÄm ar Word. NÄkamajÄ scenÄrijÄ mÄs mÄcÄ«simies izmantojiet Excel kÄ Äsmu pikŔķerÄÅ”anas uzbrukumam, nerakstot nekÄdu kodu.
Lai saprastu Å”o scenÄriju, atcerÄsimies Microsoft komponentu objektu modeli jeb saÄ«sinÄti COM (komponentu objekta modelis).
COM ir pastÄvÄjis kopÅ” 1990. gadiem, un tas ir definÄts kÄ "valodai neitrÄls, objektorientÄts komponentu modelis", kura pamatÄ ir RPC attÄlo procedÅ«ru izsaukumi. Lai iegÅ«tu vispÄrÄ«gu izpratni par COM terminoloÄ£iju, izlasiet Å”o ziÅu vietnÄ StackOverflow.
BÅ«tÄ«bÄ jÅ«s varat domÄt par COM lietojumprogrammu kÄ Excel vai Word izpildÄmo failu vai kÄdu citu binÄru failu, kas darbojas.
IzrÄdÄs, ka var darboties arÄ« COM aplikÄcija skripts ā JavaScript vai VBScript. Tehniski to sauc skriptlets. IespÄjams, esat redzÄjis Windows failu paplaÅ”inÄjumu .sct ā tas ir oficiÄlais skriptu paplaÅ”inÄjums. BÅ«tÄ«bÄ tie ir skripta kods, kas iesaiÅots XML iesaiÅojumÄ:
<?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>
Hakeri un testÄtÄji ir atklÄjuÅ”i, ka sistÄmÄ Windows ir atseviŔķas utilÄ«tas un lietojumprogrammas, kas pieÅem COM objektus un attiecÄ«gi arÄ« skriptus.
Es varu nodot skriptu Windows utilÄ«tai, kas rakstÄ«ta VBS, kas pazÄ«stama kÄ pubprn. Tas atrodas C:Windowssystem32Printing_Admin_Scripts dziļumÄ. Starp citu, ir arÄ« citas Windows utilÄ«tas, kas pieÅem objektus kÄ parametrus. Vispirms apskatÄ«sim Å”o piemÄru.
Ir diezgan dabiski, ka apvalku var palaist pat no drukas skripta. Dodieties uz Microsoft!
PÄrbaudei es izveidoju vienkÄrÅ”u attÄlo skriptu, kas palaiž Äaulu un izdrukÄ smieklÄ«gu ziÅojumu: āJÅ«s tikko esat skripts!ā BÅ«tÄ«bÄ pubprn Ä£enerÄ skripta objektu, ļaujot VBScript kodam palaist iesaiÅojumu. Å Ä« metode sniedz nepÄrprotamas priekÅ”rocÄ«bas hakeriem, kuri vÄlas ielÄ«st un paslÄpties jÅ«su sistÄmÄ.
NÄkamajÄ ierakstÄ es paskaidroÅ”u, kÄ hakeri var izmantot COM skriptus, izmantojot Excel izklÄjlapas.
Lai veiktu mÄjas darbus, ieskatieties Å is Video no Derbycon 2016, kas precÄ«zi izskaidro, kÄ hakeri izmantoja skriptus. Un arÄ« lasÄ«t Å”is raksts par skriptletiem un kaut kÄdu monikeru.