Image

Malware giriş.

Malware

BlackNullSec Path #7: Advanced Injection Techniques

🚀 Amaç: Sıradan Enjeksiyonların Ötesine Geç: Profesyonel Hackerların Kullandığı Sessiz ve Derin Yöntemler

    Advanced Injection Techniques
  • Process Hollowing
  • DLL Hollowing
  • Manual Mapping
  • Thread Hijacking
  • QueueUserAPC Injection
  • NtCreateThreadEx & Shellcode yükleme
  • NOT="İleride daha gelişmişi ve sessiz olanı apı ile degil internals ile yapacagız şimdi apı ile ")

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.

BlackNullSec
“Windows Belleğiyle Konuşan Kodlar”