2019-2020-2 20175204 张湲祯《网络对抗技术》Exp4 恶意代码分析
2019-2020-2 20175204 张湲祯《网络对抗技术》Exp4 恶意代码分析
一、实验目标与任务
1.实践目标
- 是监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容
- 2.1系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 2.2恶意软件分析,分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件:
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
二、基础问题回答
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:经过本次实验可以使用以下方法:
- 使用Windows计划任务schtasks创建一个计划任务定期将网络连接情况进行记录,再放到excel中进行统计分析。
- 使用sysmon工具:配置好想要查看的选项,通过生成的日志记录进行查看分析。
- 使用PEiD工具:查看一个程序是否加壳,如果加壳的话可以去VirusTotal或者virscan进行扫描。
- 使用Process Monitor工具:监视文件系统、注册表、进程活动。
- 使用sysTracer工具:定期拍摄快照,进行快照对比,发现恶意代码对注册表、exe可执行文件的操作。
- 使用Wireshark工具:捕获数据包,分析数据流情况,查看哪些连接不是自己主动操作访问的。
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
答:使用如下工具:
- 使用systracer工具进行快照对比分析恶意软件,查看对注册表和exe可执行文件的修改。
- 使用Wireshark工具:捕获数据包,分析数据流情况,监控其与主机进行的通信过程。
- 将该程序上传到VirusTotal或者virscan进行扫描也可以得到相关信息。
三、实验内容
1.系统运行监控
1.1Windows计划任务schtasks
- 使用命令
schtasks /create /TN netstat5204 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
创建计划任务netstat5204- 命令中参数意义如下:
TN
:TaskName的缩写;
sc
:计时方式,我们以分钟计时填MINUTE;
TR
:Task Run缩写,要运行的指令是 netstat
bn
:b表示显示可执行文件名,n表示以数字来显示IP和端口;
>
:表示输出重定向,将输出存放在c:\netstatlog.txt文件中
- 命令中参数意义如下:
- 在c盘中创建
netstat5204.bat
脚本(c盘根目录下创建需要管理员权限)
date /t >> c:\netstat5204.txt
time /t >> c:\netstat5204.txt
netstat -bn >> c:\netstat5204.txt
- 打开任务计划程序,查看当前新创建的任务
netstat5204
- 双击该任务进行编辑,在
常规
选项卡中勾选使用最高权限操作
,以防记录里出现权限问题。 - 在
操作
选项卡中双击编辑启动程序操作,程序或脚本选择netstat5227.bat,参数为空
。 - 为了统计足够多的数据,将条件选项卡中该选项
只有在计算机使用交流电源时才启动此任务
取消。 - 执行该脚本一段时间后,就可以在
netstat5204.txt
文件中看到主机在此段时间内的联网记录:
- 一段时间后可以获得充足的数据,可以停止该任务,将
netstat5204.txt
中数据复制粘贴到Excel中进行分析。 - 选择
数据
,导入生成的txt文件
,选中数据区域进行分列,选择好数据类型。 - 点击
插入
选择数据透视图
,选择需要统计的区域,设置轴和列
进行统计 - 统计项目如下:
- 通过统计发现联网最多的是
VMware.exe
;其次是显卡软件和qq、联想电脑管家等软件,但是看到有个backgroundtaskhost
不知道是个啥后台,网上搜索后发现是win10基本都有的就放心了。
1.2使用sysmon工具监控系统
- sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具,用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。
- 下载
sysinternal
,将文件解压后把sysmon.exe
拷贝到管理员运行cmd的文件夹(C://Windows/System32
)中。 - sysmon过滤器事件及其选项
- ProcessCreate(进程创建)、FileCreateTime(进程创建时间)、NetworkConnect(网络链接)、ProcessTermina(进程结束)、DriverLoad(驱动加载)、ImageLoad(镜像加载)、CreateRemoteTh(远程线程创建)、RawAccessRead(驱动器读取)、ProcessAccess(进程访问)、FileCreate(文件创建)、RegistryEvent(注册表事件)
- 在这里选取了
NetworkConnect
中的Image、SourcePort、SourceIP、DestinationPort,CreateRemoteThread中的TargetImage、SourceImage
- 在
sysmon.exe
目录下创建配置文件sysmon5204.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>
<!-- 源端口和IP包含下列的 -->
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<!-- 目的端口和IP包含下列的 -->
<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">winlogon.exe</TargetImage>
<!-- 源可执行文件以下列结尾的 -->
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
- 以管理员身份运行
cmd
,输入指令Sysmon.exe -i sysmon5204.xml
,会弹出安装提示框,点击Agree
进行安装:
- 打开
事件查看器
,在左侧栏中选择应用程序和服务日志->Microsoft->Sysmon->Operational
- 以实验二生成的后门程序
175204back2.exe
为例,执行回连,可以查看到该条日志,如下:
- 在
shell
中输入dir
获取主机当前文件信息,在事件查看器中看到了日志中为SearchFilterHost.exe
,它是Windows下的文件搜索引擎程序。
2.恶意软件分析
2.1静态分析
-
恶意代码扫描
- 在
VirusTotal
网站上上传文件进行检测,可以看到查杀率还是很高的。
- 还可以看到算法的摘要值,文件类型、使用了压缩壳等信息。
- 在
-
文件格式识别——PEiD工具
- PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE文档的加壳类型和签名。
- 下载PEID后将后门程序导入进行扫描,发现加壳版本是
UPX 0.89.6
- 在对未加壳的后门程序进行扫描对比,显示什么都没找到。
-
反编译、反汇编——PE Explorer工具
- PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。该软件支持插件,可以通过增加插件加强该软件的功能,原公司在该工具中捆绑了UPX的脱壳插件、扫描器和反汇编器,可以查看程序头部信息(默认界面)、程序静态数据目录、程序结头信息、对程序反汇编。
- 在
PE Exploer
中打开后门程序175204back2.exe
,显示出文件头信息如下:
- 选择菜单栏中的
视图->引入
,可以查看调用的DLL文件为kernel32.dll,它属于内核级文件,控制着系统的内存管理、数据的输入输出操作和中断处理,是必需的。
- 菜单栏选中
工具->反汇编器
,可以进行反汇编:
2.1动态分析
-
快照比对——SysTracer工具
- SysTracer是一个系统工具,可以帮助您找到应用于计算机中不同项目和区域的更改,可能是恶意软件导致的更改。SysTracer执行系统扫描,记录有关文件和文件夹,注册表项,系统服务,驱动程序,当前活动的进程,已加载的库(DLL)和计划在系统启动时运行的应用程序的信息。
- 点击创建快照,我创建了四个进行比对,分别是:
- Snapshot #1:不进 行任何操作;
- Snapshot #2:运行后门程序并成功反弹连接;
- Snapshot #3:获取shell;
- Snapshot #4:使用msf命令
getuid
。 -
比对Snapshot #1和Snapshot #2
- 点击快照对比后查看应用程序标签页,可以看到
Running Processes
下的175204back2.exe
被标蓝,意味着快照1和2的差异为该后门程序。
- 查看注册表差异,可以看到启动后门程序并进行反弹回连后修改了一些注册表信息:
-
比对Snapshot #2和Snapshot #3
- 可以看到增加了许多调用dll文件的记录。
- 并且新增了一个DLL文件
winbrand.dll
:
- 可以看到注册表项也有新增和修改的:
-
比对Snapshot #3和Snapshot #4
- 可以看到退出
shell
后,cmd.exe
程序就不再执行删除了。
- 也可以看到
winbrand.dll
也删除了。
- 文件也可以看到有增加和删改。
-
网络监控——Wireshark工具
- 选择主机的网卡进行监控。
- 主机的ip:192.168.1.104
- kali的ip:192.168.1.107
- 捕获数据包如图,可以看到监听端口为5204端口:
- 在kali中使用ls等命令时,数据包进行信息传输:
四、实验问题及解决
- 问题1:在运行后门程序时不管是哪个,一直显示系统资源已满无法执行任务,但打开任务管理器看到内存占用很低,重启后也无法奏效。
- 解决方法:关掉McAfee就能成功运行。没想到McAfee这次这么给力,上次连后门程序都检测不出来,这次直接显示无法运行后直接删除了。
- 问题2:运行后门程序后,在事件管理器中却没有发现后门程序运行的日志。
- 解决办法:kali的网络模式设置为
nat
模式下,就无法获取后门程序运行的日志,在桥接模式下就可以运行并捕获日志。
五、实验体会
本次实验虽然需要运行的东西不多,在操作上和前几次实验相比较为简单,但主要是分析上较为困难麻烦,对一些增加删除的应用程序还可以直观的看出来,是对应的哪些命令;但对于注册表项和文件由于中间的操作较多增删的东西较多不是很容易判断哪些是和后门有关的,只能通过网上搜索参考组长同学博客进行查找,较为困难。本次实验对我来说还是比较有意义的,自从上次实验看到那么简单的后门杀软都查不出来就有点懵,不知道怎么更有效的检测,通过本次实验学会了很多方法,最起码也可以自己进行简单的检测统计分析,心理上有点安慰了。感觉自己还需要努力学习课程知识,掌握学习更多技术。