上篇回顾:windows手工杀毒-寻找可疑进程之进程启动文件-CSDN博客
上篇我们介绍了如何通过进程启动文件寻找可疑进程,首先我们查看文件的数字签名,如果签名是合法的,且是正规公司的证书。基本可疑排除进程是可疑进程(这里我们不考虑证书私钥被泄露,白利用的情况)。如果没法确定文件的来源,可以通过文件的MD5值搜索是否是病毒文件,也可以使用沙箱检测文件。本篇介绍一种新的寻找可疑进程的方法,查看进程模块。
术语介绍:
文件格式:
每种类型的文件都有相应的文件标准,文件的内容按照对应的标准填充数据。比如PDF文件以十六进制串'0x25', '0x50', '0x44', '0x46', '0x2d'开头。
模块文件:
模块文件是一种可执行文件,在windows系统中,可执行文件按照PE文件格式存储,常见的可执行文件有exe文件,dll文件,sys文件等。进程在运行时可以加载其他的可执行文件,这些被加载的可执行文件就是进程中的模块文件
Dll劫持技术:
进程启动时会加载Dll文件,操作系统会按照配置,从不同的路径中搜索dll文件。比如从进程启动目录中,从系统路径中,从环境变量配置等路径中,按照搜索的优先级加载dll,并加载高优先级路径中的dll。黑客通过将dll文件放置在高优先级的目录下,从而让进程加载恶意dll,实现劫持加载
如何获取进程模块列表:
今天介绍工具 Procexp.exe,这款工具是微软提供的用来查看进程相关信息的工具 进程资源管理器 - Sysinternals | Microsoft Learnhttps://learn.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
软件初始界面即可看到运行中的进程列表。 单击View菜单,选中Lower Pane View,单击Dlls,打开进程模块列表。
图中显示的是DouyuUpdate.exe进程的模块列表
如何判断恶意模块文件
1. 根据公司名称判断恶意模块文件
着重排查非微软公司的或公司名为空的模块。nls文件是windows的字体文件格式,可初步忽略
2. 根据模块加载路径判断恶意模块文件
系统dll基本上都在系统目录下,如果发现某个系统dll在其他路径下加载,那多半是被劫持了,那这就是一个恶意模块文件
3. 校验模块文件数字签名
查看模块文件数字签名的完整性
4. 检查模块文件
使用沙箱分析模块文件是否是恶意文件
5. 逆向分析模块文件
可以静态分析模块调用api,分析模块文件行为
6. 动态调试模块文件
可以利用windbg,x64debug等软件调试模块文件,分析文件行为