
Dropper C++ com auto-injeção baseado em várias técnicas de evasão de EDR.
Este projeto consiste em um dropper simples de autoinjeção em C++ focado em POC de evasão de EDR. Para implementá-lo, combinei o uso de Windows Thread Pooling para ocultar a call stack e o uso de indirect syscalls para evitar o hooking no NTDLL.
2023-10-08-23-22-35-Trim
imagem
imagem
imagem
imagem
Como pode ser visto nas imagens, a partir do código do Cordyceps, ele realiza um salto para ntdll para utilizar uma das instruções de syscall. Isso deve ser considerado uma ação maliciosa; no entanto, ao executar o retorno em ntdll, voltamos para o código de tpWorker, que está localizado dentro de ntdll. Assim, do ponto de vista do antivírus (AV), ntdll pareceria estar fazendo uma chamada para outra parte de ntdll, o que não é considerado malicioso.
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