2019-2020-2 网络对抗技术 20175217 Exp4 恶意代码分析
Posted wyf20175217
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-2020-2 网络对抗技术 20175217 Exp4 恶意代码分析相关的知识,希望对你有一定的参考价值。
一、实验目标
- 监控自己系统的运行状态,看有没有可疑的程序在运行
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质
二、实验内容
任务一:系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里
- 运行一段时间并分析该文件,综述一下分析结果,找出所有连网的程序连了哪里,干了什么,是否合适
- 进一步分析可以有针对性的抓包
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点可疑行为
- 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行,从大量数据中理出规律、找出问题
任务二:恶意软件分析
- 分析该软件在启动回连、安装到目标机及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
三、基础知识
schtasks简单实现
- 每1分钟记录有哪些程序在连网:
schtasks /create /TN netstat5217 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt
TN
:Task Name,本例中时netstatSC
:表示计时方式,我们以分钟计时填MINUTEMO
:MOdifierTR
:Task Run,要运行的指令是 netstatbn
:b表示显示可执行文件名,n表示以数字来显示IP和端口>
:表示输出重定向,将输出存放在c: etstatlog.txt文件中
schtasks批处理
- 在C盘下添加文件
netstatlog.bat
:
date /t >> c:
etstatlog.txt
time /t >> c:
etstatlog.txt
netstat -bn >> c:
etstatlog.txt
- 在图形界面打开计划任务,将每分钟执行指令改为
c: etstatlog.bat
- 然后就可以在netstat.txt文件下看到输出,多了日期和时间,看起来更方便
数据处理方法
- 可以把这样的日志copy到Linux,用grep,cut等文本处理工具来分析
- 在windows里的话,最好复制到excel中,再看如何统计分析
- 目的是为了找出哪些软件连网最多,都连接了哪些IP,把没用的重复项都去掉
sysmon
- Sysmon是微软Sysinternals套件中的一个工具。可以监控几乎所有的重要操作
- 基本操作包括几步
- 确定要监控的目标:确定好过滤条件,让信任的程序尽量不要记到日志里去
- 写好配置文件:想记录的所有网络连接可写为
<NetworkConnect>*</NetworkConnect>
。exclude相当于白名单,不用记录。include相当于黑名单 - 安装sysmon:
sysmon.exe -i config_file_name
(修改完配置文件后也需执行改指令进行更新) - 在事件查看器里找到日志
恶意软件分析
-
静态分析
- 文件扫描(VirusTotal、VirusScan工具等)
- 文件格式识别(peid、file、FileAnalyzer工具等)
- 字符串提取(Strings工具等)
- 反汇编(GDB、IDAPro、VC工具等)
- 反编译(REC、DCC、JAD工具等)
- 逻辑结构分析(Ollydbg、IDAPro工具等)
- 加壳脱壳(UPX、VMUnPacker工具等)
-
动态分析
- 快照比对(SysTracer、Filesnap、Regsnap工具等)
- 抓包分析(WireShark工具等)
- 行为监控(Filemon、Regmon、ProcessExplorer工具等)
- 沙盒(NormanSandbox、CWSandbox工具等)
- 动态跟踪调试(Ollydbg、IDAPro工具等)
四、实验任务
1.系统运行监控
schtasks监控系统
schtasks
添加计划任务
- 编写脚本
netstat5217.bat
,进行批处理
- 在任务计划程序找到计划任务
- 编辑计划任务,以正确运行脚本
- 执行一段时间后,打开记录的位置
netstat20175217.txt
,即可查看到本机在该时间段内的联网记录
- 将数据导入Excel中,并生成相应的数据统计图
分析:
- Firefox、Chrome两大浏览器使用的最多,这个没什么问题
- WPS使用也很多,这个就很神奇了,我今天都在做实验,就没开过WPS,说明它平时一直在后台运行...
- 然后是VMware,这个很正常,今天一直在开虚拟机
- 然后就是迅雷,今天一直在下软件,这个也可以理解
- 接下来就是QQ、微信、丁丁几大社交聊天软件,这个也正常
- 然后就是
explorer.exe
,这是个程序管理器或者文件资源管理器,它用于管理Windows图形壳,包括桌面和文件管理,也有可能是恶意程序,因为我今天运行后门程序太多次了,所以我怀疑后门程序和这个explorer有关 - 最后就是我的后门程序
upx_5217_2.exe
了
sysmon监控系统
- 明确各部分要过滤的条件,配置xml文件
sysmon20175217.xml
-
include
:记录 -
exclude
:排除 -
ProcessCreate
:进程创建,这里的进程名排除(不记录)浏览器结尾的进程,包含了cmd结尾的进程 -
NetworlConnect
:网络连接,过滤掉浏览器的网络连接、本机网络连接和目的端口为137(提供局域网中ID或IP查询服务)的连接服务。包含目的端口为80(http)和443(https)的网络连接 -
FileCreatTime
:进程创建时间,这里排除(不记录)浏览器 -
CreateRemote
:远程线程创建,包含(记录)线程:explorer.exe
:Windows程序管理器或者文件资源管理器svchost.exe
:一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称winlogon.exe
:Windows NT 用户登陆程序,用于管理用户登录和退出powershell.exe
:专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
-
安装sysmon:
Sysmon64.exe -i sysmon20175217.xml
- 在“事件查看器”中选择日志的位置
应用和服务日志/Microsoft/Windows/Sysmon/Operational
,我们可以看到记录的事件的ID、任务类别、详细信息等
2.恶意软件分析
- 使用实验三产生的加壳后门程序进行分析
静态分析
文件扫描——virustotal
- 把生成的恶意代码放在VirusTotal进行分析(也可以使用VirusScan工具)
- 可查看到软件恶意代码的详细属性
字符串提取——Strings工具
- 安装String工具,并输入
strings -a 文件名
提取文件中全部字符串
- 通过分析提取出的字符串,可以发现大量可疑的请求连接的字符
- 以及一些可疑URL信息
文件格式识别——peid
- 可检测出文件的压缩壳
动态分析
快照对比——systracer
-
下载SysTracer工具
-
点击右侧的take snapshot,存储快照
- 快照一:未移植后门程序,保存为Snapshot #1
- 快照二:移植后门程序,保存为Snapshot #2
- 快照三:运行后门程序并在kali中实现回连,保存为Snapshot #3
- 快照四:在kali中使用dir指令,保存为Snapshot #4
- 快照五:在kali中使用record_mic指令,保存为Snapshot #5
-
通过右下角的
compare
键或者View Differences Lists
比对各快照,可以选择Only Difference
只查看不同的项 -
对比快照一和快照二(植入后门程序),增加了我的后门程序upx_5217_2.exe,而且一些文件进行了更新、增加了一些键值,说明植入的文件对系统进行了一些修改
-
对比快照二和快照三(后门启动前与启动后):
- 可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议
- 而且该后门程序生成了很多文件、目录和键值
- 在
c:WindowsPrefetch
目录下增加了相关的文件
- 可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议
-
对比快照三和快照四(kali上执行dir指令):
- 对
key_local_machine
根键中的内容进行了修改
c:Program FilesSysTracerdata
新增了snap文件
- 对
-
对比快照四和快照五(kali上执行record_mic指令)
- 注册表项出现变化
- 新建了很多连接,其中有与后门程序相关的
Apache HTTP Server
- 注册表项出现变化
抓包分析——wireshark
- 对回连过程进行捕包,过滤条件为虚拟机IP地址
192.168.228.128
,可以看到回连过程的三次握手
- 使用
dir
查看文件,可发现多出了许多PSH+ACK包,可以判断有数据在传输
- 使用
getuid
进行提权操作,发现增加了几个数据包
行为监控——ProcessExplorer
- 在进行回连时,我们可以在
cmd.exe
的子程序中看到我们的程序,由此我们可以知道该程序是在命令行中运行的
- 也可以详细查看该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等
五、实验后回答问题
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控
- 使用schtasks,设置一个计划任务,监视系统程序的运行情况
- 使用Sysmon,编写配置文件,记录有关的系统日志
- 使用Process Explorer,监视进程执行情况
- 使用systracer,对比不同快照,查看是否有可疑行为
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
-
静态分析
- 使用virscan或virustotal,对恶意软件进行分析
- 使用PEiD,查看恶意软件是否加壳,加的什么壳
- 使用String工具,分析恶意程序是否包含可疑字符串
-
动态分析
- 使用systracer,针对恶意软件进行分析
- 使用Wireshark,捕包分析恶意软件的通信过程
- 使用Process Explorer,监视文件系统、注册表,分析恶意软件的活动
六、实验中遇到的问题
问题一:无法启动sysmon
解决一:原因是权限不够,以管理员身份运行cmd即可
问题二:使用systracer时无法显示端口信息
解决二:可能是版本不对,之前用的是2.6版,重新下载了2.1版就OK了
七、实验心得体会
? ? ? ?这次实验做的是系统程序监控和恶意代码分析,周一听课的时候觉得没什么难的,但真正操作起来发现困难到爆炸,可能是之前做的太顺了,这次基本是每搞一个软件都会卡住。最后通过向同学求助以及自己艰难的摸索终于把软件都搞定了。然后又出现了难题,不会分析,所以又开始疯狂查资料、翻博客、问小伙伴。最后,通过自己的理解,艰难的分析出了个大概的结果吧。
? ? ? ?这次实验虽然使我对系统的监控和恶意代码的分析有了一定的理解,但是还是没有办法详细、准确地分析,只能爬到需要的数据,爬到数据也只能分析个大概。根本原因还是自己对这些数据的分析能力,也就是具体分析这一块的知识学习还不够吧,以后也会加强这一部分的理解吧,争取做的更好。
八、参考链接
以上是关于2019-2020-2 网络对抗技术 20175217 Exp4 恶意代码分析的主要内容,如果未能解决你的问题,请参考以下文章
2019-2020-2 20175216 《网络对抗技术》Exp7 网络欺诈防范
2019-2020-2 20175216 《网络对抗技术》Exp7 网络欺诈防范
2019-2020-2 20175303柴轩达《网络对抗技术》Exp4 恶意代码分析
2019-2020-2 网络对抗技术 20175209 Exp7 网络欺诈防范