The Adventures of the Elusive Malware, Part IV: DDE and Word Document Fields (kita kene)
Ing artikel iki, aku bakal nyilem menyang skenario serangan tanpa file multi-tahap sing luwih rumit kanthi pinning ing sistem. Nanging banjur aku teka tengen luar biasa prasaja, tanpa kode serangan-ora Word utawa Excel macros dibutuhake! Lan iki mbuktekake luwih efektif hipotesis asliku sing ndasari seri artikel iki: ngrusak perimeter njaba organisasi apa wae dudu tugas sing angel.
Serangan pisanan sing bakal dakgambarake nggunakake kerentanan Microsoft Word sing adhedhasar kuna protokol pertukaran data dinamis (DDE). Dheweke wis tetep. Kapindho ngeksploitasi kerentanan sing luwih umum ing Microsoft COM lan kemampuan transfer obyek.
Bali menyang mangsa karo DDE
Sapa wae sing ngelingi DDE? Mbokmenawa ora akeh. Iku salah siji saka pisanan protokol komunikasi antar-proses sing ngidini aplikasi lan piranti nransfer data.
Aku rada ngerti dhewe amarga aku nate mriksa lan nyoba peralatan telekomunikasi. Ing wektu kasebut, DDE ngidini, contone, operator pusat panggilan nransfer ID panelpon menyang aplikasi CRM, sing pungkasane mbukak kertu pelanggan. Kanggo nindakake iki, sampeyan kudu nyambungake kabel RS-232 antarane telpon lan komputer. Iku dina!
Apa sing ndadekake serangan iki efektif tanpa kode yaiku sampeyan bisa ngakses protokol DDE langsung saka kolom otomatis ing dokumen Word (topi menyang SensePost kanggo riset lan publikasi bab iku).
Kode lapangan minangka fitur MS Word kuna liyane sing ngidini sampeyan nambah teks dinamis lan sawetara program menyang dokumen sampeyan. Conto sing paling jelas yaiku kolom nomer kaca, sing bisa dilebokake ing footer nggunakake nilai {PAGE *MERGEFORMAT}. Iki ngidini nomer kaca digawe kanthi otomatis.
Petunjuk: Sampeyan bisa nemokake item menu Field ing sisipan.
Aku elinga nalika aku pisanan nemokake fitur iki ing Word, aku kaget. Lan nganti tembelan mateni, Word isih ndhukung pilihan kolom DDE. Ide kasebut yaiku DDE ngidini Word bisa komunikasi langsung karo aplikasi kasebut, supaya bisa ngirim output program menyang dokumen. Iku teknologi sing enom banget ing wektu iku - dhukungan kanggo ijol-ijolan data karo aplikasi eksternal. Iki banjur dikembangake dadi teknologi COM, sing uga bakal kita deleng ing ngisor iki.
Thanks kanggo Windows kanggo bebaya pop-up sing dibangun ing lapangan DDEAUTO meneng-menengan nyoba kanggo miwiti Nihan
Cara sing disenengi kanggo ngeksploitasi kerentanan yaiku nggunakake varian karo kolom DDEAUTO, sing kanthi otomatis mbukak skrip nalika mbukak Dokumen Word.
Ayo dipikirake apa sing bisa ditindakake babagan iki.
Cangkang kasebut diluncurake tanpa kodhe sethithik. Malah bocah bisa nindakake!
DDE lan lapangan
Microsoft banjur mateni DDE ing Word, nanging ora sadurunge perusahaan nyatakake yen fitur kasebut mung disalahake. Sing wegah kanggo ngganti apa wae bisa dingerteni. Ing pengalaman, aku dhewe wis ndeleng conto ing ngendi nganyari lapangan nalika mbukak dokumen diaktifake, nanging macro Word dipateni dening IT (nanging nuduhake kabar). Miturut cara, sampeyan bisa nemokake setelan sing cocog ing bagean setelan Word.
Nanging, sanajan nganyari lapangan diaktifake, Microsoft Word uga menehi kabar marang pangguna nalika lapangan njaluk akses menyang data sing wis dibusak, kaya sing kedadeyan ing DDE ing ndhuwur. Microsoft pancen ngelingake sampeyan.
Nanging umume, pangguna isih bakal nglirwakake bebaya iki lan ngaktifake nganyari lapangan ing Word. Iki minangka salah sawijining kesempatan langka kanggo matur nuwun marang Microsoft amarga mateni fitur DDE sing mbebayani.
Sepira angel golek sistem Windows sing durung ditambal saiki?
Kanggo tes iki, aku nggunakake AWS Workspaces kanggo ngakses desktop virtual. Kanthi cara iki aku entuk mesin virtual MS Office sing ora ditambal sing ngidini aku nglebokake lapangan DDEAUTO. Aku ora mangu yen kanthi cara sing padha sampeyan bisa nemokake perusahaan liyane sing durung nginstal patch keamanan sing dibutuhake.
Misteri obyek
Sanajan sampeyan wis nginstal tembelan iki, ana bolongan keamanan liyane ing MS Office sing ngidini peretas nindakake perkara sing padha karo apa sing ditindakake karo Word. Ing skenario sabanjure kita bakal sinau nggunakake Excel minangka umpan kanggo serangan phishing tanpa nulis kode.
Kanggo mangerteni skenario iki, ayo elinga Model Obyek Komponen Microsoft, utawa cendhak COM (Model Obyek Komponen).
COM wis ana wiwit taun 1990-an, lan ditetepake minangka "basa-neutral, obyek-oriented model komponen" adhedhasar RPC telpon prosedur remot. Kanggo pangerten umum terminologi COM, maca kirim iki ing StackOverflow.
Sejatine, sampeyan bisa mikir aplikasi COM minangka eksekusi Excel utawa Word, utawa sawetara file binar liyane sing mlaku.
Pranyata aplikasi COM uga bisa mlaku skenario - JavaScript utawa VBScript. Secara teknis diarani naskah. Sampeyan bisa uga wis ndeleng extension .sct kanggo file ing Windows - iki extension resmi kanggo scriptlets. Intine, iku kode skrip sing dibungkus ing bungkus 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>
Peretas lan pentesters nemokake manawa ana utilitas lan aplikasi sing kapisah ing Windows sing nampa obyek COM lan uga skrip.
Aku bisa ngirim scriptlet kanggo sarana Windows ditulis ing VBS dikenal minangka pubprn. Dumunung ing ambane C: Windowssystem32Printing_Admin_Scripts. Miturut cara, ana keperluan Windows liyane sing nampa obyek minangka paramèter. Coba deleng conto iki dhisik.
Cukup alami yen cangkang bisa diluncurake sanajan saka skrip cetak. Ayo Microsoft!
Minangka tes, aku nggawe scriptlet remot prasaja sing mbukak cangkang lan nyithak pesen lucu, "Sampeyan lagi wae wis skrip!" Ateges, pubprn instantiates obyek scriptlet, ngidini kode VBScript kanggo mbukak pambungkus. Cara iki menehi kauntungan sing jelas kanggo peretas sing pengin nyelinep lan ndhelikake sistem sampeyan.
Ing kirim sabanjure, aku bakal nerangake carane skrip COM bisa dimanfaatake dening peretas nggunakake spreadsheet Excel.
Kanggo peer, delengen Video Iki saka Derbycon 2016, sing nerangake persis carane peretas nggunakake scriptlets. Lan uga maca artikel iki babagan scriptlets lan sawetara jenis moniker.