2018-2019-2 网络对抗技术 20165337 Exp4 恶意代码分析
1.实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容
2.1系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
** 2.2恶意软件分析**
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
实验过程
实验一:使用schtasks指令监控系统
使用管理员权限创建任务,输入如下指令
schtasks /create /TN netstat5303 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
命令创建计划任务:netstat5337
其中,TN是TaskName的缩写,我们创建的计划任务名是netstat5303;sc表示计时方式,我们以分钟计时填MINUTE;TR=Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
在C盘创建一个txt文件,然后写入下列代码:
date /t >> c:\netstat5337.txt time /t >> c:\netstat5337.txt netstat -bn >> c:\netstat5337.txt
然后将后缀名改为.bat
打开我的电脑,右键单击管理,点击任务计划管理,再点击任务计划程序库就可以看到自己刚刚创建的任务计划
双击任务点击编辑,点击浏览将“程序或脚本”改为netstat5337.bat批处理文件,确定即可。添加参数那里需要把其他的数据都删掉,在首界面要点击使用最高权限运行,否则的话就可能在C盘中无法创建txt文件。
执行此任务一段时间后你就会在C盘里面看见自己创建的netstat5337.txt
然后在Excel中把自己的数据进行系统性的分析,首先导入数据。
对表格进行统计做一些数据透视图,然后就可以更直观的看到那些应用程序进行了链接
从中发现谷歌浏览器联网次数最多,因为经常使用,尤其做实验的时候来回开网页
之后是小娜和金山,都是后台运行联网
其他就是一些后台应用软件
然后就是本地链接的地址
192.168.1.226最多,可能是我的本机地址
外部地址:
链接最多的两个是117.18.232.200和128.58.101.49
这俩地址一个是澳大利亚一个是美国
实验二:系统监控——Sysmon工具
Sysmon是微软Sysinternals套件中的一个工具,能监控几乎所有的重要操作。
首先我们根据实验指导书中的链接下载一下Sysinternals套件,下载下来之后解压,这里一定要注意!!!千万不要直接解压到当前文件夹,一堆看不懂的文件安排的明明白白,一定要建个文件夹解压!!!
接下来,新建并编辑配置文件C:\20165337.xml exclude相当于白名单,里面的程序或IP不会被记录,include相当于黑名单,可以把自己想监控的写到黑名单中
这是xml文件内容
<Sysmon schemaversion="3.10">
<!-- 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>
使用命令sysmon.exe -i C:\20165337.xml进行Sysmon的配置更新与启动
之后在win10环境下,在我的电脑右键——管理——事件查看器——应用程序和服务日志——Microsoft————Windows——Sysmon——Operational。这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等。
事件识别码1 :进程建立
事件识别码2 :进程更改了文件创建时间
事件识别码3 :网络连接
事件识别码4 : Sysmon服务状态已变更
事件识别码5 :进程已终止
事件识别码6 :已载入驱动程式
事件识别码7 :已载入影像
事件识别码8 :创建远程线程
事件识别码9 : RawAccessRead
事件识别码10 :进程访问
事件识别码11 :文件创建
事件识别码12 :注册事件(创建和删除对象)
事件识别码13 :注册事件(值集)
事件识别码14 :注册事件(键和值重命名)
事件识别码15 :文件创建流哈希
事件识别码255 :错误
观察一个事件识别码为1的详细信息,谷歌浏览器建立的进程
观察一个事件识别码为5的详细信息,可以看到这是一个有关搜狗输入法的进程终止事件
观察一个事件识别码为2的详细信息,迅雷更改文件创建时间,不知道为什么...
之后打开kali虚拟机,然后使用我们实验三中的后门文件进行回连,然后观察回连成功后的日志
可以看到20165337.exe后门程序创建了网络连接,这应该就是后门回连的时候创建的网络连接使用tcp连接。
接下来我输入照相指令看一下又创建了哪些进程,从图上看到,启动了driver。我猜是启动了相机的驱动程序,而且事件识别码也是6:已载入驱动程式
接下来进行截屏的操作,从图上看出来进行了网络连接,应该是截了屏之后把数据传过去了,所以才会有网络连接,事件识别码3 :网络连接
实验三:恶意软件分析
先把自己的后门软件上传的网站上看一下,很容易被检测到
使用systracer进行分析
首先下载systracer
之后运行程序
我分别创建了四个快照:
1.初始状态,2.成功回连,3.远程操作,4.结束链接:
点击右下角的比较,查看变化
这是注册表,在进行kali回连的时候对很多注册表项都进行了改变
再看文件,不少文件发生变动,尤其是exp4.exe,是我这次的后门文件
应用程序的变化,主要的还是我的后门程序exp4.exe
接下来用wireshark抓包分析连接了哪些外部IP,传输了什么数据
设置主机host为192.168.1.184我的kali虚拟机的IP地址,然后回连看抓到了哪些东西
发现大部分的包都是请求的tcp三次握手请求建立的包,可能他是在大量的发送请求命令然后进行连接
然后打开一个命令包,发现就是三次握手请求建立
然后进行截屏或者录像等操作
发现还只是一堆tcp包,打开一个
正常的三次握手
使用Process Monitor进行分析
Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常 有用。 这是一个高级的 Windows 系统和应用程序监视工具,由优秀的 Sysinternals 开发,并且目前已并入微软旗下,可靠性自不用说。
运行后门程序进行回连后打开软件,找到后门程序
进程的详细信息
实验中的问题:
1.在任务计划程序库里配置完成后不能点击确定,出现任务出错,错误消息,一个或多个的指定的参数无效
窗口,百度了之后解决了。问题链接:https://zhidao.baidu.com/question/1383075504353290300.html?fr=iks&word=��������%2C������Ϣ%2Cһ����������ָ���IJ�����Ч&ie=gbk
2.sysmon那一栏没有,重启电脑之后好了
心得体会
通过这次实验我学会了检测自己电脑里的软件都干了些啥,能搞明白自己的网速,性能都去哪了,这种了解自己电脑的过程感觉很美好,感觉自己终于能对自己的电脑有所掌控了