基于ETW的POC,用于识别直接和间接的系统调用。

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/thefLink/Hunt-Weird-Syscalls

Hunt-Weird-Syscalls

这是一个基于ETW的POC,用于监控异常的系统调用。

目前,监控NtOpenThreadNtSetContextThread这两个系统调用,以识别直接和间接系统调用的指标。

描述

该项目使用ETW,更准确地说是基于内核的ETW提供程序来监控指标。
位于内核中的ETW提供程序可以有效地利用,因为发出的事件的调用跟踪包含了进行系统调用的用户模式地址。

这允许监控指标,指示直接和间接的系统调用,这是威胁行为者经常利用的技术:

1:从不受信任的模块(=直接系统调用)中进行系统调用
2:在ntdll中使用的系统调用存根与进行的系统调用不匹配(=间接系统调用)

该项目使用提供程序:Microsoft-Windows-Kernel-Audit-API-Calls,分别监控由系统调用NtSetContextThreadNtOpenThread触发的OpenThreadSetContextThread事件。
使用标志EVENT_ENABLE_PROPERTY_STACK_TRACE启用调用跟踪。

这是一个POC,仅监视两个特定的系统调用。当然,可以使用其他基于内核的提供程序来增强遥测。

测试

该项目包含两个示例程序,使用直接和间接系统调用创建,这些示例程序使用了令人惊叹的 SysWhispers3。生成的方法如下:

python3 syswhispers.py -a x64 -m jumper_randomized --functions NtSetContextThread
python3 syswhispers.py -a x64 -m embedded --functions NtSetContextThread

执行后,应识别出异常的系统调用:

 

ad1a1b7183163443

 

10.0.19044上测试通过。

致谢

标签:工具分享, 主机安全