soneca7/sysmon-patch-tool

GitHub: soneca7/sysmon-patch-tool

通过内存补丁技术临时静默 Sysmon 事件记录的 Windows 安全研究与红蓝对抗辅助工具。

Stars: 0 | Forks: 0

# SysmonPatchTool 用于受控环境下的取证分析和反数字取证与恢复(Counter Digital Forensics and Recovery,CDFR)技术模拟的个人工具。 ## 功能 SysmonPatchTool 定位 Windows Event Log 服务进程,并在目标进程的内存中对 `NtWriteFile` 打补丁,从而暂时抑制 Sysmon 事件的写入。在可配置的时间间隔后,原始字节会自动恢复——系统不会发生永久性更改。 应用的补丁非常简单:`NtWriteFile` 存根的前 6 个字节被替换为 `MOV EAX, 0 / RET`,使函数在不写入任何内容的情况下返回 `STATUS_SUCCESS`。 基本流程: 1. 通过 SCM 定位 `eventlog` 服务的 PID 2. 在调用进程中启用 `SeDebugPrivilege` 3. 以内存读写权限打开目标进程 4. 在目标的 `ntdll.dll` 中解析 `NtWriteFile` 5. 通过 `NtProtectVirtualMemory` + `NtWriteVirtualMemory` 应用补丁 6. 监控 `Microsoft-Windows-Sysmon/Operational` 通道以检测静默状态 7. 自动恢复原始字节(默认:30 秒) ## 结构 ``` SysmonPatchTool/ ├── include/ │ ├── SysmonPatchLib.hpp # API pública │ └── SysmonPatchTypes.hpp # Tipos, enums, callbacks ├── src/ │ ├── api/ │ │ └── SysmonPatchLib.cpp # Facade da biblioteca │ └── core/ │ ├── SysmonPatchTool.cpp # Engine principal │ └── SysmonPatchTool.hpp └── examples/ ├── basic_usage/main.cpp └── advanced_usage/main.cpp # CLI interativa com callbacks ``` ## 编译 - Visual Studio 2022, MSVC v143 - C++17 - x64 Release - 以 **管理员身份** 运行 ## 基本用法 ``` #include using namespace SysmonPatch; int main() { if (!Library::Initialize()) return 1; Library::Patch([]() { // callback disparado quando o Sysmon para de gerar eventos }); Sleep(60000); Library::Restore(); Library::Shutdown(); } ``` ## 配置 ``` PatchConfig config{}; config.restoreDelayMs = 30000; // restaura após 30s config.eventAgeThresholdSec = 10; // considera "silêncio" após 10s sem eventos config.autoRestore = true; Library::SetConfig(config); ``` ## 用例 - 在 SIEM/EDR 管道中模拟规避窗口,以衡量检测时间 - 通过受控盲点培训事件响应分析师 - 研究 Sysmon 被静默时取证工具的行为 - 验证日志管道的完整性和连续性 ## 警告 仅在自己的系统上使用,或在获得明确授权的情况下使用。在生产环境中使用或未经许可使用可能是非法的。
标签:AMSI绕过, Awesome列表, C++, Conpot, ETW绕过, NtWriteFile, SeDebugPrivilege, Sysmon, Windows安全, 事件日志篡改, 云资产清单, 内存修补, 内联挂钩, 协议分析, 反取证, 威胁检测, 安全意识培训, 安全评估, 数字取证对抗, 数据擦除, 权限提升, 私有化部署, 端点可见性, 绕过技术, 逆向工程, 邮件钓鱼, 防御规避