Petualangan Malvari yang Elusif, Bagian IV: Bidang Dokumen DDE dan Word



Artikel ini adalah bagian dari seri Fileless Malware. Semua bagian seri lainnya:


Pada artikel ini, saya akan terjun ke skenario multi-tahap yang lebih rumit dari serangan file-free dengan memperbaiki dalam sistem. Tapi kemudian saya menemukan serangan yang sangat sederhana tanpa kode - tidak diperlukan makro Word atau Excel! Dan ini membuktikan jauh lebih efisien hipotesis awal saya yang mendasari serangkaian artikel ini: untuk mengatasi perimeter eksternal organisasi mana pun adalah tugas yang sangat sederhana.

Serangan pertama yang akan saya jelaskan adalah mengeksploitasi kerentanan Microsoft Word, yang didasarkan pada warisan Dynamic Data Exchange Protocol (DDE) . Sudah diperbaiki . Yang kedua mengeksploitasi kerentanan yang lebih umum dalam Microsoft COM dan kemampuan transfer objek.

Kembali ke masa depan dengan DDE


Apakah ada orang lain yang ingat DDE? Mungkin sedikit. Ini adalah salah satu protokol komunikasi antar proses pertama yang memungkinkan aplikasi dan perangkat untuk mentransfer data .

Saya sendiri agak terbiasa dengan hal itu, karena saya biasa mengecek dan menguji peralatan telekomunikasi. Pada saat itu, DDE mengizinkan, misalnya, untuk mentransfer ID penelepon ke aplikasi CRM untuk operator pusat panggilan, yang pada akhirnya membuka kartu klien. Untuk melakukan ini, Anda harus menghubungkan kabel RS-232 antara telepon dan komputer. Inilah zamannya!

Ternyata, Microsoft Word masih mendukung DDE.

Apa yang membuat serangan ini efektif tanpa kode adalah Anda dapat mengakses protokol DDE langsung dari bidang otomatis dokumen Word (saya melepas topi saya ke SensePost untuk meneliti dan menerbitkannya ).

Kode Lapangan adalah fitur MS Word kuno lainnya yang memungkinkan Anda untuk menambahkan teks dinamis dan sedikit pemrograman ke dokumen. Contoh yang paling jelas adalah bidang Nomor Halaman, yang dapat dimasukkan ke dalam footer menggunakan nilai {PAGE \ * MERGEFORMAT}. Ini memungkinkan Anda untuk secara otomatis menghasilkan nomor halaman.


Petunjuk: Anda dapat menemukan item menu Bidang di bagian Sisipkan.

Saya ingat bahwa ketika saya pertama kali menemukan fitur ini di Word, saya kagum. Dan selama tambalan tidak menonaktifkannya, Word mendukung parameter bidang DDE. Idenya adalah bahwa DDE akan memungkinkan Word untuk berkomunikasi dengan aplikasi secara langsung, untuk kemungkinan kemudian mentransfer output program ke dokumen. Itu adalah teknologi yang sangat muda pada waktu itu - dukungan untuk bertukar data dengan aplikasi eksternal. Nanti dikembangkan dalam teknologi COM, yang juga akan kita pertimbangkan di bawah ini.

Akibatnya, para peretas menyadari bahwa aplikasi DDE ini bisa menjadi shell perintah yang, tentu saja, meluncurkan PowerShell, dan dari sana para peretas dapat melakukan apa pun yang mereka inginkan.
Tangkapan layar di bawah ini menunjukkan bagaimana saya menggunakan teknik rahasia ini: skrip PowerShell kecil (selanjutnya disebut PS) dari bidang DDE memuat skrip PS lain yang meluncurkan fase kedua serangan.


Terima kasih kepada Windows untuk peringatan yang muncul bahwa bidang bawaan DDEAUTO secara diam-diam mencoba memulai shell

Metode yang lebih disukai untuk mengeksploitasi kerentanan adalah dengan menggunakan opsi dengan bidang DDEAUTO, yang secara otomatis menjalankan skrip ketika dokumen Word dibuka .
Mari kita pikirkan apa yang bisa kita lakukan.

Sebagai peretas pemula, Anda dapat, misalnya, mengirim email phising, berpura-pura berasal dari Layanan Pajak Federal, dan menyematkan bidang DDEAUTO dengan skrip PS untuk tahap pertama (sebenarnya ada dropper). Dan Anda bahkan tidak perlu melakukan pengkodean makro nyata, dll., Seperti yang saya lakukan di artikel sebelumnya.
Korban membuka dokumen Anda, skrip bawaan diaktifkan, dan peretas ada di dalam komputer. Dalam kasus saya, skrip PS jarak jauh hanya mencetak pesan, tetapi juga dapat dengan mudah meluncurkan klien PS Empire, yang akan menyediakan akses jarak jauh ke shell.
Dan sebelum korban punya waktu untuk mengatakan sesuatu, peretas akan menjadi remaja terkaya di desa.


Shell diluncurkan tanpa pengkodean sedikit pun. Bahkan seorang anak pun dapat melakukannya!

DDE dan bidang


Kemudian, Microsoft masih menonaktifkan DDE di Word, tetapi sebelum itu, perusahaan mengatakan bahwa fitur ini hanya disalahgunakan. Keengganan mereka untuk mengubah sesuatu bisa dimengerti. Dari pengalaman saya sendiri, saya sendiri mengamati contoh seperti itu bahwa memperbarui bidang ketika membuka dokumen diaktifkan, tetapi makro Word dinonaktifkan oleh layanan TI (tetapi dengan pemberitahuan). Omong-omong, Anda dapat menemukan parameter yang sesuai di bagian Pengaturan kata.

Namun, bahkan jika pembaruan bidang diaktifkan, Microsoft Word juga akan memberi tahu pengguna ketika bidang meminta akses ke data yang dihapus, seperti halnya dengan DDE di atas. Microsoft benar-benar memperingatkan Anda.

Tetapi kemungkinan besar, pengguna masih akan melewatkan peringatan ini dan mengaktifkan pembaruan bidang di Word. Ini adalah salah satu kesempatan langka untuk berterima kasih kepada Microsoft karena telah menonaktifkan fitur DDE yang berbahaya.

Seberapa sulit untuk menemukan sistem Windows yang belum ditonton hari ini?

Untuk pengujian ini, saya menggunakan AWS Workspaces untuk mengakses desktop virtual. Jadi, saya mendapat mesin virtual yang belum ditambal dengan MS Office, yang memungkinkan saya untuk memasukkan bidang DDEAUTO. Saya tidak ragu bahwa dengan cara yang sama Anda dapat menemukan perusahaan lain yang belum menginstal tambalan keamanan yang diperlukan.

Misteri benda


Bahkan jika Anda menginstal tambalan ini, ada lubang keamanan lain di MS Office yang memungkinkan peretas untuk melakukan sesuatu yang sangat mirip dengan apa yang kami lakukan dengan Word. Dalam skenario berikut, kita akan belajar cara menggunakan Excel sebagai umpan untuk serangan phishing tanpa menulis kode.

Untuk memahami skenario ini, mari kita memanggil kembali Model Objek Komponen Microsoft, atau disingkat COM (Component Object Model) .

COM telah ada sejak 1990-an, dan didefinisikan sebagai "model komponen berorientasi objek yang netral terhadap bahasa pemrograman" berdasarkan panggilan prosedur RPC jarak jauh. Untuk pemahaman umum tentang terminologi COM, baca posting ini di StackOverflow.

Pada umumnya, Anda dapat membayangkan aplikasi COM sebagai executable Excel atau Word, atau file biner lain yang dapat diluncurkan.

Ternyata aplikasi COM juga dapat menjalankan skrip - JavaScript atau VBScript. Secara teknis, ini disebut scriptlet . Mungkin Anda telah menjumpai ekstensi sct untuk file di Windows - ini adalah ekstensi resmi untuk skriplet. Bahkan, mereka adalah kode untuk skrip yang dibungkus dalam pembungkus 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 dan pentester telah menemukan bahwa ada utilitas dan aplikasi terpisah pada Windows yang menerima objek COM dan, karenanya, skrip juga.

Saya bisa meneruskan scriptlet ke utilitas Windows yang ditulis dalam VBS, yang dikenal sebagai pubprn. Itu terletak di perut C: \ Windows \ system32 \ Printing_Admin_Scripts. Omong-omong, ada utilitas Windows lain yang mengambil objek sebagai parameter. Untuk memulai, pertimbangkan contoh ini.


Wajar jika shell dapat diluncurkan bahkan dari skrip cetak. Pergi Microsoft!

Sebagai ujian, saya membuat skrip jarak jauh sederhana yang meluncurkan shell dan mencetak pesan lucu "Anda baru saja dituliskan!". Pada dasarnya, pubprn meng-instantiate objek scriptlet, memungkinkan VBScript untuk menjalankan shell. Metode ini memberikan manfaat yang jelas bagi peretas yang ingin menyelinap masuk dan bersembunyi di sistem Anda.

Pada posting selanjutnya saya akan menjelaskan bagaimana COM scriptlets dapat digunakan oleh peretas menggunakan lembar kerja Excel.

Untuk pekerjaan rumah Anda, tonton video Derbycon 2016 ini yang menjelaskan bagaimana peretas menggunakan skrip. Dan juga baca artikel ini tentang skrip dan beberapa jenis moniker.

Source: https://habr.com/ru/post/id460521/


All Articles