このプロジェクトは、EDR回避に焦点を当てたPOCである、シンプルなC++製のセルフインジェクションドロッパーで構成されています。これを実装するために、コールスタックを隠すための Windows Thread Pooling と、NTDLLでのフッキングを回避するための 間接システムコール の使用を組み合わせました。
2023-10-08-23-22-35-Trim
image
image
image
image
画像からわかるように、Cordycepsのコードは、syscall命令の1つを利用するためにntdllへのジャンプを実行します。これは悪意のある動作と見なされるべきですが、ntdll内でリターンを実行すると、ntdll内に位置するtpWorkerのコードに戻ります。したがって、アンチウイルス(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