2019-2020-2 20174325 叶竞蔚《网络对抗技术》Exp4恶意代码分析
实验目标
<i> 是监控你自己系统的运行状态,看有没有可疑的程序在运行。
<ii> 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
<iii> 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实践内容
1. 系统运行监控
<i> 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
<ii> 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
2. 恶意软件分析
分析该软件在
(1) 启动回连,
(2) 安装到目标机
(3) 及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)该后门软件
<iii> 读取、添加、删除了哪些注册表项
<iv> 读取、添加、删除了哪些文件
<v> 连接了哪些外部IP,传输了什么数据(抓包分析)
基础知识
<i> 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
·检查系统查看甚至修改了哪些文件
·检查系统进程中有哪些可以进程
·检查系统占用端口号中是否有可疑端口号
·检查对照注册表有哪些修改
<ii> 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
·使用Systracer工具分析恶意软件,拍摄快照比对前后区别,分析改变的注册表及文件等信息。
·使用Wireshark等网络工具进行抓包分析,监视通信查看是否存在可疑连接。
实验步骤
任务一监控系统运行状态
<i> 在命令行中输入schtasks /create /TN netstat4325 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt",创建任务netstat4325
· TN:Task Name,名称设置为netstat4325
· SC: SChedule type,本次实验以分钟来计时
· MO: MOdifier
· TR: Task Run,要运行的指令是 netstat
· -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
· >
表示输出重定向,将输出存放在c:\netstatlog.txt
文件中
<ii> 新建一个txt文件,在里面输入
date /t
保存后重命名为netstat4325,且将其文件改为.bat格式,netstat4325.bat
<iii> 点击【控制面板】->【系统与安全】->【管理工具】->【任务计划程序】,可以找到新创建的这个任务
双击编辑此任务:
【常规】勾选使用最高权限运行
【操作】-->【编辑】,将【程序或脚本】
改为我们创建的netstat4325.bat
文件,参数栏清空
<iv> 任务开始后,使电脑处于联网状态正常运行大概一个小时之后打开netstatlog.txt文件,查看记录。
<v> 将记录导入Excel表格中进行数据处理且生成数据透视图
从上图可知多为浏览器与传输控制,无可疑项。
任务二安装sysmon监控系统
<i> 下载下载Sysinternals套件并解压。
<ii> 选择Sysmon64.exe程序来进行监控(主机电脑为64位系统)
<iii> 打开程序属性查看版本信息
<iv> 在Sysmon64.exe相同目录下新建文本,输入
<Sysmon schemaversion="10.42">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
</ProcessCreate>
<ProcessCreate onmatch="include">
<ParentImage condition="end with">cmd.exe</ParentImage>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<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">svchost.exe</TargetImage>
<TargetImage condition="end with">firefox.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
保存后退出,重命名为sysmon20174325,设置后缀格式为.xml
· <Sysmon schemaversion="10.42">
中的10.42意味当前Sysmon的版本为10.42版本,在属性中获知
·exclude
相当于白名单,不用记录。include
相当于黑名单。onmatch
意为匹配。
·ProcessCreate
表示进程创建
·NetworkConnect
是网络连接,过滤掉浏览器的网络连接,即源IP为127.0.0.1(本机IP)的网络连接和目的端口为137(提供局域网中ID或IP查询服务)的连接服务,且查看目的端口为80(http)和443(https)的网络连接
·CreateRemote
是远程线程创建。这里使用“include”选择记录目标为explorer.exe、svchost.exe、firefox.exe、winlogon.exe和powershell.exe 的远程线程
·FileCrete Time
是进程创建时间
<v> 打开cmd,以管理员身份运行,进入sysmon所在的文件夹,输入Sysmon64.exe -i sysmon20174325.xml
<vi> 打开【计算机管理】-->【事件查看器】-->【应用程序和服务日志】-->【Microsoft】-->【Windows】-->【Sysmon】-->【Operational】查看根据配置信息【sysmon20174325.xml】记录的进程信息进程号、路径等系统信息
任务三恶意软件分析
1. 文件扫描
与上个实验类似,用virustotal进行扫描,结果如下
2.使用peid工具进行文件格式识别
<i> 先对于实验二中的shellcode_4325.exe进行扫描
<ii> 将实验三中加壳捆绑的程序进行扫描
3.使用systracer进行分析
<i> 下载并安装systracer
<ii> 输入端口号4325
<iii> 设置四张快照
· 在打开后门前先快照一下,选择take snapshot,完成后显示Snapshop #1。
· Kali开始监听,Windows运行后门后,回连成功后拍摄快照,完成后显示Snapshop #2。
回连成功。
· 在kali中使用MSF相关的操作sysinfo screenshot,完成后显示Snapshop #3。
截屏命令
· 结束连接后,快照,显示Snapshop #4。
结束连接
<iv>将snapshot1&2做对比、snapshot3&4做对比
·对比快照1和2,【Applications】-->【Running Processes】发现后门程序的添加
·点击【Opened Handles】可视后门程序入侵
·点击【Opened Ports】查看回连地址及端口号
·点击【registry】选找到注册表的变化项
详细变化内容。
·snapshot3与4操作与上面相同
后门程序断连。
实验心得与体会
本次实验总体来说比前三次都要简单一些,主要出问题的地方是我在进行动态回连的时候发现实验二三中的后门程序都与之前的虚拟机断连,于是重新建立了一个新的后门程序,在恶意软件分析中,静态分析总的来说比动态简单,在前面的实验步骤中,主要是数据转excel过程出错较多,最后在学姐的帮助下完成。总的来说此次实验还是较为顺利的。
posted on 2020-04-16 23:54 aliengirlyz 阅读(201) 评论(0) 编辑 收藏 举报