2017-2018-2 20155315《网络对抗技术》Exp4:恶意代码分析
实验目的
- 是监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
教程
实验内容
- 系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
- 恶意软件分析
分析该软件在以下操作时的行为:- 启动回连
- 安装到目标机
- 及其他任意操作时
- 该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
实验步骤
(一)系统运行监控
根据netstat的结果分析程序连接
- 在c盘创建
netstatlog.txt
,用命令行创建计划任务C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
显示创建成功, - 在c盘的根目录下创建批处理文件
netstatlog.bat
,内容为
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
- 将任务中的脚本文件改为自己创建的
netstatlog.bat
- 点击创建的任务属性,使用最高权限运行该任务,运行之后就会每5分钟触发一次了。
- 昨天电脑开了整整一天,应该已经收集到很多信息了。今天我又打开上个实验的后门,希望能捕捉到我的后门程序
- 将信息导入Excel,使用透视表和图表进行分析。
- 我使用的是饼状图,可以看到有两个软件运行的最多,是QyFragment.exe和firefox.exe。
- 查找了一下发现QyFragment.exe是奇艺影音辅助程序
Our database contains 13 variants of the file "qyfragment.exe" with final rating Safe and zero variants with final rating Threat . (13个杀软都检测是安全的,0个杀软检测是有威胁的)
- 检测是安全的,继续查看信息。突然发现我捕捉的信息中有4个爱奇艺的软件,出现的频率都很高,上网查之后发现除QyPlayer.exe以外,另外3个软件都是流氓软件。反正也不大需要,就直接把爱奇艺卸载了。
- 将这四个软件筛选出去,出现最多的是svchost.exe,官方解释是:
Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个进程。
- 看来是正常的,继续排查。接下来的WpnService是个系统服务,但是wpn是什么没查到,可能是vpn。
- OneSyncSvc是个开机启动项,会频繁读取磁盘。这两个服务奇奇怪怪的,网上也查不到什么,继续看看有没有可疑的软件
- dosvc也是一个系统程序
此程序可以一次点击简单删除启动程序、浏览器辅助对象、工具栏、服务等。可以容易删除恶意广告软件、恶意代码、恶意软件、恶性程序、垃圾程序、特洛伊木马下载等。
- backgroundTaskHost进程属于照片应用的进程,modulecoreservice.exe是网络核心模块服务,除此之外,其他进程在三天的时间里联网的次数都小于3。
- 对剩下软件一个个查找,发现一个可疑的HxTsr.exe,查找了一下是outlook的一个进程。大部分网友认为其被伪装成病毒是因为它不断启动并随后消失,但是就我捕捉到的信息来看,它的联网次数只有2,应该是正常的插件。
- 综合来看联网比较多的大多是系统程序,但由于刚刚重装系统,系统里面应该不会有问题。查找了一下大多数电脑都会有这些自动运行的程序,但不排除病毒的可能性。
- 对连接数大于10的IP地址进行批量查询
- 手动分析完接下来就借助工具了。
使用sysmon监控系统运行
- 之前已经配置文件并启动sysmon,修改配置文件,添加检测HxTsr.exe的语句。
- 用
sysmon -c c:/Sysmoncfg.xml
使配置生效 - 进入
事件管理器
查看sysmon中的operational,可以看到事件5是关闭进程。查看的backgroundTaskHost进程,是照片应用进程。 - 事件1是创建进程,截取进程是svchost.exe,点击
system
显示它的parentImage是mmc.exe
mmc.exe是系统管理程序的一个框架程序,全称是Microsoft Management Console,它提供给扩展名为msc的管理程序一个运行的平台,比如组策略,系统清单,任务管理器,以及打印管理、本地安全策略等等,另外本进程也可能同时运行两个或更多个。
(二)恶意软件分析
恶意软件是通过读取、添加、删除注册表项或文件实现对靶机的控制的。
- 本次实验分析的是用
vs c+shellcode
直接生成的可执行文件,没有任何伪装。
virscan分析文件
- 使用virscan查看行为分析
- 文件信息
- 查看行为信息,其网络行为描述的套接字的连接就是我kali的IP地址
使用systracer
分析恶意软件
安装到目标机时
- 注册表修改了
HKEY_CURRENT_USER
的键值 - 注册表在键值中增加了
VirtualDesktop
- 注册表删除了
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters
的键值 - 新增了我的后门软件
- 删除了我的系统文件
- 新增了系统控制文件
- 连接外部ip
启动回连时
- 注册表新增了
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\HomeGroup\UIStatusCache
的键值,新增了用户组中的用户信息 - 注册表更改了UI的状态
- 注册表删除本地计算机中的一些用户策略了
- 更改了一些系统文件
- 删除了一些系统批处理文件
- 添加了一些trn文件
- 看到我的虚拟机和主机之间的通信
使用shell命令查看靶机系统信息
- 注册表新增了系统用户信息
- 注册表修改了
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\UserSettings
的键值 - 删除了旧的控制台信息
- 新增了控制台的配置文件
- 查看控制机和靶机之间的通信
实验中遇到的问题
- 一开始创建计划任务的时候命令行显示创建成功,但是打开任务计划显示错误代码为1,分析了一下应该是因为c盘中没有netstatlog.txt
- 运行计划任务时导出的文件中显示
请求的操作需要提升
,判断是权限不够造成的,选用最高权限运行
实验后问题回答
- 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 想监控的操作主要有网络连接、端口使用、CPU占用情况。
- 使用计划任务每隔一个固定时间运行一次控制台的
netstat
命令,对捕获到的信息进行批量分析。 - 可以使用sysmon,通过修改配置文件来监控觉得可疑的端口、软件和事件。
- 设置计划任务运行任务管理器查看cpu占用情况,监控可疑程序。
- 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 可以使用systracer拍摄快照,对程序或进程的可疑动作的前后进行对比,对比注册表、系统用户、系统文件的变化情况。
- 使用wireshark抓包,检测是否连接可疑的外部IP地址。
实验总结
这次实验的关键在于分析恶意软件的动作,通过使用各种工具分析,我可以知道恶意软件都做了些什么,是怎么通过修改系统的注册表、文件等等来做到的。这次用到的工具能帮助更好的保护电脑,这样我就可以在怀疑有恶意代码的时候先做一下基础检查了。