DLL Injection
DLL Injection adalah teknik untuk menyusupkan code ke dalam proses lain di Windows dengan cara menyisipkan file DLL ke proses target. Windows memang memberikan fitur ini untuk tujuan keamanan, sandboxing, dan juga pemrosesan grafik. Tetapi bisa juga disalahgunakan untuk menyusupkan file DLL yang 'jahat'. Kita dapat menggunakan serangkaian registry untuk melakukan teknik ini.
AppInit_DLLs
Path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
Semua DLL yang ada di registry ini akan diload ke proses yang menggunakan user.dll. Di Windows 8 ke atas, fitur ini mati secara default,
tetapi bisa diaktifkan lagi dengan registry tweak yang membutuhkan admin access:
RequireSignedAppInit_DLLs = 0
LoadAppInit_DLLs = 1AppCertDlls
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls
Semua DLL yang ada di registry ini akan diload ke proses yang membuat PROSES BARU. Contoh: kita akan membuat sebuah proses ketika membuka cmd.
Jika kita menulis perintah notepad, maka cmd akan membuat proses baru lagi untuk notepad.
Function-function yang digunakan untuk me-load DLL yang berada di registry ini:
- CreateProcess
- CreateProcessAsUser
- CreateProcessWithLogonW
- CreateProcessWithTokenW
- WinExec
ContextMenuHandlers
Path: HKEY_CURRENT_USER\Software\Classes\<AppName>\shellex\ContextMenuHandlers
Fungsi: DLL jadi shell extension di explorer.exe (biasanya buat nambah menu klik kanan).