1.基本介绍
Process Monitor是微软推荐的一款系统监视工具,能够实时显示文件系统、注册表(读写)、网络连接与进程活动的高级工具。它整合了旧的Sysinternals工具、Filemon与Regmon,其中Filemon专门用来监视系统中的任何文件操作过程,Regmon用来监视注册表的读写操作过程。
Filemon:文件监视器
Regmon:注册表监视器
同时,Process Monitor增加了进程ID、用户、进程可靠度等监视项,可以记录到文件中。它的强大功能足以使Process Monitor成为您系统中的核心组件以及病毒探测工具。
Process?Monitor可以帮助使用者对系统中的任何文件、注册表操作进行监视和记录,通过注册表和文件读写的变化,有效帮助诊断系统故障或发现恶意软件、病毒及木马。
Github下载地址:https://github.com/eastmountyxz/Security-Software-Based
2.使用场景
运行Process Monitor建议使用管理员模式,当你启动Process Monitor后,它就开始监听三类操作,包括:文件系统、注册表、进程。
文件系统
Process Monitor显示所有的Windows文件系统活动,包括本地磁盘和远程文件系统。它会自动探测到新的文件系统设备并监听它们。所有的系统路径都会被显示为相对于在用户会话中的一个文件系统操作的执行。想在列表中清除文件系统的操作,在Process Monitor工具栏上反选“文件系统”按钮,再按下可以增加对文件系统的监听。
注册表
Process Monitor记录所有的注册表操作并显示使用常见的注册表根键缩写来显示注册表路径(如HEKY_LOCAL_MACHINE 缩写为HKLM)。想在列表中清除注册表的操作,在Process Monitor工具栏上反选“注册表”按钮,再次按下可以增加对注册表的监听。
进程
在Process Monitor的进程/线程监听子系统中,它将跟踪所有进程/线程的创建和退出操作,包括DLL和设备驱动程序的加载操作。想在列表中清除进程的操作,在Process Monitor工具栏上反选“进程”按钮,再次按下可以增加对进程的监听。
网络
Process Monitor使用“Windows事件跟踪(ETW)”来跟踪并记录TCP和UDP活动。每个网络操作包括源地址和目标地址,还有发送和接受到的一些数量的数据,但不包括真实的数据。想在列表中清除网络的操作,在Process Monitor工具栏上反选“网络”按钮,再次按下可以增加对网络的监听。
性能分析
这个事件类可以在“选项”菜单中启用。当处于“启用”状态,Process Monitor扫描系统中所有活动的线程并为每个线程生成一个性能分析事件,记录了内核模式和用户模式的CPU时间消耗,还有许多在上个性能分析事件后已被线程执行的环境开关。
3.新闻事件
关于Procmon软件的传闻:曾经360隐私保护器曝出腾讯“窥私门”事件。当年的QQ聊天工具在暗中密集扫描电脑硬盘、窥视用户的隐私文件,另两款聊天工具MSN和阿里旺旺则没有类似行为。随即有网友曝料称,早有人通过微软Procmon(进程监视工具)发现QQ窥私的秘密。
据悉,微软这款Windows系统进程监视工具Procmon,通过对系统中的任何文件和注册表操作进行监视和记录,也能帮助用户判断软件是否存在“越轨”行为。与360隐私保护器相比,Procmon采用了类似的原理,但是监测对象更广泛,适合具备一定电脑知识的用户使用。
Procmon监测记录表明,当时的QQ会自动访问许多与聊天无关的程序和文档,例如“我的文档”等敏感位置,上网记录等。随后,QQ还会产生大量网络通讯,很可能是将数据上传到腾讯服务器。短短10分钟内,它访问的无关文件和网络通讯数量多达近万项!正常的聊天工具行为是只访问自身文件和必要的系统文件。
二.Procmon分析可执行文件1.常见用法
下载Procmon.exe软件后,直接双击启动,Procmon会自动扫描分析系统当前程序的运行情况。其中,下图框出来的4个常用按钮作用分别为:捕获开关、清屏、设置过滤条件、查找。最后5个并排的按钮,是用来设置捕获哪些类型的事件,分别表示注册表的读写、文件的读写、网络的连接、进程和线程的调用和配置事件。一般选择前面2个,分别为注册表和文件操作。
输出结果中包括序号、时间点、进程名称、PID、操作、路径、结果、描述等,监控项通常包括:
文件系统
注册表
进程:跟踪所有进程和线程的创建和退出操作
剖析事件:扫描系统中所有活动线程,为每个线程创建一个剖析事件,记录它耗费的核心和用户CPU时间,以及该线程自上次剖析事件以来执行了多少次上下文转换
为了更好地定制选择,可以在过滤器中进行设置(见上图),也可以在Options菜单中选择Select Columns选项,然后通过弹出的列选择对话框来定制列的显示。常用列的选择包括:
Application Details
– Process Name:产生事件的那个进程的名字
– Image Path:进程镜像的完整路径
– Command Line:命令行,用于启动进程
– Company Name:进程镜像文件中的企业名称。这个文本是由应用程序的开发者来定义的
– Description:进程镜像文件中的产品描述信息。这个文本是由应用程序的开发者定义的
– Version:进程镜像文件中的产品版本号。这个文本是由应用程序的开发者定义的
Event Details
– Sequence Number:操作在全体事件中的相对位置,也包括当前的过滤
– Event Class:事件的类别(文件,注册表,进程)
– Operation:特殊事件操作,比如Read、RegQueryValue等
– Date & Time:操作的日期和时间
– Time of Day:只是操作的时间
– Path:一个事件引用资源的路径
– Detail:事件的附加信息
– Result:一个完成了的操作的状态码
– Relative Time:一个操作相对于Process Monitor的启动后的时间,或者相对于Process Monitor的信息清除后的时间
– Duration:一个已经完成了的操作所持续的时间
Process Management
– User Name:正在执行操作的进程的用户账户名
– Session ID:正在执行操作的进程的Windows会话ID
– Authentication ID:正在执行操作的进程的登录会话ID
– Process ID:执行了操作的进程的进程ID
– Thread ID:执行了操作的线程的线程ID
– Integrity Level:正在运行的进程执行操作时的可信级别(仅支持Vista以上系统)
– Virtualized:执行了操作的进程的虚拟化状态
2.实例分析
下面我们采用分析开机自启动的某个“hi.exe”程序。注意,作者之前第36篇文章CVE漏洞复现文章中,将“hi.exe”恶意加载至自启动目录,这里分析它。
C:\Users\xxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
第一步,设置过滤器。打开软件Process Moniter,并点击filter->filter。
在弹出的对话框中Architecture下拉框,选择Process Name填写要分析的应用程序名字,点击Add添加,最后点击右下角的Apply。
第二步,执行被分析的应用。双击应用程序会弹出“计算器”。
可以看到Process Mointor监控到应用的行为。
第三步,查看可执行文件的位置。点击查找按钮,然后输入“CreateFile”。
找到该选项之后,我们右键点击“Jump To”。
我们可以去到该文件所在的文件夹下,即:
Win 7/10:C:\Users\xxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Win XP:C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
第四步,查看注册表选项。查寻文件“RegSetValue”。
右键选择jump to跳转到注册表。
可以看到注册表的内容,如果自启动还能看到相关键对的设置。
Windows自动重启运行的程序可以注册在下列任一注册表的位置。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
三.Promon分析压缩包接着我们分析该压缩包。
第一步,过滤器设置。打开软件Process Moniter,并点击filter->filter。在弹出的对话框中Architecture下拉框,选择Process Name填写要分析的应用程序名字,点击Add添加、Apply应用。注意,也可以增加其他过滤规则。
第二步,打开压缩包及某个文件。
未打开压缩包前运行结果如下图所示:
打开该压缩包中的“2020-02-22-china.csv”文件,这是作者Python大数据分析武汉疫情的开源代码,也推荐感兴趣的读者阅读。
Procmon显示了与WinRAR相关的操作,如下图所示。我们可以查看运行的进程、注册表等信息。
第三步,查询“china.csv”相关的文件。
可以看到临时文件,其路径为:
C:\Users\xxxx\AppData\Local\Temp\Rar$DIa14092.24700
第四步,右键点击“Jump To”跳转查看文件。
跟踪这个目录,在C盘对应目录下找到了这个文件,打开之后和本来打开的文件内容相同。
AppData\Local\Temp
它是电脑Windows系统临时存储的文件夹,会把浏览者浏览过的网站或者其它记录保存在这里。如果下次打开相应的地址,电脑会更快提取文件,甚至在没有网络时也能查看到。这是不安全的,你保密的文件文件也可能存在该位置,建议及时删除。
第五步,WinRAR压缩包内文件直接打开后,有两种关闭方式:先关闭打开的文件,再关闭打开的压缩包。另外一种方式是先关闭打开的压缩包,再关闭打开的文件。建议大家利用Process Moniter分析上述两种方式的不同点。
打开压缩包时加载的文件个数如下图所示。
先关闭word文件,再关闭winrar。注意,关闭word文件后,Process Monitor监测到了事件;再关闭winrar,Process Monitor也监测到了事件。
这仅是一篇基础性用法文章,更多实例作者希望深入学习后分享出来。比如监控某个目录下文件的创建、修改、删除、访问操作,从而保存日志为文件,以便日后分析。
WriteFile:写操作,依照文件大小可能产生多条
ReadFile:读操作,一次读会产生很多条
SetAllocationInformationFile:改写文件时触发
SetEndOfFileInformationFile:改写文件时触发
SetRenameInformationFile:重命名时触发
SetDispositionInformationFile:删除文件时触发
四.总结写到这里,这篇文章就介绍完毕,主要包括三部分内容:
Procmon软件介绍
Procmon分析可执行文件
Procmon分析压缩包文件加载项,包括进程和注册表
接下来,作者将采用该工具在虚拟机中分析恶意样本,涉及知识点包括:
文件活动行为分析:Procmon监控木马客户端的文件行为
注册表活动行为分析:Procmon监控木马客户端的注册表设置值行为
网络活动行为分析:Wireshark监控网络行为、TCP三次握手连接、被控端与控制端之间的通信过程
电脑