静态特征提取:利用StudyPE查看PE文件结构,重点分析导入表函数;使用Strings工具提取可执行文件中的可读字符串,寻找URL、文件路径及注册表键值等敏感信息。
动态行为监控:通过Process Explorer查看进程句柄与加载的DLL库,利用Process Monitor设置过滤器,实时监控恶意代码运行时的文件写入、注册表修改及互斥量创建行为。
网络流量分析:配置Wireshark进行网卡流量抓包,分析恶意代码在运行过程中产生的DNS查询请求及数据传输内容,提取具体的网络指标特征。
步骤1:静态基础信息收集。
首先使用StudyPE工具打开Lab03-01.exe,查看其导入表(IAT),记录仅发现的ExitProcess函数,判断程序可能具备自退出特性。接着在命令行使用strings Lab03-01.exe命令或使用Strings工具扫描文件,搜索关键词如"http"、"software"等,记录下发现的域名www.practicalmalwareanalysis.com及注册表路径SOFTWARE\Microsoft\Windows\CurrentVersion\Run,初步预判其网络行为与自启动意图。
步骤2:进程行为动态监控。
运行Process Explorer工具,执行Lab03-01.exe程序。在进程列表中找到该进程,点击菜单栏View -> Lower Pane View -> Handles,查看下方窗格列出的句柄信息,查找名为WinVMX32的互斥量,验证其防多开机制。随后切换视图至DLLs,检查是否加载了网络库ws2_32.dll,从而证实该程序具备网络通讯能力。
步骤3:文件系统与注册表监控。
启动Process Monitor,点击过滤器图标,设置规则为Process Name -> is -> Lab03-01.exe,以屏蔽无关系统噪音。再次运行恶意样本,在事件列表中筛选RegSetValue操作,记录其对HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run键值的写入,名为VideoDriver。同时筛选WriteFile操作,确认恶意样本在C:\WINDOWS\system32\路径下创建了名为vmx32to64.exe的副本。
步骤4:网络流量特征捕获。
打开Wireshark软件,选择当前活动网卡启动抓包。在确保Process Monitor运行的同时,触发恶意代码运行。运行一段时间后停止抓包。在Wireshark显示过滤器栏输入dns.qry.name == "practicalmalwareanalysis.com",定位DNS查询包,确认其尝试解析的恶意域名。随后追踪TCP流,检查是否向该域名发送了包含256字节随机乱码的数据包,分析其载荷特征。
步骤5:系统残留验证。
最后,进入系统目录C:\WINDOWS\system32\,查找是否存在vmx32to64.exe文件,验证文件释放行为。运行regedit,导航至HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run项,检查右侧是否包含VideoDriver的字符串值,确认其自启动驻留机制是否建立成功,完成对感染特征的闭环验证。
实验结果
通过对恶意代码Lab03-01.exe的动静态综合分析,确认该程序运行时会创建名为WinVMX32的互斥量。它在运行过程中将自身拷贝至系统目录C:\WINDOWS\system32\vmx32to64.exe,并通过修改注册表HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下的VideoDriver键值实现开机自启。网络层面,程序通过DNS请求解析www.practicalmalwareanalysis.com域名,并发送了256字节的随机乱码数据,表现出明显的恶意网络通讯特征。
个人收获
本实验深入理解了恶意代码从静态混淆到动态执行的完整生命周期。我掌握了如何结合Procmon和Procexp绕过简单的反分析手段(如仅导入ExitProcess),认识到仅凭静态分析极易被误导。必须结合动态监控工具,才能准确揭示其真实的文件释放、注册表劫持及网络通讯意图,为后续的逆向分析及特征提取提供了准确的技术依据。
本文作者:Linxiong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!