20154301 Exp4 恶意代码分析
20154301 仉鑫烨
一、 实践内容
- 系统运行监控
- (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- (2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 恶意软件分析:分析该软件在
- (1)启动回连时
- (2)安装到目标机时
(3)其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
读取、添加、删除了哪些注册表项?
读取、添加、删除了哪些文件?
连接了哪些外部IP,传输了什么数据(抓包分析)?
二、 基础问题
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:重启计算机,并对计算机的注册表,进程,端口,服务等内容进行检测,并使用抓包软件进行抓包,通过观察注册表,进程等内容的变化筛选出可疑的对象,然后针对可疑的对象在抓包过程中具体分析,看看有没有可以的建立套接字(也就是连接其他IP地址)的可疑操作,观察可以对象的流量是否异常,对数据包类型解析看看是否有可疑的内容。||| 方法:①注册表信息的增添修改删除。②用来进行网络连接的IP地址端口号。③程序的一系列行为。④可以使用wireshark抓包分析,分析网络连接状态;查看软件注册表信息;使用SysTracer等软件查看一段时间内系统注册表信息文件标化情况,将这些信息录入excel分析。。
如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:①使用systracer工具,动态分析注册表修改情况,分析原因,这样做的目的,查看文件修改情况和端口情况并分析原因。②使用Wireshark进行抓包分析,查看该程序传输了哪些数据。
三、实验过程
系统运行监控
1. Windows计划任务schtasks
为实现每5min记录下有哪些程序在连接网络,输入以下命令:
schtasks /create /TN 20154301netstat /sc MINUTE /MO 2 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
释义:TN是TaskName的缩写,我们创建的计划任务名是20154301netstat;sc表示计时方式,我们以分钟计时填MINUTE;TR=Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口,MO 表示隔两分钟进行一次。
此命令完成后,每五分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里,但是不显示记录的时间和日期,这可能不便于我们判断,要是想显示日期和时间,我们可以通过bat批处理文件来实现。
在C盘要目录下建一个文件c:\netstatlog.bat(先把后缀设为txt,保存好内容后把后缀改为bat)
date /t >> c:\netstat4301.txt
time /t >> c:\netstat4301.txt
netstat -bn >> c:\netstat4301.txt
打开控制面板->任务计划程序,找到我们的任务20154301netstat
双击点开,找到操作,点击所有项里的属性选项:
可以对任务进行修改:找到操作选项卡,选择netstatlog.bat脚本。
修改成功后,显示:
问题:无法定时记录数据,需要打开最高权限。
可以看到记录文件netstatlog.txt中的记录有了时间:
接下来我们要做的就是等待,等记录项目够多了再进行分析。
这里我选择用excel进行分析:
打开Excel点击数据选项卡,在获取外部数据的方式上选择 来自文本,选择我们之前记录连接情况的文本netstatlog.txt:
选择分隔符号:
分隔符号全部选上:
列数据格式选择常规:
点击完成,在excel中格式见下图
首先去掉重复值:
最终删除1872个重复值,确定19项内容:
分析其用途
进程 | 应用 | 用途 |
---|---|---|
[vmware-hostd.exe] | 虚拟机 | 实验 |
[vmware-authd.exe] | 虚拟机 | 实验 |
[vmware.exe] | 虚拟机 | 实验 |
[YoudaoNote.exe] | 有道云笔记 | 实验 |
[WeChat.exe] | 微信 | 唠嗑 |
[360tray.exe] | 360安全卫士实时监控程序 | 安全软件 |
[360Game.exe] | 360游戏大厅 | ==???他咋老弹出来== |
[WINWORD.EXE] | 微软Microsoft Word的主程序 | 实验存图 |
[EXCEL.EXE] | 微软Microsoft Excel的主程序 | 实验数据分析 |
DiagTrack | 系统负责数据收集和错误信息 | |
[svchost.exe] | 微软Windows操作系统的系统程序 | |
[360se.exe] | 从动态链接库 (DLL) 中运行的服务 | |
[SGTool.exe] | 搜狗输入法的加速启动程序 | 打字 |
[360mobilesrv.exe] | 360手机助手 | ==360太流氓了自动上传数据== |
CryptSvc | 系统认证服务 | 微软公钥体系PKI |
总而言之我的电脑还是很安全的,但是360的流氓行为(自动后台打开360手机助手并偷跑流量)确实通过这次实验引起了我的注意。
2. Sysmon
明确监控目标
—— 网络连接、驱动加载、远程线程创建、进程创建、访问和结束等sysmon
微软Sysinternals套件中的一个工具,可以从码云项目的附件里进行下载,要使用sysmon
工具先要配置文件,一开始我直接用的是老师给的配置文件,创建配置文件20154301.txt(注:一定要以管理员身份运行):
<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>
</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:\Sysmoncfg.txt
指令对sysmon进行安装:启动之后,便可以到事件查看器里查看相应的日志,在"运行"窗口输入
eventvwr
命令(我是直接输的,这个命令在哪个目录输都可以的),打开应用程序和服务日志,根据Microsoft->Windows->Sysmon->Operational路径找到记录文件:我查看了其中一部分事件的详细信息,比如这个事件是之前做计划任务时所创建的:
例如下面的事件是360安全浏览器对文件的创建时间进行了更改,应该也就是更新:
将后门程序放入windows主机,在Kali下进行回连操作:
木马很可能伪装成电脑自带的explorer.exe进程
之后,我对Sysmoncfg.txt配置文件进行了修改,重点是监视80和443以及4301端口的联网情况
<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">SogouExplorer.exe</Image>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
<DestinationPort condition="is">4301</DestinationPort>
</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>
4301端口
443端口(忘了截图了)
3. virscan
不知什么原因virscan出现一些问题无法像上届同学一样使用,故我最终选择使用virustotal。
查看细节信息(我尽力想把它看懂,但是我没有)
4. systracer
点击take snapshot来快照,四个快照:1.将恶意软件植入到目标主机中后;2.恶意软件启动回连时;3.恶意软件执行dir命令进行查看时;4.恶意软件进行截屏操作时。
比较1、2,我们可以看到很多信息,包括IP及端口
恶意软件执行dir命令时无特殊信息,但在进行截屏操作时注册表信息有了修改:
5. 联网情况分析
在后门程序回连时,在主机的命令行中用netstat -n命令查看TCP连接的情况,可以发现其中有进行回连的后门程序:
回连时建立tcp连接
在后门程序回连时,打开wireshark,进行捕包分析,查看详细的协议分析发现,后门程序建立了三次握手并回连时进行了基于IP和端口的连接
6. Process Monitor
- 打开Process Monitor就可以就看到按时间排序的winxp执行的程序的变化,运行一下后门程序4301.exe,再刷新一下Process Monitor的界面,可以指定查找到程序。
7. PEiD
- PEiD是一个常用的的查壳工具,可以分析后门程序是否加了壳。
加壳
不加壳
8. Process Explorer
打开Process Explorer,运行后门程序4301.exe,在Process栏可以找到4301.exe
- 双击后门程序4301.exe一行,点击不同的页标签可以查看不同的信息:
TCP/IP页签有程序的连接方式、回连IP、端口等信息。
Performance页签有程序的CPU、I/O、Handles等相关信息。
四、实验体会
- 本次实验极为繁琐,由于对各种软件的不熟悉,消耗了很多时间,学长学姐们的报告给了我很多帮助。在实验中,我掌握了各类分析恶意软件的方法,也发现了自己电脑中平时没有关注到的流氓软件,十分受益。另外在本次实验的学习过程中,我对恶意软件的特征认识也有了很大的提升,比如筛选可以对象,查看是否含有建立套接字的可以操作等等。总之本次实验虽然麻烦,但收获良多。