2018-2019 网络对抗技术 20165226 Exp4:恶意代码分析
目录
一、实验内容说明及基础问题回答
二、实验过程
- Task1 系统运行监控
- 结合windows计划任务与netstat命令
- 使用sysmon监视系统
- Task2 恶意软件分析
- 在线检测——virustotal
- 动态分析1——使用TCPView工具
- 动态分析2——使用Process Explorer
- 动态分析3——使用Process Monitor
- 动态分析4——使用systracer
- 动态分析5——使用wireshark
- 静态分析1——使用PEid查看加壳情况
- 静态分析2——使用PE Explorer
三、问题与思考
四、实验总结
一、实验内容说明及基础问题回答
实验内容
- 系统运行监控(2分)
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
- 恶意软件分析(1.5分)
分析该软件在
- 启动回连
- 安装到目标机
- 及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。
基础问答
1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用windows自带的schtasks指令设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录。
- 使用sysmon工具,通过配置想要监控的端口、注册表信息、网络连接等信息,记录相关的日志文件。
- 利用wireshark查看数据包
- 用TCPView也行,不过能得到的进一步信息较少
- 用Process Explorer或者Process Monitor
2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
- 使用systracer工具分析恶意软件,进行快照的对比(注册表、文件等).
- 使用Process Explorer查看调用的程序库等等
- 使用PE explorer
- 也可以用PEid查看的加壳情况
返回目录
二、实验过程
Task1 系统运行监控
结合windows计划任务与netstat命令
- 为实现每5min记录下有哪些程序在连接网络,输入以下命令:
schtasks /create /TN netstat5226 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
创建计划任务
其中,TN是TaskName的缩写,我们创建的计划任务名是netstat5226;sc表示计时方式,我们以分钟计时填MINUTE;TR=Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
- 在C盘中创建一个netstat5226.bat脚本文件(可先创建txt文本文件,使用记事本写入后通过修改文件名来修改文件格式)
- 在其中写入以下内容
date /t >> c:\netstat5226.txt
time /t >> c:\netstat5226.txt
netstat -bn >> c:\netstat5226.txt
- 为实现每5min记录下有哪些程序在连接网络,输入以下命令:
schtasks /create /TN netstat5226 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
创建计划任务
其中,TN是TaskName的缩写,我们创建的计划任务名是netstat5226;sc表示计时方式,我们以分钟计时填MINUTE;TR=Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
- 在C盘中创建一个netstat5226.bat脚本文件(可先创建txt文本文件,使用记事本写入后通过修改文件名来修改文件格式)
- 在其中写入以下内容
date /t >> c:\netstat5226.txt
time /t >> c:\netstat5226.txt
netstat -bn >> c:\netstat5226.txt
- 打开
任务计划程序
(在计算机管理中),可以看到我们新创建的这个任务
- 双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的
netstat5226.bat
批处理文件,确定即可。
- 任务还有其他属性,点击“条件”选项卡,可以更改相关的设置。比如默认操作为“只有在计算机使用交流电源时才启动此任务”,那么使用电池电源时就会停止任务。这点需要格外注意,如果没有修改默认操作,任务无论如何都无法执行可能只是因为拔掉了电源。
- 执行此脚本一定时间,就可以在netstat5226.txt文件中查看到本机在该时间段内的联网记录
- 等记录项目够多了再用xlsx进行分析:点击数据选项卡,获取外部数据,选择之前记录连接情况的文本netstat5226.txt
- 选择分隔符号
- 分隔符号全部选上
- 列数据格式选择常规
- 完成生成表
- 当记录的数据足够丰富时,停止任务,将所得数据在excel中进行分析(详细操作参考学姐的博客)
- 将其做成饼状图(发现tcp最活跃)
- 用折线图来表示
- 选择分隔符号
使用sysmon监视系统
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>
</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
进行安装:
- 启动之后,便可以到事件查看器里查看相应的日志:
- 查看了其中一部分事件的详细信息,比如这个事件是之前做计划任务时所创建的
- 打开kali,运行木马文件,使其回连kali攻击机。查看日志,通过搜索关键字可以找到相关的后门文件
- 打开这个事件,可以看到其属于“NetworkContect”。查看详细信息,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等
Task2 恶意软件分析
在线检测——virustotal
- 把生成的恶意代码放在VirusTotal进行分析
- 查看这个恶意代码的基本属性
可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)
- 可以看到加壳情况
- 以及该恶意代码的算法库支持情况
动态分析1——使用TCPView工具
- 通过TCPView工具可以获取后门程序的网络连接信息,发现实验环境下攻击机的IP地址
- 但双击后只能获取少量信息,因此此软件不适合用来分析具体数据传输过程
动态分析2——使用Process Explorer
- Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
- 靶机运行木马,回连攻击机时,我们可以看到Process Explorer对其进行的记录
动态分析3——使用Process Monitor
- Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
- 打开软件,可以看出其对各个进程的详细记录
动态分析4——使用systracer
- 下载SysTracer工具
- 注意在
agreet
后选择第二个进行端口号的设置
- 点击
take snapshot
分别存储以下快照:
- Snapshot #1:未植入后门程序的自然状态
- Snapshot #2:将木马植入靶机,对靶机注册表、文件等进行快照
- Snapshot #3:打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照
- Snapshot #4:在kali中对靶机使用
ls
指令,win7下再次快照
- Snapshot #5:在kali中对靶机使用
getuid
然后getsystem
进行提权操作,win7下再次快照
- 分析
- 快照一和快照二:增加的后门程序,以及增减的键值、dll文件
- 快照二和快照三:除了增减很多键值、dll文件外,还能查找到后门程序的回连(能看到端口号,攻击方IP地址以及靶机IP地址)
- 植入后门并回连进行权限提取或其他操作
我们能在双击此快照的基础上通过查看applications
中的Runnig Processes
找到后门程序,能清楚地看到本机地址和端口以及远程攻击方kali的地址及运行端口号
动态分析4——使用wireshark
- 通过上一步的操作得知攻击方以及受控方IP地址以及端口号之后使用wireshark进一步分析
- 三次握手
从序列号、确认号等能判断出三次握手过程,同时还能查看传输的数据
静态分析1——使用PEid查看加壳情况
- 未加壳时进行扫描
- 加壳后再次进行扫描
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>
</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
进行安装:在线检测——virustotal
- 把生成的恶意代码放在VirusTotal进行分析
- 查看这个恶意代码的基本属性
可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)
- 可以看到加壳情况
- 以及该恶意代码的算法库支持情况
动态分析1——使用TCPView工具
- 通过TCPView工具可以获取后门程序的网络连接信息,发现实验环境下攻击机的IP地址
- 但双击后只能获取少量信息,因此此软件不适合用来分析具体数据传输过程
动态分析2——使用Process Explorer
- Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
- 靶机运行木马,回连攻击机时,我们可以看到Process Explorer对其进行的记录
动态分析3——使用Process Monitor
- Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
- 打开软件,可以看出其对各个进程的详细记录
动态分析4——使用systracer
- 下载SysTracer工具
- 注意在
agreet
后选择第二个进行端口号的设置
- 点击
take snapshot
分别存储以下快照:
- Snapshot #1:未植入后门程序的自然状态
- Snapshot #2:将木马植入靶机,对靶机注册表、文件等进行快照
- Snapshot #3:打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照
- Snapshot #4:在kali中对靶机使用
ls
指令,win7下再次快照
- Snapshot #5:在kali中对靶机使用
getuid
然后getsystem
进行提权操作,win7下再次快照
- 分析
- 快照一和快照二:增加的后门程序,以及增减的键值、dll文件
- 快照二和快照三:除了增减很多键值、dll文件外,还能查找到后门程序的回连(能看到端口号,攻击方IP地址以及靶机IP地址)
- 植入后门并回连进行权限提取或其他操作
我们能在双击此快照的基础上通过查看applications
中的Runnig Processes
找到后门程序,能清楚地看到本机地址和端口以及远程攻击方kali的地址及运行端口号
动态分析4——使用wireshark
- 通过上一步的操作得知攻击方以及受控方IP地址以及端口号之后使用wireshark进一步分析
- 三次握手
从序列号、确认号等能判断出三次握手过程,同时还能查看传输的数据
静态分析1——使用PEid查看加壳情况
- 未加壳时进行扫描
- 加壳后再次进行扫描
可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)
- 通过TCPView工具可以获取后门程序的网络连接信息,发现实验环境下攻击机的IP地址
- 但双击后只能获取少量信息,因此此软件不适合用来分析具体数据传输过程
动态分析2——使用Process Explorer
- Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
- 靶机运行木马,回连攻击机时,我们可以看到Process Explorer对其进行的记录
动态分析3——使用Process Monitor
- Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
- 打开软件,可以看出其对各个进程的详细记录
动态分析4——使用systracer
- 下载SysTracer工具
- 注意在
agreet
后选择第二个进行端口号的设置
- 点击
take snapshot
分别存储以下快照:
- Snapshot #1:未植入后门程序的自然状态
- Snapshot #2:将木马植入靶机,对靶机注册表、文件等进行快照
- Snapshot #3:打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照
- Snapshot #4:在kali中对靶机使用
ls
指令,win7下再次快照
- Snapshot #5:在kali中对靶机使用
getuid
然后getsystem
进行提权操作,win7下再次快照
- 分析
- 快照一和快照二:增加的后门程序,以及增减的键值、dll文件
- 快照二和快照三:除了增减很多键值、dll文件外,还能查找到后门程序的回连(能看到端口号,攻击方IP地址以及靶机IP地址)
- 植入后门并回连进行权限提取或其他操作
我们能在双击此快照的基础上通过查看applications
中的Runnig Processes
找到后门程序,能清楚地看到本机地址和端口以及远程攻击方kali的地址及运行端口号
动态分析4——使用wireshark
- 通过上一步的操作得知攻击方以及受控方IP地址以及端口号之后使用wireshark进一步分析
- 三次握手
从序列号、确认号等能判断出三次握手过程,同时还能查看传输的数据
静态分析1——使用PEid查看加壳情况
- 未加壳时进行扫描
- 加壳后再次进行扫描
- Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
- 打开软件,可以看出其对各个进程的详细记录
动态分析4——使用systracer
- 下载SysTracer工具
- 注意在
agreet
后选择第二个进行端口号的设置
- 点击
take snapshot
分别存储以下快照:
- Snapshot #1:未植入后门程序的自然状态
- Snapshot #2:将木马植入靶机,对靶机注册表、文件等进行快照
- Snapshot #3:打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照
- Snapshot #4:在kali中对靶机使用
ls
指令,win7下再次快照
- Snapshot #5:在kali中对靶机使用
getuid
然后getsystem
进行提权操作,win7下再次快照
- 分析
- 快照一和快照二:增加的后门程序,以及增减的键值、dll文件
- 快照二和快照三:除了增减很多键值、dll文件外,还能查找到后门程序的回连(能看到端口号,攻击方IP地址以及靶机IP地址)
- 植入后门并回连进行权限提取或其他操作
我们能在双击此快照的基础上通过查看applications
中的Runnig Processes
找到后门程序,能清楚地看到本机地址和端口以及远程攻击方kali的地址及运行端口号
动态分析4——使用wireshark
- 通过上一步的操作得知攻击方以及受控方IP地址以及端口号之后使用wireshark进一步分析
- 三次握手
从序列号、确认号等能判断出三次握手过程,同时还能查看传输的数据
静态分析1——使用PEid查看加壳情况
- 未加壳时进行扫描
- 加壳后再次进行扫描
- 注意在
agreet
后选择第二个进行端口号的设置
take snapshot
分别存储以下快照:
- Snapshot #1:未植入后门程序的自然状态
- Snapshot #2:将木马植入靶机,对靶机注册表、文件等进行快照
- Snapshot #3:打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照
- Snapshot #4:在kali中对靶机使用
ls
指令,win7下再次快照 - Snapshot #5:在kali中对靶机使用
getuid
然后getsystem
进行提权操作,win7下再次快照
- 快照一和快照二:增加的后门程序,以及增减的键值、dll文件
- 快照二和快照三:除了增减很多键值、dll文件外,还能查找到后门程序的回连(能看到端口号,攻击方IP地址以及靶机IP地址)
- 植入后门并回连进行权限提取或其他操作
我们能在双击此快照的基础上通过查看applications
中的Runnig Processes
找到后门程序,能清楚地看到本机地址和端口以及远程攻击方kali的地址及运行端口号
- 通过上一步的操作得知攻击方以及受控方IP地址以及端口号之后使用wireshark进一步分析
- 三次握手
从序列号、确认号等能判断出三次握手过程,同时还能查看传输的数据
静态分析1——使用PEid查看加壳情况
- 未加壳时进行扫描
- 加壳后再次进行扫描
缺点是不能获取其他更多的信息
静态分析2——使用PE Explorer
- PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。
- 刚打开PE Explorer我们就会看到后门程序的头部信息。
- 同时还能查看其依赖项
返回目录
三、问题与思考
- 问题1:在安装sysmon时报错
- 问题1解决方案:以管理员身份运行cmd,重新执行命令进行安装,成功。
- 问题2:在进行数据收集时,出现一些问题,如无法自启动在文件中录入数据、能定时触发但只显示时间没有数据、不能定时触发但通过管理员运行bat文件能输出、不能生成txt文件、能定时触发但只显示结果没有日期和时间。。
- 问题2解决方案:
- 在C盘中将bat文件的属性中所有权限更改为
完全控制
- 在任务管理中点开bat的属性,在常规中将
只在用户登录时运行
更改为不管用户是否登录都要运行
,并在下面的框中打钩
- 在C盘中将bat文件的属性中所有权限更改为
- 问题3:导入表格时出现如图所示问题
- 问题3解决方案:使所选单元格从D31开始即可
- 问题4:在进行systracer中出现下图所示情况
- 问题4解决方案:将改程序卸载后重装即可
返回目录
四、实验总结
- 本次实验所需要使用的工具相比前几次更丰富,通过运用不同的工具,结合之前信息安全及本期计算机病毒的一些知识,进一步熟练操作监控主机,能更好的辅助我们发现并及时处理恶意行为。
- 恶意代码的分析方法主要分为静态分析方法和动态分析方法。这两种方法在本次实验中都有所涉及。静态分析方法是指在不执行二进制程序的条件下进行分析,如反汇编分析等;而动态分析方法是指在恶意代码执行的情况下,利用调试工具对恶意代码实施跟踪和观察,确定恶意代码的工作过程,以便作进一步分析。
- 实验过程中,遇到各种奇怪问题,不过通过不断尝试,能得以解决,但目前对于恶意行为的监测中并不可控,不能做到百分百的检测,这也是我们今后研究的方向。
返回目录
2018-2019 20165226 Exp4:恶意代码分析
原文地址:https://www.cnblogs.com/musea/p/10643705.html
时间: 2024-08-02 01:16:04