Peneliti keamanan telah mempublikasikan tool bernama NoFilter yang dapat disalahgunakan untuk memanfaatkan Windows Filtering Platform guna meningkatkan hak istimewa pengguna, dengan tujuan untuk mencapai tingkat izin tertinggi ke system Windows.
Utilitas ini bermanfaat dalam situasi pasca-eksploitasi, ketika seorang penyerang perlu mengeksekusi kode berbahaya dengan tingkat izin yang lebih tinggi atau melakukan perpindahan lateral di jaringan korban. Ini terjadi ketika pengguna lain sudah memiliki akses ke perangkat yang telah terinfeksi.
Akses Duplikasi Token
Microsoft mendeskripsikan Windows Filtering Platform (WFP) sebagai "sebuah pengaturan API dan layanan system yang menyediakan platform untuk pembuatan aplikasi pemfilteran jaringan."
Pengembang dapat memanfaatkan API WFP untuk mengembangkan kode yang mampu melakukan pemfilteran atau modifikasi data jaringan sebelum mencapai tujuannya. Ini adalah kemampuan yang sering digunakan dalam tool pemantauan jaringan, system deteksi intrusi atau firewall.
Para peneliti di perusahaan keamanan siber Deep Instinct berhasil mengembangkan tiga serangan baru yang memungkinkan peningkatan hak istimewa pada system Windows, semuanya dengan usaha minimal untuk tidak meninggalkan jejak yang dapat terdeteksi oleh berbagai produk keamanan.
Metode pertama memungkinkan penggunaan Windows Filtering Platform (WFP) untuk menggandakan token akses, yaitu fragmen kode yang mengidentifikasi pengguna dan izin yang mereka miliki dalam konteks keamanan thread dan proses.
Ketika sebuah thread menjalankan tugas yang memerlukan hak istimewa, pengidentifikasi keamanan memeriksa apakah token yang terkait memiliki tingkat akses yang diperlukan.
Ron Ben Yizhak, seorang peneliti keamanan di Deep Instinct, menjelaskan bahwa pemanggilan fungsi NtQueryInformationProcess memungkinkan mendapatkan tabel handle yang berisi semua token yang dimiliki oleh suatu proses.
"Handle token ini dapat direplikasi untuk proses lain agar dapat meningkatkan hak istimewa ke tingkat SYSTEM," tulis Yizhak dalam postingan blog teknisnya.
Peneliti menjelaskan bahwa dalam system operasi Windows, ada driver penting yang disebut tcpip.sys yang memiliki beberapa fungsi yang dapat dieksekusi melalui permintaan IO perangkat ke lapisan mode kernel WPF ALE (Application Layer Enforcement) untuk melakukan pemfilteran stateful.
Ron Ben Yizhak mengatakan, "Permintaan IO perangkat dikirim untuk menjalankan WfpAleProcessTokenReference. Ini akan dilampirkan pada ruang alamat layanan, melakukan duplikasi token layanan yang dimiliki oleh SYSTEM, dan kemudian menyimpannya di dalam tabel hash."
Tool NoFilter mengeksploitasi WPF dengan cara ini untuk menggandakan token, sehingga berhasil mencapai tingkatan hak istimewa.
Dengan menghindari penggunaan panggilan DuplicateHandle, peneliti mengungkapkan bahwa hal ini dapat meningkatkan tingkat kerahasiaan. Selain itu, banyak solusi deteksi dan respons endpoint mungkin akan gagal mendeteksi tindakan jahat tersebut.
Mendapatkan Token Akses SYSTEM dan Admin
Metode kedua melibatkan trigger koneksi IPSec dan penyalahgunaan service Print Spooler untuk menyuntikkan token SYSTEM ke dalam tabel.
Dengan menggunakan fungsi RpcOpenPrinter, handle diambil untuk printer berdasarkan namanya. Dengan mengubah nama menjadi "\127.0.0.1," service terhubung ke host lokal.
Setelah panggilan RPC, beberapa permintaan IO perangkat ke WfpAleQueryTokenById diperlukan untuk mengakses token SYSTEM.
Menurut Yizhak, metode ini cenderung lebih tersembunyi dibandingkan dengan yang pertama karena mengkonfigurasi kebijakan IPSec yang biasanya merupakan tindakan yang dilakukan oleh pengguna yang memiliki hak istimewa yang sah, seperti administrator jaringan.
“Selain itu, kebijakan tersebut tidak mengubah komunikasi; tidak ada layanan yang terpengaruh olehnya dan solusi EDR yang memantau aktivitas jaringan kemungkinan besar akan mengabaikan koneksi ke host lokal.”
Metode ketiga yang diuraikan dalam postingan Yizhak memungkinkan perolehan token dari pengguna lain yang telah login ke system yang telah diinfiltrasi, dengan tujuan melakukan perpindahan lateral.
Peneliti mengatakan bahwa memungkinkan untuk memulai proses dengan izin dari pengguna yang telah login jika token akses dapat ditambahkan ke dalam tabel hash.
Peneliti mencari server Remote Procedural Call (RPC) yang beroperasi dengan hak akses dari pengguna yang telah login, kemudian menjalankan skrip untuk mengidentifikasi proses yang berjalan sebagai administrator domain dan mengekspos antarmuka RPC.
Untuk memperoleh token dan menjalankan proses tanpa batasan dengan hak akses pengguna yang telah login, peneliti memanfaatkan service OneSyncSvc dan SyncController.dll, yang merupakan komponen baru dalam ffensive tool.
Saran Deteksi
Peretas dan penguji penetrasi keamanan mungkin akan mengadopsi ketiga teknik tersebut karena melaporkannya ke Microsoft Security Response Center, perusahaan akan mengatakan bahwa perilaku tersebut sesuai dengan desain. Ini umumnya berarti tidak akan ada perbaikan atau langkah mitigasi yang diambil.
Meskipun lebih tersembunyi daripada metode lainnya, Deep Instinct tetap menyediakan beberapa metode untuk mendeteksi ketiga serangan tersebut dan merekomendasikan untuk mencari event berikut ini:
- Mengkonfigurasi kebijakan IPSec baru yang tidak cocok dengan konfigurasi jaringan yang diketahui.
- RPC memanggil Spooler/OneSyncSvc saat kebijakan IPSec aktif.
- Memaksa LUID token melalui beberapa panggilan ke WfpAleQueryTokenById.
- Permintaan IO perangkat ke perangkat WfpAle dengan proses selain service BFE.
Yizhak mempresentasikan tiga teknik baru ini dalam konferensi hacker DEF CON awal bulan ini. Semua detail teknis lengkap dapat ditemukan dalam postingan Deep Instinct.