DLL spoofing (pembajakan DLL)

Halo semuanya. Saat ini, OTUS telah membuka satu set untuk peluncuran kursus rekayasa balik yang diperbarui pada bulan April . Untuk mengantisipasi dimulainya kursus, kami secara tradisional menyiapkan terjemahan materi yang menarik.




Dalam sistem operasi Windows, aplikasi dan layanan saat startup mencari DLL yang diperlukan agar berfungsi dengan benar. Jika DLL ini tidak ditemukan atau pemuatannya diterapkan dengan cara yang tidak aman (DLL dipanggil tanpa menggunakan path lengkap), maka Anda dapat meningkatkan hak istimewa dengan memaksa aplikasi untuk mengunduh dan menjalankan file DLL berbahaya.

Perlu dicatat bahwa ketika aplikasi perlu mengunduh DLL, maka pencariannya dilakukan dalam urutan berikut:

  • Direktori tempat aplikasi tersebut diunduh
  • C: \ Windows \ System32
  • C: \ Windows \ System
  • C: \ Windows
  • Direktori kerja saat ini
  • Direktori dalam variabel lingkungan PATH pengguna
  • Direktori dalam variabel lingkungan sistem PATH

Langkah 1 - Proses dengan DLL Hilang


Langkah pertama adalah menemukan proses yang berjalan pada SISTEM dan mencoba memuat DLL yang hilang. Ini dapat dilakukan dengan menggunakan Sysinternals Process Monitor dengan menerapkan filter yang tercantum di bawah ini:


Filter Procmon untuk Mencari Proses yang Mengunduh DLL

Proses yang Hilang Monitor akan mengidentifikasi DLL yang hilang yang sedang dicoba dimuat oleh aplikasi dan menunjukkan jalur sebenarnya yang sedang dicari oleh DLL ini.


Sebuah proses dengan DLL yang hilang

Dalam contoh ini, suatu proses Bginfo.exetidak memiliki beberapa file .dll yang dapat digunakan untuk meningkatkan hak istimewa.

Langkah 2 - Izin Folder


Jika perangkat lunak diinstal di direktori C:\sebagai gantinya C:\Program Files, maka secara default pengguna yang diautentikasi akan memiliki akses tulis ke direktori ini. Selain itu, perangkat lunak seperti Perl, Python, Ruby, dll. Biasanya ditambahkan ke variabel PATH. Hal ini memungkinkan untuk meningkatkan hak istimewa, karena pengguna dapat menulis DLL berbahaya ke direktori ini, yang akan dimuat pada saat proses dimulai dan mendapatkan hak untuk proses ini.


Izin folder yang lemah

Langkah 3 - Gantikan DLL


Menggunakan Metasploit, Anda dapat menghasilkan DLL payload sebagai sesi dengan hak istimewa layanan.


Generasi DLL Berbahaya

Proses ini Bginfo.exediluncurkan di bawah SISTEM, oleh karena itu setelah memulai ulang DLL jahat akan memiliki hak yang sama, karena DLL dimuat dan dieksekusi oleh proses ini.


Proses diluncurkan di bawah SISTEM.

Seperti yang ditunjukkan di atas, proses tidak dapat ditemukan Riched32.dll, jadi pentestlab.dllAnda harus mengubah nama menjadi Riched32.dll. Ini akan membingungkan aplikasi dan akan mencoba memuat DLL karena menurutnya itu adalah DLL yang sah. DLL jahat harus ditempatkan di salah satu folder tempat Windows mencari file DLL.


DLL berbahaya diganti nama dan dihosting

Seperti yang Anda lihat di bawah, ketika Anda me-restart layanan dengan menggunakan DLL spoofing, sesi Meterpreter dengan hak istimewa SISTEM terbuka.


Metasploit - Meningkatnya hak istimewa melalui spoofing DLL

Powersploit


Proses penggantian DLL dapat dilakukan melalui PowerSploit, di mana ada tiga modul yang akan membantu dalam menemukan layanan dengan DLL yang hilang, dalam menemukan folder dengan hak modifikasi dan dalam menghasilkan DLL.

Modul ini Find-ProcessDLLHijackakan menemukan semua proses dalam sistem yang mencoba memuat DLL yang hilang.


PowerSploit - Mendeteksi Proses dengan DLL Hilang

Langkah selanjutnya adalah mengidentifikasi folder tempat pengguna dapat memodifikasi konten. Folder akan ditemukan di mana DLL jahat harus dibuang.


Mendeteksi folder dengan hak untuk memodifikasi

Langkah terakhir adalah membuat DLL jahat di salah satu folder dengan izin Modify (M).


Buat DLL di folder dengan izin lemah

Kesimpulan


Untuk dapat meningkatkan hak istimewa melalui DLL spoofing, kondisi berikut ini harus dipenuhi:

  • Izin untuk menulis ke folder sistem
  • Menginstal perangkat lunak dalam direktori selain direktori default
  • Layanan yang berjalan di bawah SISTEM dan mencoba memuat DLL yang hilang
  • Layanan restart

Menemukan aplikasi yang tidak diinstal Program Filestidak sulit, karena selain dari aplikasi pihak ketiga yang tidak dipaksa untuk menginstal sepanjang jalur ini, ada berbagai program perangkat lunak khusus yang terletak di luar folder yang dilindungi ini. Selain itu, ada sejumlah layanan Windows, seperti IKEEXT (IKE dan AuthIP IPsec Keying Modules) dengan DLL yang hilang ( wlbsctrl.dll), yang dapat digunakan baik secara manual atau otomatis. Ada modul Metasploit khusus untuk IKEEXT:

exploit/windows/local/ikeext_service



.



All Articles