L'Aventure di u Malware Elusive, Parte IV: Campi DDE è Documentu Word (simu quì)
In questu articulu, andava à immerse in un scenariu di attaccu senza file multi-stadi ancu più cumplessu cù pinning in u sistema. Ma dopu aghju scontru un attaccu incredibilmente simplice, senza codice - ùn ci hè micca bisognu di macros Word o Excel! È questu prova assai più efficacemente a mo ipotesi originale sottu à sta serie d'articuli: rompe u perimetru esterno di qualsiasi urganizazione ùn hè micca un compitu difficiule.
U primu attaccu chì descriveraghju sfrutta una vulnerabilità di Microsoft Word chì si basa anticu protocolu di scambiu di dati dinamichi (DDE). Era digià fissu. U sicondu sfrutta una vulnerabilità più generale in Microsoft COM è capacità di trasferimentu d'ughjettu.
Ritorna à u futuru cù DDE
Qualchissia altru si ricorda DDE? Probabilmente micca assai. Era unu di i primi protokolli di cumunicazione inter-prucessu chì permettenu l'applicazioni è i dispositi per trasfiriri dati.
Sò un pocu familiarizatu cun ellu stessu perchè aghju utilizatu per verificà è pruvà l'equipaggiu di telecomunicazione. À quellu tempu, DDE hà permessu, per esempiu, l'operatori di u call center per trasfirià l'ID di u chjamante à una applicazione CRM, chì ultimamente hà apertu una carta di cliente. Per fà questu, avete bisognu di cunnette un cable RS-232 trà u vostru telefunu è u vostru urdinatore. Eranu i ghjorni !
Comu risulta, Microsoft Word hè sempre sustegnu DDE.
Ciò chì rende stu attaccu efficace senza codice hè chì pudete accede à u protocolu DDE direttamente da i campi automatichi in un documentu Word (cappellu à SensePost per ricerca è publicazioni circa lu).
Codici di campu hè una altra funzione antica di MS Word chì permette di aghjunghje testu dinamicu è un pocu di prugrammazione à u vostru documentu. L'esempiu più evidenti hè u campu di u numeru di pagina, chì pò esse inseritu in u footer cù u valore {PAGE *MERGEFORMAT}. Questu permette à i numeri di pagina per esse generati automaticamente.
Suggerimentu: Pudete truvà l'elementu di menu Campu sottu Inserisci.
M'arricordu chì quandu aghju scupertu prima sta funzione in Word, eru maravigliatu. È finu à chì u patch l'hà disattivatu, Word hà sempre supportatu l'opzione di campi DDE. L'idea era chì DDE permette à Word di cumunicà direttamente cù l'appiecazione, per pudè passà a pruduzzioni di u prugramma in un documentu. Era una tecnulugia assai ghjovana à quellu tempu - supportu per u scambiu di dati cù applicazioni esterne. Hè statu dopu sviluppatu in a tecnulugia COM, chì avemu da vede ancu quì sottu.
Eventualmente, i pirate anu capitu chì sta applicazione DDE puderia esse una shell di cumanda, chì di sicuru hà lanciatu PowerShell, è da quì i pirate puderanu fà ciò chì vulianu.
A screenshot sottu mostra cumu aghju utilizatu sta tecnica furtiva: un picculu script PowerShell (in seguitu chjamatu PS) da u campu DDE carica un altru script PS, chì lancia a seconda fase di l'attaccu.
Grazie à Windows per l'avvertimentu pop-up chì u campu DDEAUTO integratu prova in sicretu di inizià a cunchiglia.
U metudu preferitu di sfruttà a vulnerabilità hè di utilizà una variante cù u campu DDEAUTO, chì eseguisce automaticamente u script. quandu si apre document Word.
Pensemu à ciò chì pudemu fà per questu.
Cum'è un pirate di principianti, pudete, per esempiu, mandà un email di phishing, fintendu chì site da u Serviziu Fiscale Federale, è incrustà u campu DDEAUTO cù u script PS per u primu stadiu (un dropper, essenzialmente). È ùn avete mancu bisognu di fà una codificazione vera di macros, etc., cum'è aghju fattu in articulu precedente.
A vittima apre u vostru documentu, u script incrustatu hè attivatu, è u pirate finisci in l'urdinatore. In u mo casu, u script PS remota stampa solu un missaghju, ma puderia lancià facilmente u cliente PS Empire, chì furnisce l'accessu di shell remota.
È prima chì a vittima hà u tempu di dì qualcosa, i pirate seranu l'adulescenti più ricchi di u paese.
A cunchiglia hè stata lanciata senza a minima codificazione. Ancu un zitellu pò fà!
DDE è campi
Microsoft dopu hà disattivatu DDE in Word, ma micca prima chì a cumpagnia hà dichjaratu chì a funzione hè stata semplicemente abusata. A so riluttanza di cambià qualcosa hè capiscibile. In a mo spirimintà, aghju vistu un esempiu induve l'aghjurnamentu di i campi à l'apertura di un documentu era attivatu, ma i macros Word sò stati disattivati da l'IT (ma mustrà una notificazione). In modu, pudete truvà i paràmetri currispundenti in a sezione di paràmetri di Word.
In ogni casu, ancu s'è l'aghjurnamentu di u campu hè attivatu, Microsoft Word notifica ancu à l'utilizatore quandu un campu dumanda l'accessu à e dati eliminati, cum'è u casu cù DDE sopra. Microsoft hè veramente avvistu.
Ma u più prubabile, l'utilizatori anu sempre ignurà stu avvisu è attivà l'aghjurnamentu di i campi in Word. Questa hè una di e rare opportunità per ringrazià Microsoft per disattivà a funzione DDE periculosa.
Quantu hè difficiule di truvà un sistema Windows senza patch oghje?
Per questa prova, aghju utilizatu AWS Workspaces per accede à un desktop virtuale. Questu modu aghju avutu una macchina virtuale MS Office senza parche chì m'hà permessu di inserisce u campu DDEAUTO. Ùn aghju micca dubbitu chì in una manera simile pudete truvà altre cumpagnie chì ùn anu micca stallatu i patch di sicurezza necessarii.
U misteru di l'uggetti
Ancu s'è avete installatu stu patch, ci sò altri buchi di sicurità in MS Office chì permettenu à i pirate di fà qualcosa assai simili à ciò chì avemu fattu cù Word. In u prossimu scenariu avemu da amparà Aduprate Excel cum'è esca per un attaccu di phishing senza scrive codice.
Per capisce stu scenariu, ricurdatemu di u Modellu d'Oggettu di Componente di Microsoft, o per cortu COM (Model d'ughjettu di cumpunenti).
COM hè stata dapoi l'anni 1990, è hè definitu cum'è un "mudellu di cumpunenti orientatu à l'ughjettu neutrali in lingua" basatu nantu à e chjama di prucedura remota RPC. Per una comprensione generale di a terminologia COM, leghjite stu postu nantu à StackOverflow.
In fondu, pudete pensà à una applicazione COM cum'è un eseguibile Excel o Word, o qualchì altru schedariu binariu chì corre.
Ci hè chì una applicazione COM pò ancu eseguisce scenariu - JavaScript o VBScript. Tecnicamente si chjama scriptlet. Puderete avè vistu l'estensione .sct per i schedari in Windows - questu hè l'estensione ufficiale per i scriptlets. Essenzialmente, sò codice di script impannillati in un wrapper 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>
Hackers è pentesters anu scupertu chì ci sò utilità è applicazioni separati in Windows chì accettanu l'uggetti COM è, per quessa, ancu scriptlets.
Puderaghju passà un scriptlet à una utilità Windows scritta in VBS cunnisciuta cum'è pubprn. Hè situatu in a prufundità di C:Windowssystem32Printing_Admin_Scripts. In modu, ci sò altre utilità Windows chì accettanu l'uggetti cum'è parametri. Fighjemu prima stu esempiu.
Hè abbastanza naturali chì a cunchiglia pò esse lanciata ancu da un script stampatu. Vai Microsoft!
Cum'è una prova, aghju creatu un scriptlet remota simplice chì lancia una cunchiglia è stampa un missaghju divertente, "Avete appena statu scrittu!" Essenzialmente, pubprn instanzia un oggettu di scriptlet, chì permette à u codice VBScript di eseguisce un wrapper. Stu metudu furnisce un vantaghju chjaru à i pirate chì volenu sneak in è ammuccià in u vostru sistema.
In u prossimu postu, spiegheraghju cumu i scriptlets COM ponu esse sfruttati da i pirate chì utilizanu fogli di calculu Excel.
Per i vostri travaglii, fate un ochju Stu Video da Derbycon 2016, chì spiega esattamente cumu i pirate anu utilizatu scriptlets. È ancu leghje stu articulu nantu à scriptlets è qualchì tipu di moniker.