
Artikel ini adalah sebahagian daripada siri Perisian Hasad Tanpa Fail. Semua bahagian lain siri ini:
- Pengembaraan Perisian Hasad Sukar, Bahagian IV: DDE dan Medan Dokumen Word (Kami Di Sini)
Dalam artikel ini, saya merancang untuk menyelidiki senario serangan tanpa fail berbilang peringkat yang lebih kompleks dengan kegigihan. Tetapi kemudian saya terjumpa serangan yang sangat mudah, tanpa kod—tiada makro Word atau Excel diperlukan! Dan ini dengan lebih berkesan membuktikan hipotesis awal saya yang mendasari siri ini: menembusi perimeter luar mana-mana organisasi bukanlah tugas yang sukar.
Serangan pertama yang saya akan terangkan mengeksploitasi kelemahan Microsoft Word yang bergantung kepada ketinggalan zaman (DDE)Dia sudah berada di sana. Yang kedua mengeksploitasi kelemahan yang lebih umum dalam Microsoft COM dan keupayaan lulus objeknya.
Kembali ke Masa Depan dengan DDE
Adakah sesiapa masih ingat DDE? Mungkin tidak ramai. Ia adalah salah satu yang pertama protokol komunikasi antara proses yang membenarkan aplikasi dan peranti bertukar data.
Saya sendiri agak biasa dengannya, kerana saya pernah menyemak dan menguji peralatan telekom. Pada masa itu, DDE membenarkan pengendali pusat panggilan, contohnya, menghantar ID pemanggil ke aplikasi CRM, yang akhirnya membuka profil pelanggan. Untuk melakukan ini, anda perlu menyambungkan kabel RS-232 antara telefon dan komputer. Itulah hari-harinya!
Ternyata, Microsoft Word masih DDE.
Apa yang menjadikan serangan ini berkesan tanpa kod ialah anda boleh mengakses protokol DDE langsung daripada medan automatik dokumen Word (topi kepada SensePost untuk tentang ini).
Kod medan – Ini adalah satu lagi ciri MS Word purba yang membolehkan anda menambah teks dinamik dan sedikit pengaturcaraan pada dokumen anda. Contoh paling jelas ialah medan "nombor halaman", yang boleh dimasukkan ke dalam pengaki menggunakan nilai {PAGE *MERGEFORMAT}. Ini membolehkan penjanaan automatik nombor halaman.

Petunjuk: Anda boleh mencari item menu Medan di bawah bahagian Sisip.
Saya masih ingat kagum apabila saya mula-mula menemui ciri ini dalam Word. Sehingga tampung melumpuhkannya, Word terus menyokong pilihan medan DDE. Ideanya ialah DDE akan membenarkan Word berkomunikasi secara langsung dengan aplikasi, membolehkannya menghantar data output program ke dalam dokumen. Ini adalah teknologi yang sangat muda pada masa itu—sokongan untuk pertukaran data dengan aplikasi luaran. Ia kemudiannya dibangunkan menjadi teknologi COM, yang juga akan kami bincangkan di bawah.
Akhirnya, penggodam menyedari bahawa aplikasi DDE ini boleh menjadi shell arahan, yang, sudah tentu, menjalankan PowerShell, dan dari situ penggodam boleh melakukan apa sahaja yang mereka mahu.
Tangkapan skrin di bawah menunjukkan cara saya menggunakan teknik senyap ini: skrip PowerShell kecil (selepas ini dirujuk sebagai PS) daripada medan DDE memuatkan skrip PS lain, yang melancarkan fasa kedua serangan.

Terima kasih kepada Windows kerana mengeluarkan amaran bahawa medan DDEAUTO terbina dalam cuba melancarkan shell secara rahsia.
Kaedah pilihan untuk mengeksploitasi kelemahan adalah dengan menggunakan medan DDEAUTO, yang menjalankan skrip secara automatik. semasa membuka Dokumen perkataan.
Mari kita fikirkan apa yang boleh dilakukan mengenai perkara ini.
Sebagai penggodam pemula, anda boleh, contohnya, menghantar e-mel pancingan data, berpura-pura menjadi daripada Perkhidmatan Cukai Persekutuan dan membenamkan medan DDEAUTO dengan skrip PS untuk peringkat pertama (pada asasnya penitis). Dan anda tidak perlu melakukan sebarang pengekodan makro sebenar atau apa-apa seperti yang saya lakukan
Mangsa membuka dokumen anda, skrip terbenam diaktifkan, dan penggodam berada di dalam komputer. Dalam kes saya, skrip PS jauh hanya mencetak mesej, tetapi ia boleh melancarkan klien PS Empire dengan mudah, yang akan menyediakan akses shell jauh.
Dan sebelum mangsa boleh berkata sepatah pun, penggodam akan menjadi remaja terkaya di kampung itu.

Cangkang itu dilancarkan tanpa sebarang pengekodan. Malah seorang kanak-kanak boleh melakukannya!
DDE dan medan
Microsoft akhirnya melumpuhkan DDE dalam Word, tetapi tidak sebelum mendakwa bahawa ciri itu telah disalahgunakan semata-mata. Keengganan mereka untuk mengubah apa-apa boleh difahami. Saya secara peribadi memerhatikan situasi di mana kemas kini medan semasa pembukaan dokumen didayakan, tetapi makro Word telah dilumpuhkan oleh perkhidmatan IT (walaupun pemberitahuan telah dipaparkan). Secara kebetulan, anda boleh menemui tetapan yang berkaitan dalam tetapan Word.
Walau bagaimanapun, walaupun pengemaskinian medan didayakan, Microsoft Word juga memberitahu pengguna apabila medan meminta akses kepada data jauh, seperti dalam kes DDE di atas. Microsoft memberi amaran kepada anda.
Tetapi pengguna mungkin akan mengabaikan amaran ini dan mendayakan kemas kini medan dalam Word. Ini adalah salah satu peluang yang jarang berlaku untuk mengucapkan terima kasih kepada Microsoft kerana melumpuhkan ciri DDE yang berbahaya.
Betapa sukarnya untuk mencari sistem Windows yang tidak ditambal hari ini?
Untuk ujian ini, saya menggunakan persekitaran AWS Workspaces untuk mengakses desktop maya. Ini memberi saya mesin maya yang tidak ditambal yang menjalankan MS Office, yang membenarkan saya memasukkan medan DDEAUTO. Saya tidak ragu-ragu bahawa usaha serupa boleh dilakukan untuk mencari syarikat lain yang masih belum memasang patch keselamatan yang diperlukan.
Misteri Objek
Walaupun anda memasang tampung ini, terdapat lubang keselamatan lain dalam MS Office yang membenarkan penggodam melakukan sesuatu yang hampir serupa dengan apa yang kami lakukan dengan Word. Dalam senario seterusnya, kita akan belajar bagaimana Gunakan Excel sebagai umpan untuk serangan pancingan data tanpa menulis kod.
Untuk memahami senario ini, mari kita ingat Model Objek Komponen Microsoft, atau pendeknya Model Objek Komponen. COM (Model Objek Komponen).
COM telah wujud sejak tahun 1990-an dan ditakrifkan sebagai "model komponen berorientasikan objek neutral bahasa" berdasarkan panggilan prosedur jauh (RPC). Untuk pemahaman umum terminologi COM, baca pada StackOverflow.
Pada asasnya, anda boleh memikirkan aplikasi COM sebagai Excel atau Word executable, atau beberapa fail binari runnable lain.
Ternyata aplikasi COM juga boleh dijalankan skripnya — JavaScript atau VBScript. Secara teknikal ia dipanggil skripAnda mungkin pernah melihat sambungan .sct pada fail Windows—ini ialah sambungan rasmi untuk skriplet. Mereka pada dasarnya adalah kod skrip yang dibalut dalam 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>
Penggodam dan pentester telah mendapati bahawa terdapat utiliti dan aplikasi berasingan dalam Windows yang menerima objek COM dan, oleh itu, skrip kecil juga.
Saya boleh menghantar skrip ke utiliti Windows yang ditulis dalam VBS yang dikenali sebagai pubprn. Ia terletak di kedalaman C:\Windows\system32\Printing_Admin_Scripts. Secara kebetulan, terdapat utiliti Windows lain yang menerima objek sebagai parameter. Mari kita mulakan dengan contoh ini.

Adalah wajar bahawa cangkerang itu boleh dilancarkan daripada skrip cetakan. Teruskan, Microsoft!
Untuk tujuan ujian, saya mencipta skrip kecil jauh mudah yang melancarkan shell dan mencetak mesej lucu: "Anda baru sahaja diskrip!" Pada asasnya, pubprn mencipta contoh objek skrip, membenarkan kod VBScript untuk melancarkan shell. Kaedah ini menawarkan kelebihan yang jelas kepada penggodam yang ingin menyelinap masuk dan bersembunyi pada sistem anda.
Dalam catatan seterusnya, saya akan menerangkan bagaimana skrip COM boleh dieksploitasi oleh penggodam menggunakan hamparan Excel.
Untuk kerja rumah anda, tonton ini daripada Derbycon 2016, yang menerangkan dengan tepat cara penggodam menggunakan skrip kecil. Baca juga tentang skrip dan beberapa jenis moniker.
Sumber: www.habr.com
