EDRs — 用于EDR规避的红队工具:动态解析syscall ID、修补ntdll存根、解除IAT钩子,并列出主要EDR厂商挂钩的API。 | Kitploit
mr-un1k0d3r/edrsEDRs
用于EDR规避的红队工具:动态解析syscall ID、修补ntdll存根、解除IAT钩子,并列出主要EDR厂商挂钩的API。
2.2k35885个月前
EDRs

该仓库包含在红队演练中可能有用的 EDR 相关信息。
patch_syscall_dynamically64.c
这个概念验证程序会动态解析系统调用 ID,无需检查远程主机上运行的版本。为了获取磁盘上(未被篡改的)信息,会调用 CreateFileMapping 和 MapViewOfFile Windows API。然后解析 DLL 以获取数据,并用其修补正在运行的代码。
patch_syscall64.c
这个概念验证程序会修补代码中指定的系统调用 ID。随后使用硬编码的系统调用 ID 修补 DLL 的运行版本,并恢复到原始未修补状态。
get_syscall64.c
该工具用于获取与 Windows API 关联的系统调用 ID。
get_syscall64.exe ntdll.dll NtOpenProcess
ntdll.dll!NtOpenProcess at 0x00007FF873F6CAD0
NtOpenProcess syscall ID 0x00000026 (38)
unhookIAT.c
这个概念验证程序会检测 EDR/AV/恶意软件在导入地址表(Import Address Table)中放置的钩子,并将其替换为原始地址(由 xalicex 编写)。
Excel 版本的钩子列表
Markdown 版本的钩子列表
EDR 挂钩的 API
想要贡献?只需运行 hook_finder64.exe C:\windows\system32\ntdll.dll 并提交输出。
CrowdStrike 挂钩的 ntdll.dll API
较新的版本已不再使用 UMH,而是依赖内核回调,如下所示:
SentinelOne 挂钩的 ntdll.dll API
Cylance 挂钩的 ntdll.dll API(感谢 Seemant Bisht)
Sophos 挂钩的 ntdll.dll API
Attivo Deception 挂钩的 ntdll.dll API
CarbonBlack 挂钩的 ntdll.dll API(感谢 Hackndo)
Symantec 挂钩的 ntdll.dll API(感谢 CarsonSallis)
DeepInstinct 挂钩的 ntdll.dll API(感谢 P0chAcc0)
McAfee 挂钩的 ntdll.dll API
CheckPoint SandBlast 挂钩的 ntdll API
ESET endpoint Security 8.0.2028.0 挂钩的 ntdll API
TrendMicro 17.7.1130 挂钩的 ntdll API
Cortex XDR 挂钩的 API(内核模式)
⚠️ 这些钩子以内核模式设置,无法从用户模式取消挂钩。
Bitdefender 挂钩的 ntdll API
致谢
Mr.Un1k0d3r RingZer0 Team