
Дроппер на C++ с самоинъекцией, основанный на различных техниках обхода EDR.
Этот проект представляет собой простой самоинжектирующийся дроппер на C++, ориентированный на POC по обходу EDR. Для его реализации я объединил использование Windows Thread Pooling для скрытия стека вызовов и использование 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