BestEdrOfTheMarket:一个针对AVEDR绕过的训练学习环境
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
关于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.exe DLLs/ Kernel32.dll ntdll.dll iat.dll TrigerringFunctions.json YaroRules.json jsoncpp.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传送门】
参考资料
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录