2019-2020-2 20175319江野《网络对抗技术》Exp4 恶意代码分析
1 实践目标
- 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2 实践内容
- 2.1系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。 - 2.2恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。
2.1 系统运行监控
Windows计划任务schtasks
- 指令说明
官方文档,该指令功能等同于控制面板-Windows计划任务。 - 简单实现
schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\20175319log.txt"
- 批处理
再加工一下,在C盘要目录下建一个文件netstatlog.bat,内容如下:
date /t >> c:\20175319log.txt
time /t >> c:\20175319log.txt
netstat -bn >> c:\20175319log.txt
在图形界面打开任务计划程序,将指令替换为c:\netstatlog.bat
更改完后,我们在20175319log.txt中会看到如下的输出,多了日期与时间,这样看起来更方便。
将数据导入excel,生成图表形式
上面为两个小时监测情况,其中twinkstar.exe是我使用的浏览器,其他均正常
Sysmon
Sysmon是微软Sysinternals套件中的一个工具。可以监控几乎所有的重要操作。
基本操作可以描述为三步
- 确定要监控的目标
- 写好配置文件
sysmon提供了xml格式的配置文件来让用户自定义过滤规则
可选择的事件过滤器有
ProcessCreate 进程创建
FileCreateTime 进程创建时间
NetworkConnect 网络链接
ProcessTermina 进程结束
DriverLoad 驱动加载
ImageLoad 镜像加载
CreateRemoteTh 远程线程创建
RawAccessRead 驱动器读取
ProcessAccess 进程访问
FileCreate 文件创建
RegistryEvent 注册表事件
FileCreateStre 文件流创建
配置文件C:\Sysmoncfg.txt:
<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">twinkstar.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</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
Sysmon.exe -i C:\Sysmoncfg.txt
配置文件可以随时修改,修改完需要用如下指令更新一下Sysmon.exe -c C:\Sysmoncfg.txt
- 然后就可以在事件查看器查看了
进入应用程序和服务日志->Microsoft->Windows->Sysmon->Operational
2.2恶意软件分析
使用PEiD查壳
PEiD是一款著名的可移植可执行程序(pe文件)外壳查询工具工具,其功能强大,可以轻易检出超过470种外壳,并可检查程序的编程语言。
对实验3中的20175319.exe和加壳后的20175319upx.exe进行检测
检测出了压缩壳UPX
PE Explorer
PE Explorer是一个强大的程序资源编辑工具,可以直接查看、修改软件的资源,包括菜单、对话框、字符串表等;另外,还具备有W32DASM软件的反编译能力和PEditor软件的PE文件头编辑功能。
在软件中打开20175319upx.exe
- 文件头信息
- 程序引入的dll
msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件
kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理
advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关
wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序
ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。 - 反汇编分析
SysTracer
SysTracer是一款集成HIPS以及进程行为跟踪功能的安全辅助工具,它可以跟踪并监视进程对整个系统的修改行为,包括文件操作,注册表操作,内存操作和危险行为。SysTracer可以监视全部进程,或者用户指定的某一个进程及其子进程,并提供监视日志以帮助用户对特定进程的行为进行分析。
- snapshot#1:后门程序已在本机中
- snapshot#2:运行后门程序并成功回连
- snapshot#4:在kali中执行shell后
- snapshot#5:在kali中执行screenshot后
- 1与2进行对比
可以看到后门程序启动,加入进程
注册表出现许多新的表项 - 2与4对比
新增进程
新增dll
- 2与5对比
对注册表和文件有所修改
wireshark抓包分析
对回连过程抓包
过滤条件:ip.addr ==192.168.0.173
目标机先对宿主机发送请求,进行了完整的三次握手,属于反弹连接,抓包中大部分是宿主机与目标机的TCP包,还有部分DNS包、ARP包。
关闭连接
3 实验中遇到的问题
- 问题1:安装sysmon配置时出现错误提示
解决方案:修改xml配置文件,将第一行修改成对应的版本<Sysmon schemaversion="3.10">
4 实验后回答问题
- (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
使用schtasks设置计划任务监控一天的应用联网情况
使用Sysmon查看网络连接、端口、注册表等信息,检查异常事件
使用wireshark抓包,分析ip、端口、数据包情况
使用Systracer拍摄快照,检查注册表、启动项、文件等信息之间的变化 - (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
使用PE Explorer查看文件头、引用的dll
使用PEiD查壳
使用Systracer拍摄快照,分析注册表、文件、进程等的修改信息
4 实验收获与感想
本次实验操作不算困难,主要注重分析恶意软件,这次实验也让我知道了恶意代码不是悄无声息的,可以被检测出来,让我对计算机的安全防护有了更深的了解和信心。