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 版本的钩子列表
由 Vincent Yiu 整理的 EDRs.xlsx
Markdown 版本的钩子列表
由 Vincent Yiu 整理的 EDRs.md
EDR 挂钩的 API
想要贡献?只需运行 hook_finder64.exe C:\windows\system32\ntdll.dll 并提交输出。
CrowdStrike 挂钩的 ntdll.dll API
CrowdStrike 钩子列表
较新的版本已不再使用 UMH,而是依赖内核回调,如下所示:

SentinelOne 挂钩的 ntdll.dll API
SentinelOne 钩子列表
Cylance 挂钩的 ntdll.dll API(感谢 Seemant Bisht)
Cylance 钩子列表
Sophos 挂钩的 ntdll.dll API
Sophos 钩子列表
Attivo Deception 挂钩的 ntdll.dll API
Attivo 钩子列表
CarbonBlack 挂钩的 ntdll.dll API(感谢 Hackndo)
CarbonBlack 钩子列表
Symantec 挂钩的 ntdll.dll API(感谢 CarsonSallis)
Symantec 钩子列表
DeepInstinct 挂钩的 ntdll.dll API(感谢 P0chAcc0)
DeepInstinct 钩子列表
McAfee 挂钩的 ntdll.dll API
McAfee 钩子列表
CheckPoint SandBlast 挂钩的 ntdll API
CheckPoint SandBlast 钩子列表
ESET endpoint Security 8.0.2028.0 挂钩的 ntdll API
ESET 钩子列表
TrendMicro 17.7.1130 挂钩的 ntdll API
TrendMicro 钩子列表
Cortex XDR 挂钩的 API(内核模式)
⚠️ 这些钩子以内核模式设置,无法从用户模式取消挂钩。
Cortex XDR 钩子列表
Bitdefender 挂钩的 ntdll API
Bitdefender 钩子列表
致谢
Mr.Un1k0d3r RingZer0 Team
以及整个社区 <3