EID 7045 triyaj sorgusu
Son 24 saat içindeki yeni servis kurulumlarını sorgula: `Get-WinEvent -FilterHashtable @{LogName='System';Id=7045;StartTime=(Get-Date).AddHours(-24)} | ForEach-Object { $xml=[xml]$_.ToXml(); [PSCustomObject]@{Time=$_.TimeCreated;Name=($xml.Event.EventData.Data|?{$_.Name -eq 'ServiceName'}).'#text';Path=($xml.Event.EventData.Data|?{$_.Name -eq 'ServiceFileName'}).'#text';Account=($xml.Event.EventData.Data|?{$_.Name -eq 'ServiceAccount'}).'#text'} } | Format-Table -AutoSize` — `ServiceFileName` `%windir%` veya `Program Files` dışındaysa yüksek öncelik
EID 4697 kim kurdu
Security logunda kurulumu yapan hesabı belirle: `Get-WinEvent -FilterHashtable @{LogName='Security';Id=4697;StartTime=(Get-Date).AddHours(-24)} | Select-Object TimeCreated,Message | Format-List` — yönetici olmayan hesap kurulumu kritik bulgu
Registry kanıtı al
SCM hive anlık görüntüsünü kanıt zinciri için dışa aktar: `reg export "HKLM\SYSTEM\CurrentControlSet\Services" C:\IR\services_export.reg /y`
Binary imza doğrula
Servis dosyasının dijital imzasını ve SHA-256 hash'ini al: `Get-AuthenticodeSignature -FilePath "<ServiceFileName>" | Select-Object Status,SignerCertificate` ve `Get-FileHash -Path "<ServiceFileName>" -Algorithm SHA256` — `NotSigned` veya `HashMismatch` yüksek şüphe; hash'i TI platformuyla karşılaştır
ServiceDll hijack taraması
`Parameters\ServiceDll` değerlerini beklenmeyen yol için tara: `Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services" -Recurse | Where-Object {$_.Name -like '*Parameters*'} | Get-ItemProperty -Name ServiceDll -ErrorAction SilentlyContinue | Where-Object {$_.ServiceDll -notmatch '^C:\\Windows\\' -and $_.ServiceDll -notmatch '^C:\\Program Files'} | Select-Object PSPath,ServiceDll`
Sysmon EID 13 korelasyonu
SIEM'de `ImagePath` veya `Parameters\ServiceDll` üzerindeki `RegistryEvent (Value Set)` olaylarını sorgula; `TargetObject` ve `Details` alanlarını kaydet — `services.exe`/`msiexec.exe`/`TrustedInstaller.exe` dışı imajdan gelen değişiklikler şüpheli
Unquoted path taraması
Tırnak içermeyen ve boşluk barındıran servis yollarını tespit et: `Get-CimInstance -ClassName Win32_Service | Where-Object {$_.PathName -match ' ' -and $_.PathName -notmatch '^"'} | Select-Object Name,PathName,StartMode`
Etkilenen kapsamı belirle
Aynı `ServiceFileName` SHA-256 hash'inin ortamdaki diğer makinelerde bulunup bulunmadığını EDR/SIEM ile sorgula; lateral yayılım değerlendir