SysinternalsSuite工具使用之Procmon
SysinternalsSuite工具箱是windows系统上强大的系统辅助套装,Procmon是其中最常用的工具之一,是Windows系统下最好用的实时监控工具,功能强大、稳定、兼容性好。可用于监控文件系统、进程线程活动、网络、注册表活动,能够对Windows系统全局事件进行监控,并提供强大的过滤功能,我认为就是监控Windows系统的wireshake。主要用途如下:
- 注册表:监控注册表的创建、读取、删除或查询操作。
- 文件系统:监控本地磁盘或网络驱动器中文件的创建、写入、删除等操作。
- 网络:监控进程的 TCP/UDP 源和目标及流量。
- 进程:可以被动监控进程和线程的活动,包括线程的启动或退出等。不过通常情况下我们都使用 Process Explorer 来监控进程。
- 性能分析:Process Monitor 还可以捕获进程的 CPU 时间和内存使用,通常情况下这些信息我们也主要依赖 Process Explorer 来监控分析
##原理
ProcMon是由FileMon、Regmon等几个程序功能集合发展而来的,在之前的版本中系统工具中一般是采取hook一些内核关键函数的方式,通过hook函数获得系统调用信息(恶意软件的Rootkit实现方式也基本这样),各个监控软件都有不同的实现,导致软件兼容性不好,不同的hook实现效果也不一样。在Windows vista之后的x64系统,为了系统稳定性防止内核代码被patch而引入了PatchGuard技术,这样之前的hook方式就不能用了,但是微软提供了一个过滤框架方便安全软件及一些系统监控软件(其实之前就有了,但是能用为什么要改呢),Procmon实现方式就是利用这些过滤函数,兼容性相当好。
大概如下:
进程线程:
PsSetCreateProcessNotifyRoutine、PsSetLoadImageNotifyRoutine(Ex)、PsSetCreateThreadNotifyRoutine、PsSetLoadImageNotifyRoutine等
文件:
FltRegisterFilter等
注册表:
CmRegisterCallback(Ex)、DbgkLkmdRegisterCallback
##用法
具体用法参考Procmon参考文档,英文看起来比较麻烦的可以看中文【翻译】Process Monitor中文手册
##使用情景
###辅助分析病毒
【原创】纯小白系列之病毒分析(一)
###分析系统启动记录
利用ProcMon的boot
logging功能先创建监控记录,然后可以通过一些过滤条件得到系统启动记录。
进程启动

进程启动监控过滤条件:operation is Process Create
启动过程

dll劫持
具体内容看这深入解析DLL劫持漏洞

###溯源追踪
找出一些设置的注册表值
1.先分析某个操作的具体动作,设置过滤条件
2.开始动作,抓取行为信息,分析PML抓取结果
通过堆栈查看功能查看某个功能API调用
##可能不足的地方
1.不能看到每个操作的具体具体数据
2.不能直接像wireshake一样Follow一个事件,需要自己设置filter条件