20155302《网络对抗》Exp4 恶意代码分析
实验要求
•是监控你自己系统的运行状态,看有没有可疑的程序在运行。
•是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
•假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实验内容
•系统运行监控
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
•恶意软件分析
分析该软件在以下操作时的行为: 启动回连
安装到目标机
及其他任意操作时
该后门软件
读取、添加、删除了哪些注册表项
读取、添加、删除了哪些文件
连接了哪些外部IP,传输了什么数据(抓包分析)
实验过程
1、系统监控——Windows计划任务schtasks
1.首先我们要先在C盘schtasks /create /TN 20155302! /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
建立一个名为20155302!的事件。
TN代表着事件名称
sc表示计时方式
TR代表运行的指令
b表示显示可执行文件名,n表示以数字来显示IP和端口
2.在C盘根目录下建立一个netstatlog.txt文件然后将后缀名修改成为.bat即可。并在其中编辑以下内容:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
3.之后我们可以在事件查看器中开启事件20155302!并将触发器编辑时间间隔(此处设置每一分钟一检测),再设置操作将程序或脚本设置为netstatlog.bat(切记此处为.bat)
4.好啦,接下来我们就可以在.txt文件中检查到本机所开启的组件和进行的IP,相关的协议等数据,实施每分钟监控,观察是否有某些不良软件偷偷打开!
使用sysmon工具监控系统
1.首先,我们先来了解一下sysmon是什么:
Sysmon是微软Sysinternals套件中的一个工具,能监控几乎所有的重要操作。不过首先,我们要先配置文件。
2.下载老师所给的资源然后对其进行解压文件。
3.创建配置文件Sysmon20155302.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>
<Image condition="end with">firefox.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
</NetworkConnect>
<CreateRemoteThread onmatch="include">
<TargetImage condition="end with">explorer.exe</TargetImage>
<TargetImage condition="end with">firefox.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
<ProcessCreate onmatch="include">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<Image condition="end with">firefox.exe</Image>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">firefox.exe</Image>
</FileCreateTime>
<FileCreateTime onmatch="include" >
<TargetFilename condition="end with">.tmp</TargetFilename>
<TargetFilename condition="end with">.exe</TargetFilename>
</FileCreateTime>
</EventFiltering>
</Sysmon>
4.先使用Sysmon.exe -i C:\Sysmon20155302.xml
开启Sysmon然后再使用Sysmon.exe -c C:\Sysmon20155302.xml
,将Sysmon按照修改好的配置文件进行更新。
5.然后我们打开时间管理器,去应用程序和服务日志找到Microsoft选择Windows再选择Sysmon中的Operational打开查看事件
6.然后开启kali虚拟机生成一个后门软件并传入windows系统进行一下回连,看看是否可以从sysmon中找到它。
7.完全ok,成功找到。
8.由于老师要求找到事件含有Event 1,2,3
的三个事件即进程创建、进程创建时间、网络连接,所以下拉继续找到含有这三个的事件:
9.通过分析事件ID我们可以发现不同数字代表着有不同含义:
数字1:进程创建。
数字2:进程创建时间。
数字3:网络连接。
数字4:Sysmon服务状态已变更。
数字5:进程已终止。
数字6 :已载入驱动程式。
数字7 :已载入影像。
数字8 :创建远程线程。
数字9 : RawAccessRead。
数字10 :进程访问。
数字11 :文件创建。
数字12 :注册事件(创建和删除对象)。
数字13 :注册事件(值集)。
数字14 :注册事件(键和值重命名)。
数字15 :文件创建流哈希。
数字255 :错误。
10.这是同一个事件的连续事件ID分别为1,2,3的情况,里面记录有这个事件的详细信息比如用户创建时间,所攻击的目标文件名称及路径,连接网络时的网络协议种类等等。
使用VirusTotal分析恶意软件
在kali虚拟机中生成一个加壳的后门程序,将他上传至virusTotal,观察扫描检测结果
这在66个杀毒软件中有50个可以查出来,这个后门可谓做的相当失败了,加壳也并没有什么效果这在上次实验中已经验证过。
然后打开detail查询一下这个恶意代码的细节内容:
•在基本属性里面我们可以看到他的MD5值,SHA-1值,文件类型以及TRiD文件类型识别结果和文件大小等等
•在历史中我们可以看到这个恶意代码的创建时间,以及攻击靶机的时间和结束回连时间等等
•在文件名以及加壳中我们可以清晰地看到上传文件的名称以及加壳的种类和壳的相关内容
•还可以查看算法库支持情况等内容
使用Process Monitor分析恶意软件
1.什么是Process Monitor?
•Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常 有用。 这是一个高级的 Windows 系统和应用程序监视工具,由优秀的 Sysinternals 开发,并且目前已并入微软旗下,可靠性自不用说。
2.将Process Monitor软件打开然后再在kali里面生成一个后门程序,然后传入靶机开始回连,这时候观察Process Monitor中是否能检测到它
使用Process Explorer分析恶意软件
1.什么是Process Explorer?
•Process Explorer让使用者能了解看不到的在后台执行的处理程序,能显示目前已经载入哪些模块,分别是正在被哪些程序使用着,还可显示这些程序所调用的 DLL进程,以及他们所打开的句柄。Process Explorer最大的特色就是可以中终任何进程,甚至包括系统的关键进程!
Process Explorer 的显示有两个子窗口所组成,窗口上方会显示出当前活跃的程序进程,包括它们的详细描述,窗口下方则会显示出通过资源管理器模式运行的应用程序的相关信息,以及它们所调用的DLL和打开的句柄,该版本可以运行在windows NT/2K/XP/2003系统平台。
2.同样像上一个软件一样,先打开Process Explorer,然后将后门软件回连靶机,回连成功后,我们观察Process Explorer
使用PEiD分析恶意软件
1.什么是PEiD?
•PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE文档的加壳类型和签名。
●正常扫描模式:可在PE文档的入口点扫描所有记录的签名;
●深度扫描模式:可深入扫描所有记录的签名,这种模式要比上一种的扫描范围更广、更深入;
●核心扫描模式:可完整地扫描整个PE文档,建议将此模式作为最后的选择。
PEiD内置有差错控制的技术,所以一般能确保扫描结果的准确性。前两种扫描模式几乎在瞬间就可得到结果,最后一种有点慢,原因显而易见
2.先用一个未加壳的后门使用PEiD进行检测
3.再对比加壳后的后门我们可以清晰地看到PEiD成功的检测到了所加的upx壳
使用systracer分析恶意软件
1.什么是systracer?
•SysTracer 这是一款可以分析你的计算机文件,文件夹和注册表项目改变的系统实用工具.你可以在任何想要的时间获取无数个屏幕快照.你可以比较任何一对想要的屏幕快照,并且观察其间的不同之处.获取屏幕快照通常会持续几分钟的时间,这取决于文件和文件夹的数量和注册表项目的总数.该软件特别推出一个非常高效的分析算法,比较两张屏幕快照可以瞬间完成
2.我选择在自己的两台虚拟机中做此实验(分别为Windows7以及kali虚拟机)因为虚拟机中东西比较少快照时速度快(但开两个虚拟机真的是太卡了!