BlackNullSec Path #7: Advanced Injection Techniques
🚀 Amaç: Sıradan Enjeksiyonların Ötesine Geç: Profesyonel Hackerların Kullandığı Sessiz ve Derin Yöntemler
Process HollowingDLL HollowingManual MappingThread HijackingQueueUserAPC InjectionNtCreateThreadEx & Shellcode yüklemeNOT="İleride daha gelişmişi ve sessiz olanı apı ile degil internals ile yapacagız şimdi apı ile ")
Advanced Injection Techniques
1. Process Hollowing
Mevcut bir işlemin içi boşaltılır ve zararlı kod onun yerine enjekte edilir. Genellikle svchost.exe, explorer.exe gibi meşru işlemler hedef alınır.
Süreç:
CreateProcess ile hedef proses "suspended" modda başlatılır.
ZwUnmapViewOfSection ile orijinal bellek boşaltılır.
Zararlı PE (EXE) VirtualAllocEx ile belleğe yazılır.
SetThreadContext ile giriş noktası ayarlanır ve işlem devam ettirilir.
Avantaj: Davranışsal tespitten kaçmak için idealdir. Antivirüs yazılımları sıklıkla zorlanır.
2.DLL Hollowing
Hedef süreç içerisine zararsız bir DLL inject edilir ancak sonradan içeriği değiştirilerek zararlı hale getirilir.
Süreç:
Proses içerisine bir DLL inject edilir.
Bellekteki DLL bölgesi VirtualProtectEx ile yazılabilir yapılır.
Orijinal fonksiyonlar üzerine zararlı kod bindirilir veya overwrite edilir.
Senaryo: Meşru DLL’ler içindeki DllMain fonksiyonu yerine kendi shellcode'unu yazmak.
3.Manual Mapping
Windows'un standart LoadLibrary/LdrLoadDll API'lerini kullanmadan bir DLL’i doğrudan belleğe manuel olarak enjekte edip çalıştırmak.
Süreç:
DLL dosyası diskteki PE formatında okunur.
VirtualAllocEx ile uzakta boş alan açılır.
PE header, section’lar manuel kopyalanır.
Relocation ve import table çözülür.
Entry point elle çağrılır (CreateRemoteThread, NtCreateThreadEx, QueueUserAPC gibi).
Avantaj: DLL hiç diske yazılmaz, LoadLibrary izi bırakmaz. Anti-virüs tespiti çok zordur.
4.Thread Hijacking
Hedef prosesin aktif thread’lerinden biri durdurulur, EIP/Context değiştirerek shellcode çalıştırılır.
Süreç:
OpenThread → SuspendThread
GetThreadContext → Shellcode adresine yönlendirme
SetThreadContext → ResumeThread
Senaryo: Aktif çalışan bir prosesin davranışlarını bozmadan zararlı kod enjekte etmek.
5.QueueUserAPC Injection
Bir thread’in bekleme listesine shellcode içeren bir APC (Asynchronous Procedure Call) kuyruğa alınır.
Süreç:
Hedef prosesin thread’leri OpenThread ile elde edilir.
QueueUserAPC ile shellcode adresi eklenir.
Eğer thread alertable durumda (SleepEx, WaitForSingleObjectEx) ise shellcode otomatik yürütülür.
Avantaj: Hiç yeni thread oluşturmadan işlem içerisine gizlice kod sızdırmak mümkün.
6.NtCreateThreadEx & Shellcode Yükleme
CreateRemoteThread yerine NtCreateThreadEx API’si kullanılarak shellcode uzaktaki prosese çalıştırılır. Bu API undocumented’dir, dolayısıyla çoğu güvenlik ürünü bunu izleyemez.
Süreç:
VirtualAllocEx → Shellcode için bellek ayrılır.
WriteProcessMemory ile shellcode yazılır.
NtCreateThreadEx çağrılarak shellcode çalıştırılır.
Avantaj: Daha az iz bırakır, geleneksel güvenlik çözümlerini atlatmak kolay
⚠️ Kritik Uyarı
Bu teknikler yalnızca eğitim amaçlıdır. Gerçek sistemlere uygulanması yasadışı olabilir. Asla gerçek ortamlarda test etme.
🌟 Sonraki Yazı: Process Apı
"Process API" dediğimizde, Windows’ta işlem (process) oluşturma, kontrol etme ve sonlandırma gibi işlemleri gerçekleştiren Windows API fonksiyonları kastedilir. CreateProcess ve OpenProcess konularına geçeceğiz.
“Windows Belleğiyle Konuşan Kodlar”
hacker