20154322 杨钦涵 Exp4 恶意代码分析
Exp4 恶意代码分析 Exp4 恶意代码分析
一、基础问题回答 |
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
①可以使用监控程序,帮助我们分析是否存在恶意代码
②如第二个实验使用sysmon,监控几乎所有的重要操作,并可通过事件查看器中找到日志查看。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
①利用wireshark动态分析程序动向。
②PE explorer工具,它可以对程序调用库等信息进行分析查看。
③利用systrace监控系统运行
二、实践过程记录 |
①监控系统运行
2.1 使用schtasks指令监控系统运行
1.先在C盘目录下建立一个netstatlog.bat
文件,用来将记录的联网结果格式化输出到netstatlog.txt
文件(自动生成)中,netstatlog.bat
内容为
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
2.打开Windows下命令提示符,输入指令schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"
指令创建一个每隔五分钟记录计算机联网情况的任务:
TN:Task Name,本例中是netstat
SC: SChedule type,本例中是MINUTE,以分钟来计时
MO: MOdifier
TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
五分钟后:
3.打开WPS表格,将txt文件导入进去
- 选择分隔符
- 全打上勾
*选择“常规”
导入得到txt的内容。
打开数据透视表,将协议作为列,并计算它的值,得到下图:
可以看到,360是用的最多的,因为当时正在用360浏览器查找资料~
- 第一个实验遇到了两个问题。
一是创建netstatlog.bat输完命令后找不到netstatlog.txt文件,后来发现需要先将netstatlog.bat以管理员身份运行后才可成功。
二是找到netstatlog.txt文件之后,无法定时更新记录,后来多方询问了解到,需要打开任务管理器,选中netstatlog.bat,勾选“最高权限运行”才可更新记录
2.2 使用sysmon工具监控系统运行
1.sysmon
是微软Sysinternals套件中的一个工具,可以从码云项目的附件里进行下载,要使用sysmon工具先要配置文件,我是直接使用老师给的配置文件:
<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>
2.配置好文件之后,要先使用sysmon -accepteula –i
指令对sysmon进行安装(需进入到附件保存的文件夹中)
3.启动之后,便可以到事件查看器里查看相应的日志(应用程序和服务日志→Microsoft→Windows→Sysmon→Operational路径找到记录文件)
4.回联了第二次试验用到的后门软件,刷新一次日志找到了它
②恶意软件分析
2.3 使用virscan分析恶意软件
1.在virscan网站上查看上次实验所做的后门软件的文件行为分析(刷了很多次,又换了同学的电脑刷,终于,在自己的电脑上刷出来了。。。):
2.点击“文件行为分析”,可以看到其启动回连主机的部分IP地址以及端口号以及其他信息
2.4使用systracer工具分析恶意软件
首先,下载一波:systracer
接着,安装。虽然是英文,但很简单(比上次实验的vile简单多了(* ̄︶ ̄))
使用systracer
工具建立了4个快照,分别是在主机中没有恶意软件时、开启恶意软件并与主机回联时、在Linux界面输入创建TXT文本指令并传入到主机时、关掉后门,断开连接后主机的状态
如图所示,我们可以选择两个快照进行campare,分析每次操作对系统的影响:
结果对比分析:
1、2对比:启动回连时注册表发生变化,注册表多了些内容:
2、3对比:启动回连时,新建了4322.txt文本文件,因此,可以发现在C盘新增了传输的文件:
3、4对比:
注册表有改动,其他没有什么区别
2.5 使用wireshark分析恶意软件回连情况
设置TCP过滤格式tcp.port==4322
,在进行回连操作时,使用wireshark进行抓包后可以看到,其先进行了TCP的三次握手,之后再进行数据的传输,如图所示,带有PSH,ACK的包传送的便是执行相关操作指令时所传输的数据包:
-
存在问题:最开始选择WLAN后开始监控,发现并没有三次握手,抓包时发现是空的。
解决:后来试了多次,发现应该一开始选择VM后才可以进行抓包。
2.6 Process Monitor分析
打开Process Monitor就可以就看到按时间排序的winxp执行的程序的变化,运行一下后门程序yqh4322,再刷新一下Process Monitor的进程树界面,可以指定查找到yqh4322.exe。
2.7 使用PE explorer分析恶意软件回连情况
首先,在网上下载好PE explore
1.使用PE explorer上次使用的后门程序,可以看到该文件的编译时间、链接器等基本信息:
2.查看程序节头的信息和一些指向操作信息
3.点击查看有dll文件.
ADVAPI32.dll
文件百度可知:是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,调用这个dll可以实现对注册表的操控WSOCK32.dll和WS2_32.dll
这两个DLL用于创建套接字,即会发生网络连接
三、实验总结与体会 |
- 这次实验挺有趣的,我也学习了解到了一些可以可以分析恶意软件的程序,开了眼界。而且,下载的时候很顺畅不会卡,分分钟OK(和上一次下载安装veil形成强烈对比 😑 😑 😑 ,且行且珍惜)。其他程序例如PE explorer这些一开始没接触过,但一边百度一边了解这个程序是干嘛的,怎么看分析的软件,慢慢的有所了解的这一学习的过程很充实。