关于BestEdrOfTheMarket
BestEdrOfTheMarket是一个针对AV/EDR绕过的训练学习环境,广大研究人员和信息安全爱好者可以使用该项目研究和学习跟AV和EDR绕过相关的技术知识。
支持绕过的防御技术
1、多层API钩子;
2、SSH钩子;
3、IAT钩子;
4、Shellcode注入检测;
5、反射型模块加载检测;
6、调用栈监控;
工具下载
发布版本
广大研究人员可以直接访问该项目的【Releases页面】下载该工具的最新预编译版本。
源码下载
首先,我们需要在本地设备上安装并配置好最新版本的Visual Studio工具。接下来,使用下列命令将该项目源码克隆至本地:
git clone https://github.com/Xacone/BestEdrOfTheMarket.git
工具使用
Usage: BestEdrOfTheMarket.exe [args]/help 显示工具帮助信息和退出/v 开启Verbose模式/iat IAT钩子/stack 线程调用栈监控/nt I内联NT钩子/k32 内联Kernel32/Kernelbase钩子/ssn SSN攻击
工具使用样例
BestEdrOfTheMarket.exe /stack /v /k32
BestEdrOfTheMarket.exe /stack /nt
BestEdrOfTheMarket.exe /iat
项目结构&配置文件
BestEdrOfTheMarket/BestEdrOfTheMarket.exeDLLs/Kernel32.dllntdll.dlliat.dllTrigerringFunctions.jsonYaroRules.jsonjsoncpp.dll
YaroRules.json-包含了一个JSON数组,其中包含了在监控线程调用栈时需要识别的模式:
{"Patterns": ["d2 65 48 8b 52 60 48 8b 52 18 48 8b 52 20 48 8b 72 50 48","49 be 77 73 32 5f 33 32 00 00","..."]}
调用栈监控:建议目标为一个加密Shellcode加载器时,监控NtCreateFile函数,但如果目标是一个反射型加载器,并且使用了NtCreateUserProcess时,就不建议这样做了,因此,我们应该根据实际的情况选择要监控的NT层程序:
{"DLLBasedHooking": {"NTDLL.dll": ["NtAllocateVirtualMemory","..."],"KERNELBASE.dll": ["VirtualAlloc""..."],"KERNEL32.dll": ["VirtualAlloc""..."]},"StackBasedHooking": {"Functions": ["NtCreateUserProcess","..."]},"SSNCrushingRoutines": {"Functions": ["NtCreateSection""..."]},"IATHooking": {"Functions": ["VirtualAlloc","..."]}}
TrigerringFunctions.json-用于描述已经设置了钩子的函数;
DLLBasedHooking-不可修改,修改它的值没有任何意义;
StackBasedHooking-可以修改,用于指定需要监控的函数,这些函数被调用之后将触发工具对线程调用栈的分析;
SSNCrushingRoutines:可以修改,这里可以指定NT层程序;
IATHooking:可以修改,这里指定的函数将会在IAT层设置钩子;
工具使用演示
项目地址
BestEdrOfTheMarket:【GitHub传送门】
参考资料
Best EDR Of The Market