Ini adalah teknik injeksi DLL Windows Explorer yang menggunakan dialog ubah ikon di Windows.
Pertama, folder dibuat di direktori temp, dan properti folder dibuka menggunakan SHObjectProperties. Untuk mengambil pegangan jendela secara independen dari bahasa sistem, EnumWindows digunakan dengan fungsi panggilan balik yang memeriksa nama folder berbeda di setiap jendela yang terbuka.
Melalui halaman properti, dialog perubahan ikon dipanggil, yang pegangannya juga diambil dengan EnumWindows. Terakhir, jalur ikon diubah menjadi DLL (yang dalam hal ini memiliki ekstensi .ico), yang menyebabkan penjelajah memuat DLL setelah tombol OK ditekan.
"Ikon" sebenarnya adalah file DLL sederhana dengan ekstensi .ico yang membuka aplikasi kalkulator dengan sumber daya ikon yang ditambahkan menggunakan Resource Hacker.
Terdapat beberapa anomali pada tampilan ikon pada tampilan folder. Saya telah mengujinya pada dua versi Windows 10 yang berbeda (yang terbaru dan yang lebih lama) dan pada Windows 11.
Pada kedua versi Widnows 10, ikon yang disimpan di dalam DLL tidak ditampilkan ketika ekstensi diubah menjadi .ico
Namun, pada versi Windows 10 terbaru, ini berhasil sampai saya mencoba membuka "ikon" di dalam aplikasi foto. Sejak itu, saya belum dapat membuatnya kembali.
Di Windows 11, ikon ditampilkan seperti ikon biasa di tampilan Explorer. Namun, ketika dibuka di aplikasi foto, kesalahan ditampilkan.
Perilaku ini tentu menarik, karena pengguna yang hanya ingin mengubah ikon folder malah dapat menyuntikkan DLL berbahaya ke dalam explorernya. Ini mungkin terlihat seperti ini:
Ini adalah cara yang sangat tersembunyi untuk memasukkan DLL ke dalam proses Explorer karena tidak menggunakan API injeksi DLL biasa. Itu memang menghasilkan dua popup pendek, namun tidak terlalu mengganggu. Jadi ini bisa digunakan sebagai teknik penghindaran AV oleh aktor ancaman untuk mengeksekusi kode melalui proses penjelajah yang sah atau untuk memuat rootkit UMD.
Selain itu, menyebarkan DLL yang disamarkan sebagai file .ico mungkin merupakan vektor serangan yang menarik.
Untuk mendapatkan penanganan jendela yang tepat, saya menggunakan Spy++, yang merupakan alat yang diinstal dengan Visual Studio.
Terima kasih banyak kepada Bill G. dari Microsoft untuk ikon folder yang indah!
Terima kasih, pria acak di internet, untuk ikon injeksi yang cantik!