[VIP Research] AMSI Bypass: 2026 Obfuscation ve Memory Patching Teknikleri

0 Replies 1 Views
·

Leave a rating: [VIP Research] AMSI Bypass: 2026 Obfuscation ve Memory Patching Teknikleri

You have already rated this thread. Re-rating it will remove your existing rating or review.

Rating:

Raters: [VIP Research] AMSI Bypass: 2026 Obfuscation ve Memory Patching Teknikleri

Participants
Thread Starter #0
YASAL UYARI & SORUMLULUK REDDİ:Bu makalede yer alan bilgiler, kod parçaları ve teknikler tamamen siber güvenlik araştırmaları, eğitim ve savunma mekanizmalarının test edilmesi (Red Teaming) amacıyla hazırlanmıştır. Burada anlatılan tekniklerin izniniz olmayan sistemler üzerinde kullanılması TCK (Türk Ceza Kanunu) ve uluslararası yasalarca suç teşkil eder. Oluşabilecek yasal sorumluluk tamamen uygulayıcıya aittir.

1. Giriş: AMSI Nedir ve Neden Hedefte?

Microsoft, PowerShell, VBScript, VBA ve .NET gibi script tabanlı saldırıların artmasıyla birlikte AMSI (Antimalware Scan Interface) standardını geliştirdi. Eskiden antivirüsler sadece diske yazılan dosyaları tarardı. AMSI ise, bir script hafızada (memory) çalıştırılmadan hemen önce, kodun çözülmüş (deobfuscated) halini yakalar ve antivirüs motoruna (genellikle Windows Defender) gönderir.

Basitçe: Siz kodu ne kadar şifrelerseniz şifreleyin, script motoru o kodu çalıştırmak için mecburen çözecektir. AMSI tam bu "çözülme" anında devreye girer.

Bu makalede, AMSI'nin nasıl çalıştığını değil, nasıl manipüle edildiğini ve 2026 yılı itibarıyla modern Red Team operasyonlarında kullanılan gelişmiş kaçış (evasion) tekniklerini inceleyeceğiz.


2. Geleneksel Yöntemler Neden Artık Çalışmıyor?

Eskiden basit bir Base64 encoding veya değişken isimlerini değiştirmek yeterliydi. Ancak modern AV motorları ve EDR sistemleri artık şunları yapıyor:

  • AST (Abstract Syntax Tree) Analizi: Kodun yazım şekline değil, mantıksal akışına bakılıyor.
  • Davranışsal Analiz: AmsiUtils veya amsiInitFailed kelimeleri script içinde geçtiği an bayrak kaldırılıyor.
Bu yüzden 2026 trendi "Statik Obfuscation" değil, "Dynamic Memory Patching" (Dinamik Bellek Yamalama) üzerine kuruludur.


3. Teknik Derinlik: AmsiScanBuffer Patching (The Matt Graeber Method)

AMSI bypass tekniklerinin atası ve hala en geçerli mantığı, Matt Graeber tarafından keşfedilen yöntemdir. Mantık şudur:

AMSI, amsi.dll isimli bir kütüphane üzerinden çalışır. Bu DLL içinde AmsiScanBuffer adında bir fonksiyon vardır. Script çalıştığında bu fonksiyon çağrılır ve sonucu tarar. Eğer biz, scriptimiz çalışırken bellekteki bu fonksiyonun üzerine yazar ve ona "Her şey temiz, taramaya gerek yok" dedirtirsek, AMSI devre dışı kalır.

Teorik Uygulama (C# / PowerShell Mantığı)

Aşağıdaki mantıksal akış, bir saldırganın bellekteki AMSI fonksiyonunu nasıl manipüle ettiğini gösterir:

  1. amsi.dll kütüphanesini belleğe yükle (LoadLibrary).
  2. AmsiScanBuffer fonksiyonunun bellek adresini bul (GetProcAddress).
  3. O bellek alanının yazma izinlerini aç (VirtualProtect).
  4. Fonksiyonun başlangıç kodunu (opcode), her zaman "başarılı" dönecek şekilde değiştir (Patching).
Örnek Patch Kodları (Assembly):x64 sistemlerde AmsiScanBuffer genellikle 0x80070057 (E_INVALIDARG) hatasıyla veya temiz bir dönüşle manipüle edilir.

mov eax, 0x80070057 ; E_INVALIDARG değerini register'a atar
ret ; Fonksiyondan hemen çıkar

Bu 6 baytlık kod (hex: B8 57 00 07 80 C3) belleğe enjekte edildiğinde, AMSI tarama yapamaz.


4. 2026 Trendi: Obfuscation ve "Reflection" Teknikleri

Yukarıdaki "Patching" işlemi artık Defender tarafından biliniyor. Eğer scriptinizde "AmsiScanBuffer" kelimesi geçerse engellenirsiniz. İşte burada 2026 seviyesi karartma (obfuscation) devreye girer.

A. String Parçalama ve Yeniden Birleştirme

Defender "AmsiScanBuffer" stringini arar. Bunu atlatmak için string çalışma zamanında oluşturulur:

CODE
1234567# Basit bir örnek (Yöntem olarak)
$s1 = "Am"
$s2 = "siS"
$s3 = "canBu"
$s4 = "ffer"
$target = $s1 + $s2 + $s3 + $s4
# Sonuç: AmsiScanBuffer (Ama statik taramada görünmez)


B. Base64 ve XOR Şifreleme

Payload, karmaşık bir XOR algoritması veya AES ile şifrelenir. Script çalıştığı anda bellekte çözülür ve IEX (Invoke-Expression) ile çalıştırılır. Ancak modern Defender, IEX çağrılarını da hook ettiği için bu yöntem tek başına yetersizdir.

C. Rastgeleleştirilmiş (Polymorphic) Kod Yapısı

Her indirmede veya her çalıştırmada kendini değiştiren kod bloklarıdır. Değişken isimleri, fonksiyon sıraları ve gereksiz "çöp kodlar" (junk code) her seferinde rastgele üretilir. Bu, imza tabanlı taramayı imkansız kılar.


5. Blue Team (Savunma) Perspektifi: Nasıl Korunuruz?

Bir güvenlik uzmanı olarak bu saldırıları engellemek için şunlara dikkat etmelisiniz:

  1. Script Block Logging: Group Policy üzerinden PowerShell Script Block Logging açılmalıdır. Bu, obfuscate edilmiş kodun çözülmüş halini loglar.
  2. Constrained Language Mode (CLM): PowerShell'i kısıtlı modda çalıştırmak, bellek manipülasyonu yapan API'lerin (Add-Type, VirtualProtect vb.) çalışmasını engeller. AMSI bypass'ın en etkili ilacı budur.
  3. EDR Kullanımı: İmza tabanlı değil, davranış tabanlı (Behavioral Analysis) koruma sağlayan EDR çözümleri, bellekteki yetkisiz yazma işlemlerini tespit edebilir.

6. Kaynakça ve İleri Okuma

Bu alanda derinleşmek isteyenler için teknik referanslar:

  • Microsoft Docs: Antimalware Scan Interface (AMSI) Architecture
  • Matt Graeber: "AMSI Bypass Techniques" (Research Papers)
  • BlackHat USA: "Keep your enemies close: Obfuscation in the age of AI"
  • MITRE ATT&CK: T1562.001 (Impair Defenses: Disable or Modify Tools)

💡 VIP Notu:

Bu teknikler sürekli değişmektedir. 2026 yılında yapay zeka destekli AV motorları, kodun ne yaptığını anlamak için daha karmaşık sezgisel (heuristic) taramalar kullanmaktadır. Bu yüzden en iyi bypass, sisteme hiç "drop" yapmadan (Fileless), tamamen meşru sistem araçlarını (LOLBins) kullanmaktır.

You must be logged in to reply.

0 quotes selected