实践目标
1. 监控你自己系统的运行状态,看有没有可疑的程序在运行。
2. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
3. 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实践内容
系统运行监控
-
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
-
使用schtasks创建任务计划,使用netstat记录应用联网历史
-
按
windows+R
打开命令行 -
输入
schtasks /create /TN 20175120netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c: etstat5120.txt"
参数使用:
/TN : Task Name 任务名称
/sc : Schedule Type 计划类型 我设置的是 minute
/MO : modifier 编辑 指定具体时长,我设置为5,即5分钟启动一次
/TR : Task Run 指定要运行的命令,这里是netstat
-bn : b 表示显示可执行文件名 n 表示显示以数字形式显示IP&&PORT
任务创建成功之后即可在C盘找到netstat5120.txt
,打开可以看到
- 还可以在统计数据中加入日期和具体时间
- 创建'20175120netstat.bat'
在C盘新建一个文档20175120netstat.txt
输入:
date /t >> c:
etstat5120.txt
time /t >> c:
etstat5120.txt
netstat -bn >> c:
etstat5120.txt
点击文件
->另存为
下方选择所有文件
修改文件名为20175120netstat.bat
,保存
- 修改任务计划程序,启动bat文件
-
打开任务计划程序,双击
20175120netstat
-
修改
操作
中的程序或脚本
为20175120netstat.bat
- 确定完成后,可以查看
netstat5120.txt
- 使用excel查看统计数据,分析应用程序联网情况
点击数据
->导入数据
->确定
->下一步
到选择数据源
时,选择刚刚放数据记录的netstat5120.txt
到原始数据类型
时,选择分隔符号
,下一步勾选所有分隔符类型
创建完成后文档如下
删掉表格前三行(避免出问题)
在插入
中选择数据透视图
点击请选择单元格区域
的输入区域右侧小图标,选择需要分析的第二列,或输入Sheet1!$B:$B
,下方选择新工作表
确认后进入
点击左侧框后,在右侧勾选协议
,去掉应用程序名之外的项,将协议
拖入右下角值
框中,形成直方图
从图中可以看到,qmbrowser.exe
出现次数最多,因为我在写博客......wps.exe
第二,因为我在用excel........问题不大
就是不知道那个svchost.exe
和et.exe
是不是恶意代码....
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 确定要监控的目标
根据网上的资料使用轻量级工具Sysmon监视你的系统
我选择了以下项作为监控目标
DriverLoad 驱动加载
ProcessCreate 进程创建
FileCreateTime 文件创建时间
NetworkConnect 网络连接
CreateRemoteThread 远程线程创建
- 写好xml配置文件
5120sysmon.xml
<Sysmon schemaversion="4.23">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<ProcessCreate onmatch="include">
<ParentImage condition="end with">cmd.exe</ParentImage>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<CreateRemoteThread onmatch="include">
<TargetImage condition="end with">explorer.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
- 安装运行
sysmon.exe
,并在事件查看器
中进行查看
进入放置sysmon.exe
的文件夹下输入:
sysmon.exe -i C:5120sysmon.xml
右键windows
->搜索
->事件查看器
,打开应用程序和服务日志
->Microsoft
->windows
->Sysmon
->Operational
就可以看到筛选出来的监控项
打开一个记录项:
事件记录了应用程序的任务类别、记录时间,详细信息中记录了目的IP、目的端口号以及目的端口名称等信息
这是wps的应用程序信息,可疑程度不大,其他的事件我也大致扫了一遍,没有发现可疑应用
- 我试着用免杀实验中的后门程序做了回连,看日志是怎么记载的
我用的是jar包进行回连
回连成功了,但是我只找到了一个java.exe
与回连相关,日志记载如下
记录了目的IP和端口号,但没有看到这个后门的打开cmd.exe
的相关记录。
恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
- 使用
systracer
来进行分析
[systracer压缩包](http://www.skycn.net/soft/appid/30266.html)解压即用
- 对以下三个对后门的操作进行比较分析(后门以之前的win_mt_rt_250.exe为例)
1) 安装到目标机
2) 回连
3) 获取shell
- 通过抓取三个步骤后获得的快照即可进行对比分析
- 安装到目标机
- 首先获取无后门操作状态,得到
Snapshot #1
(因为我是在主机上操作的,所以时间比较漫长....)
2)获取后门移动到主机上之后的状态,得到Snapshot #4
(因为前面试验了几个.....)
- 实验分析
1) 应用程序更改
变化没有体现出来
2) 注册表更改
注册表这儿....没看明白,变化的量很多,但因为移入后门程序而改变的量不能确定,可能绿色部分都和后门相关
3) 文件更改
可以看到,win_mt_rt_250:5120.exe
被移入主机
4) 外部IP连接和数据传输
这里需要用到wireshark进行抓包分析
进行文件传输的是最上面第一个包、SYN包,发送连接请求,后续包都在超时重传
我们也可以看到主机IP192.168.5.41
与虚拟机IP192.168.5.250
,从而确定通信双方
返回目录
- 回连
获取回连之后主机的快照,并将其与后门移入那一步进行对比
1)应用程序更改
可以看到,发生变化的应用程序事件主要来源于win_mt_rt_250:5120.exe
回连的行为
从图中可用看出回连的过程中调用了很多的dll文件,而且基本都是windows固有服务,从行为中我们也可以发现后门的固有特点
凡是同时调用了以下部分dll文件的应用程序,或许都存在恶意行为
2) 注册表更改
在这一步我们可以看到,注册表发生了更改,我推测是虚拟机的状态发生更改导致的
3) 文件更改
这里的更改不知道是由于Systracer产生的还是回连产生的。
我发现很多地方都存在图中同样的修改
4) 外部IP连接和数据传输
回连后的包如上图,主机向虚拟机发送SYN包,同时三次握手建立连接,之后虚拟机向主机发送PSH包,传输了部分数据以修改注册表等信息
以上为传输的数据截图
然后虚拟机向主机发送大量的ACK包,使主机忙于回复ACK包,从而使得各种修改变得容易?
- 获取shell
获取linux得到主机shell之后的主机状态,与上一步对比
1) 应用程序更改
主要就是调用了主机的cmd.exe
,同时添加了很多dll文件以便后续操作
2) 注册表更改
在上一步同样的位置发生了变化,我推测也是由于虚拟机的变化导致的
3) 文件更改
发生的更改仍然与上一步相同,没有找到愿因.......
- 外部IP连接和数据传输
获取shell时,虚拟机向主机发送了PSH包,其中包含数据:
估计也是与注册表、文件的修改相关的数据.......
实验思考题
- (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
1.使用sysmon工具,在各方面通过事件查看器对应用程序进行监控
2.使用任务计划程序,并通过netstat指令对应用联网历史进行记录,统计联网数据,筛选出可疑程序
3.nmap扫描端口,确定有没有可疑连接
- (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
1.使用systracer截取快照,通过对比、应用程序启动、注册表、文件等发生更改的地方,获取恶意程序的启动原理
2.使用wireshark进行抓包,对其与主机的通信数据进行提取
实验体会
本次实验的难点主要在于分析通过工具获取到的数据,不管是sysmon、netstat,还是systracer、wireshark,使用起来还是比较方便的。
分析数据,就需要知道这些数据怎么和应用进程对应上,但我发现很多地方我都不清楚.......
但这次实验还是让我收获颇丰的,通过对这些工具的实用,我对于恶意代码的攻击和抵御方式又有了新的体会。这些工具都是可以应用于实际生活中的,善加利用这些方法也能让我有一个更加有保障的计算机环境。