20175103王伟泽《网络对抗技术》Exp4 恶意代码分析
一、实验前准备
1.监控系统
是监控你自己系统的运行状态,看有没有可疑的程序在运行。
2.恶意软件分析
分析后门软件在启动回连、安装到目标机、及进程迁移和抓屏操作时:
- 读取、添加、删除了哪些注册表项;
- 读取、添加、删除了哪些文件;
- 连接了哪些外部IP,传输了什么数据(抓包分析);
3.实验目的
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
4.指令学习
本次实验所用到的指令为schtasks,以下为一些用法举例:
/Create 创建新计划任务。
/Delete 删除计划任务。
/Query 显示所有计划任务。
/Change 更改计划任务属性。
/Run 按需运行计划任务。
/End 中止当前正在运行的计划任务。
/ShowSid 显示与计划的任务名称相应的安全标识符。
/? 显示帮助消息。
schtasks schtasks /query 查找任务计划;
schtasks /query /v schtasks /query /v /fo list 视图模式详细情况;
schtasks /query /v /fo csv 逗号分割列表;
schtasks /create /tn Mytask /tr notepad.exe /sc hourly /ru zly /rp windows每24小时执行。
二、实验内容
1.系统运行监控
首先打开待监控主机的CMD
,使用schtasks的指令:schtasks /create /TN schtasks5103 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:
etstatlog.txt"
来新添加一个任务计划。
然后新建一个文本文件schtasks5121.txt
并输入如下内容并保存退出:
date /t >> c:
etstat20175103.txt
time /t >> c:
etstat20175103.txt
netstat -bn >> c:
etstat20175103.txt
后将该文本文件修改文件扩展名为.bat
并将其复制到C:盘。
打开任务计划程序来编辑计划任务,找到新建的任务。
打开编辑,在下列选项中设置为不管用户是否登录都要运行。
进入操作中新建操作,将自建bat文件加入其中。
保存设置,运行任务netstat
来记录后台的数据。开启后继续正常使用大约两小时电脑,查看结果。
得到了文本资料,但是并不直观,这里我们使用Excel
对数据进一步加功。打开Excel
,选择文本导入,来我们的文本数据导入。
其中将所有分隔类型都选中。
可以看到最终数据都导入到了单元格中。
之后我们尝试将数据转为图像,来更直观的感受分析,首先打开插入,点击创建数据透视表,选中名称一列,点击确定。
完成创建后,会发现右方会出现数据透视表字段,在周三处,将无关的字段去除,如周三等。
最后可以看到如下结果。
数字很明显的跟在每一个程序后,这样就做了一个数据总结,但是我们还不满足,还没有得到图像。选中透视表,点击插入中的图表,插入柱状图,结果如下。
得到的图像如图所示,是不是很直观的可以看出使用频次,其中可以看到虚拟机所用次数最多,理所当然,因为我在不停做实验。
2.SysinternalsSuite
首先在码云资源中下载SysinternalsSuite,解压后打开文件夹,找到Sysmon64.exe
后打开属性,找到其产品版本。之后新建sysmon20175103.xml
,以文本方式打开后输入其中如下内容(版本改为自己产品版本):
<Sysmon schemaversion="10.12">
<!-- 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>
<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>
可以看到我的产品版本为10.42,结果如下。
以管理员身份运行CMD后,进入解压文件夹中,输入指令:Sysmon64.exe -i sysmon20175103.xml
来执行,期间会弹出如下页面,agree
即可。
安装成功。
打开主机事件查看器(本地),点击应用程序和服务日志,进入Microsoft
-Windows
-Sysmon
-Operational
来查看以之前建立的xml配置文件来记录的信息。
3.恶意软件分析
(此处我还遇到一个小问题,就是打开wireshark找不到合适的端口,后面经过尝试才发现因为我虚拟机用的是以太网三,是虚拟网络,需要把wireshark中虚拟端口显示打开才行,如图。)
进行Kali与Windows主机的互ping,然后进行抓包。
Kali进行反弹连接时的抓包
进行dir
操作后抓包,并且观察日志。
可以发现新增的日志。
执行getuid
操作查看作为服务器运行的用户,日志也同时更新了,其中可以看到调用了SearchFilterHost.exe
程序,它是一种桌面搜索引擎的索引程序,它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录,以及在Windows 7中添加到 Libraries 中的目录(Windows Vista 下的用户文件夹,如文档、图片、音乐、视频文件夹)。
输入指令:screenshot
来进行截屏,然后抓包和观察日志。
可以看到更新了两条记录。
输入指令:webcam_snap
来调用摄像头拍照,进行抓包和日志记录。
新增日志如下。
可以发现,相比起来,抓包不如日志分析来发现恶意软件的方式简单直接,原理也需要掌握更多,而sysmon能够检测到恶意软件调用部分功能时的行为并记录下来。
4.SysTracer
SysTracer是一款集成HIPS以及进程行为跟踪功能的安全辅助工具,它可以跟踪并监视进程对整个系统的修改行为,包括文件操作,注册表操作,内存操作和危险行为。SysTracer可以监视全部进程,或者用户指定的某一个进程及其子进程,并提供监视日志以帮助用户对特定进程的行为进行分析。JK汉化,全功能的原生便携版。你可在任何想要的时间获取无数个屏幕快照,可比较任何一对想要的屏幕快照,并且观察其间的不同之处。获取屏幕快照通常会持续几分钟的时间,取决于文件和文件夹的数量和注册表项目的总数。该软件特别推出一个非常高效的分析算法,比较两张屏幕快照可瞬间完成 。SysTracer 软件特性:—跟踪监视全部系统进程或者指定的某一个进程及其子进程。其功能如下:
- 通过日志方式记录文件写操作以及类似于机器狗病毒的直接写磁盘操作。
- 通过日志方式记录注册表写操作
- 通过日志方式记录危险的进程行为,比如加载驱动,在其它进程中创建远线程等。
- 跟踪指定进程时自动备份下该进程修改或者删除的文件,以便于恢复。
- 可以判断出某些高危险行为并冒泡提示用户。比如机器狗穿透感染,IEFO劫持等。
首先下载SysTracer,选择第二个,点击继续。
输入相应的端口,继续。
全选所有搜索区域,完成安装。
接下来开始使用,首先点击右方take snapshot
,进行五次不同记录来进行比较。他们分别是:
Snapshot #1
主机初始状态。Snapshot #2
植入恶意软件后Snapshot #3
恶意软件回连后Snapshot #4
进行相关的操作后Snapshot #5
退出恶意软件后
点击下方的view differences list
可以进行不同结果的对比。
1.2对比
2.3对比
3.4对比,可以看到有大量新增注册表值。
4.5对比,可以看到有部分数据被删除。
5.VirusTotal
将恶意软件传至VirusTotal上检测后,可以得到软件相关信息的分析。
三、实验总结
1.基础问题回答
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
按照实验中所做内容,可以设定一个任务计划去定时监控并记录下计算机系统的日志,然后去查看;
也可以去使用任务管理器检查正在运行的进程。此外可以通过查看端口开放情况的信息去检查是否有异常连接;
最后,也可以使用Process Explorer去查看程序调用dell库的情况来进行监控。
如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
可以借助VirusTotal来进行分析,利用上面的资源得到一些有用的信息;
之后可以查看该软件的权限,看是否有可疑权限;
使用实验中的systracer工具进行分析,查看注册表等情况的变化;
可以将其反汇编为源码,进行专业分析;也可以进行抓包分析,查看其网络连接情况。
2.实验心得
本次实验,相比于之前几次,操作难度小了不少,但是我认为它的实用性是不可忽视的,因为在以后我们更多的应该是对恶意软件的防御而不是攻击,因此学会如何找到恶意软件,怎么去分析了解是非常重要的。本次实验分析的内容较多,也涉及到很多新的工具需要学习,通过借鉴同学的学习经历,我也成功完成,希望能对自己有所帮助。