
دروبر (dropper) مكتوب بلغة C++ يقوم بالحقن الذاتي، ويعتمد على تقنيات متعددة لمراوغة أنظمة كشف والاستجابة للنقاط الطرفية (EDR).
يتكوّن هذا المشروع من برنامج قاذف (dropper) بسيط مكتوب بلغة C++ يقوم بالحقن الذاتي، ويركّز على إثبات مفهوم (POC) للتهرب من حلول كشف الاستجابة للنقاط الطرفية (EDR). لتنفيذه، جمعت بين استخدام Windows Thread Pooling لإخفاء تتبع الاستدعاءات (call stack) واستخدام indirect syscalls لتجنّب خطافات NTDLL.
2023-10-08-23-22-35-Trim
image
image
image
image
كما يظهر في الصور، يقوم كود Cordyceps بقفزة إلى ntdll لاستخدام إحدى تعليمات syscall. يجب اعتبار هذا إجراءً خبيثًا؛ لكن عند تنفيذ العودة في ntdll، نعود إلى كود tpWorker الموجود داخل ntdll. وهكذا، من منظور برنامج مكافحة الفيروسات (AV)، سيبدو أن ntdll يقوم باستدعاء جزء آخر من ntdll، وهو أمر لا يُعتبر خبيثًا.
nasm -f win64 .\Assembly.asm -o .\Assembly.obj
g++ -o poc.exe main.cpp Assembly.obj
https://0xdarkvortex.dev/hiding-in-plainsight/
https://redops.at/en/blog/direct-syscalls-vs-indirect-syscalls
https://captmeelo.com/redteam/maldev/2022/05/10/ntcreateuserprocess.html
https://klezvirus.github.io/RedTeaming/AV_Evasion/StackSpoofing/
https://medium.com/@sruthk/cracking-assembly-fastcall-calling-convention-in-x64-c6d77b51ea86