FOOTHOLD Metodoloji Cheat-sheet
Post ✓ EXAM-SAFE orta

AMSI Bypass ve Defender Atlatma (Eğitimsel / OSCP)

PowerShell araçlarını (Nishang, PowerUp, mimikatz) çalıştırırken AMSI'nin bloklamasını aşma teknikleri: reflection ile amsiInitFailed yamalaması, string-obfuscation kavramı, amsi.fail/Invoke-Obfuscation, DefenderCheck ile imza tespiti ve admin olarak real-time protection devre dışı bırakma. Savunma/eğitim çerçevesinde anlatılır.

Bilgi: ÖN KOŞULLAR
  • Hedefte PowerShell çalıştırma
  • Real-time protection kapatmak için admin (opsiyonel)
  • Bypass mantığını anlamak için temel .NET reflection bilgisi
┌──

Komutlar

DefenderCheck ✓ EXAM-SAFE user
DefenderCheck.exe Invoke-Mimikatz.ps1
Bir dosyanın HANGİ baytının Defender imzasını tetiklediğini bulur — sadece o kısmı obfuscate etmek için. Kali değil, test makinesinde çalıştırılır. HackTricks — Antivirus (AV) Bypass / DefenderCheck
powershell ✓ EXAM-SAFE admin
Set-MpPreference -DisableRealtimeMonitoring $true
Admin yetkisiyle Defender real-time korumayı kapatma. Tamper Protection açıksa başarısız olur. HackTricks — Defender / Disabling Defender
powershell ✓ EXAM-SAFE admin
Add-MpPreference -ExclusionPath 'C:\Windows\Temp'
Bir dizini Defender taramasından muaf tutma — araçları bu dizinden çalıştırmak için (admin gerekir). HackTricks — Defender Exclusions
powershell ✓ EXAM-SAFE user
Get-MpComputerStatus | Select RealTimeProtectionEnabled,AntivirusEnabled,IsTamperProtected
Defender durumunu ve Tamper Protection'ı sorgulama — hangi bypass'ın mümkün olduğunu belirler. HackTricks — Defender Enumeration
sc ✓ EXAM-SAFE user
sc query windefend
Defender servisinin (WinDefend) çalışıp çalışmadığını kontrol etme. HackTricks — Windows AV Enumeration

AMSI Nedir ve Neden Önemli?

AMSI (Antimalware Scan Interface), PowerShell’e gönderilen script içeriğini çalışmadan önce AV motoruna gösteren bir köprüdür. Nishang reverse shell’i, PowerUp.ps1, Invoke-Mimikatz gibi araçlar bilinen imzalar taşıdığından AMSI bunları string seviyesinde yakalar ve IEX çağrısı çalışmadan bloklar. Bu sayfa, kendi lab/OSCP ortamında bu engeli neden ve nasıl aştığını eğitimsel olarak açıklar.

Enumerasyon — Önce Durumu Anla

Bypass denemeden önce neyle karşı karşıya olduğunu öğren: Get-MpComputerStatus ile real-time protection ve Tamper Protection durumunu sorgula. Tamper Protection açıksa Set-MpPreference ile Defender’ı kapatamazsın — bu durumda obfuscation/bypass yoluna gidilir. sc query windefend servisin aktif olup olmadığını gösterir.

1. AMSI Bypass — Reflection Kavramı

En yaygın teknik, System.Management.Automation.AmsiUtils sınıfındaki amsiInitFailed alanını .NET reflection ile $true yapmaktır. Bu, AMSI’nin başlatılamadığını düşünmesini sağlar ve tarama atlanır. Mantık şudur: tek bir bellek bayrağı değiştirilerek tüm sonraki script taramaları devre dışı kalır. Bilinen public one-liner’lar artık imza ile yakalandığı için, çalışan bir bypass genelde string’lerin parçalanıp runtime’da birleştirilmesini (concatenation) gerektirir — örn. sınıf/alan adlarını 'Amsi'+'Utils' gibi bölmek. Bu, AMSI’nin kendi imzasını gizlemek için zorunludur. [UNVERIFIED] hangi tam string-split varyantının güncel Defender’ı geçeceği sürekli değişir; bu yüzden ezber yerine kavramı bil.

2. String / Script Obfuscation

Araç imzasının tamamını gizlemek için:

  • amsi.fail — tarayıcıda rastgele/çalışan AMSI bypass snippet’leri üretir; her seferinde farklı çıktı verdiğinden imza tutmaz.
  • Invoke-Obfuscation — bir PowerShell script’ini token/encoding seviyesinde dönüştürerek statik imzaları kırar. PowerUp.ps1 gibi araçları geçirmek için kullanılır.

3. DefenderCheck ile Cerrahi Yaklaşım

Kör obfuscation yerine, DefenderCheck.exe script.ps1 ile dosyanın hangi tam baytının imzayı tetiklediğini bulup yalnızca o satırı değiştirmek çok daha verimlidir. Fonksiyon adlarını yeniden adlandırmak, yorumları silmek veya o bloğu base64’lemek çoğu zaman yeterli olur. Bu, mimikatz/PowerUp gibi büyük araçlarda standart iş akışıdır.

4. Admin ile Doğrudan Devre Dışı Bırakma

Zaten admin/SYSTEM isen bypass ile uğraşmaya gerek yoktur: Set-MpPreference -DisableRealtimeMonitoring $true real-time taramayı kapatır, Add-MpPreference -ExclusionPath ile araç dizinini muaf tutarsın. Önemli: Tamper Protection (Win10 1903+) bu komutları sessizce engelleyebilir; Get-MpComputerStatus’ta IsTamperProtected $true ise bu yol kapalıdır.

OSCP / Eğitim Notları

  • Bu teknikler savunma anlayışı (mavi takım için tespit) ve yetkili pentest için anlatılmıştır. AMSI bypass’ı OSCP’de standart bir tekniktir ve sınavda kullanımı serbesttir.
  • En sağlam yaklaşım: önce fileless çalıştırmayı dene (DownloadString), AMSI yakalarsa bypass uygula, hâlâ olmuyorsa DefenderCheck ile cerrahi obfuscation yap, admin’sen doğrudan kapat.
  • Disk yerine bellekte çalışmak (help-transfer’daki IEX yöntemi) on-disk AV taramasını da atlatır; AMSI ise bellek taraması olduğu için ayrıca ele alınmalıdır.
┌──

Kaynaklar

0/15 set