2019-2020-2 20175221『网络对抗技术』Exp4:恶意代码分析
- 原理与实践说明
- 1.实践目标
- 2.实践内容概述
- 3.基础问题回答
- 实践过程记录
- 系统运行监控
- 恶意软件分析
-
实验总结与体会
原理与实践说明
-
实践目标
- 监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
-
实践内容概述
- 系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据
基础问题回答
-
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
-
我想监控:
- 注册表、进程、端口使用情况,CPU占用情况,网络连接
-
监控方法:
- 可以定时让主机执行netstat,对捕获到的信息进行批量分析
- 可以利用Sysmon,修改配置文件,监控觉得可疑的端口、软件和事件。
-
如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 可以利用Wireshark进行抓包分析,监视与主机进行的通信过程。
- 可以利用Systracer拍摄快照,比对前后区别,分析注册表、系统用户、系统文件的变化情况。
实践过程记录
一、系统运行监控
-
根据netstat的结果分析程序连接
- 使用 schtasks /create /TN netstat5221 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt" 命令创建计划任务
netstat5221
- 其中,TN是TaskName的缩写,创建的任务名是netstat5221;sc是计时方式,这里我们以分钟计时--MINUTE;TR是Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
- 随后在C盘创建一个 netstat5221.txt ,内容如下:
- 完成后将txt文件类型改为bat文件类型
- 随后打开任务计划程序,可以观察到刚刚创建的任务
- 双击打开它对其进行一些修改:
- 在编辑操作,将要运行的程序设为刚刚创建的 netstat5221.bat
- 在条件里边,将充电才工作的选项取消,否则不给电脑充电,任务就没法运行。netstat5221.txt也不会更新
- 完成以上操作后,就可以把电脑放在那里让其自动运行了。大约一段时间后(我让它工作是12小时),就可以在netstat5221.txt文件中查看到本机在该时间段内的联网记录。(这里有很多方法可以看自己的任务是不是自动执行了,比如有没有在你设定的时间间隔内一闪而过一个命令行;或者是看联网记录的txt大小有没有变化等)
- 为了更生动形象,我们将生成的记录用Excel详细档下来,并对其进行统计分析:(下面的步骤与我做出的统计图会有些许出入,因为后边我又多试了Excel的其他类型表示,但大体设置方向是对的)
- 选中要分析的列,插入数据透视图
- 筛选掉一些无意义的字段,将周五置入下边两个区域中
- 之后选择想要的类型表显示就可以了
- 这里我对联网数超过100的进行了一下研究,首先是最多的 LegacyCsLoaderService.exe ,以前都没听说过这个
- 大概意思是 LegacyCsLoaderService.exe 是任务管理器中的一个进程,但其不是必须的核心文件,而且通常会导致问题,可以通过控制面板将其删除或添加。该文件进行过数字签名,但依旧得提防它,是一个可用程序还是特洛伊木马,还得自己来判断。。。
- QQ,Vmware就跳过,看一下最左边两个:
- 360tray.exe是360安全卫士木马防火墙模块
- 360se.exe是360浏览器的主程序
- SogouExplorer.exe就简单了,就是搜狗浏览器
- 观察剩余的几个,并没有发现什么可疑的。便开始整理数据,以便今后有需要研究再来查表:
- 联网次数
- 外网地址
-
使用sysmon工具监控系统
- sysmon是微软Sysinternals套件中的一个工具,使用sysmon工具前首先要配置文件。这里我选择:进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread
- 随后是配置文件,需要先了解配置文件应该怎么写:
- ① 进程创建ProcessCreate的过滤事件选项有:
-
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
- 这里我用到了Image、SourceIp、SourcePort。
- ② 进程创建时间FileCreatTime的过滤事件选项有:
-
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
- 这里我用到了Image。
- ③ 网络连接NetworkConnect的过滤事件选项有:
-
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
- 这里我用到了Image、SourceIp、SourcePort。
- ④ 远程线程创建CreateRemoteThread的过滤事件选项有:
-
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
- 这里我用到了TargetImage、SourceImage。
- 更多可参考使用轻量级工具Sysmon监视你的系统,配置自己的文件
- 随后创建自己的配置文件:
- 随后准备sysmon,着手监视工作
- 在启动前先看一下其参数配置:
- 可以看到,使用 i 参数帮助我们安装,安装成功界面如下:
- 随后使用 c 参数使刚创建的配置文件生效:
- 计算机管理->事件查看器->应用程序和服务日志->Microsoft->Windows->Sysmon->Operational。在这里,我们可以看到按照配置文件的要求记录的新事件
- 随后利用在之前实验中生成的后门程序,启动 kali 回连主机
- 查看日志,可以看到后门程序的相应信息(包括连接协议、Kali的IP、使用的端口号、使用者及使用的软件名等)
- 除此之外,还发现了一些其他有趣的日志:
- svchost.exe是微软视窗操作系统里的一个系统进程,管理通过Dll文件启动服务的其它进程。一些病毒木马伪装成系统dll文件通过Svchost调用它,试图隐藏自己。
二、恶意软件分析
- 分析该软件在:启动回连;安装到目标机;其他任意操作时(如进程迁移或抓屏),该后门软件:读取、添加、删除了哪些注册表项;读取、添加、删除了哪些文件;连接了哪些外部IP,传输了什么数据(抓包分析)
-
静态分析
-
文件扫描(VirusTotal、VirScan工具等) 文件格式识别(peid、file、FileAnalyzer工具等) 字符串提取(Strings工具等) 反汇编(GDB、IDAPro、VC工具等) 反编译(REC、DCC、JAD工具等) 逻辑结构分析(Ollydbg、IDAPro工具等) 加壳脱壳(UPX、VMUnPacker工具等)
-
(1)VirusTotal分析
- 将程序丢入VirusTotal,查看其详细信息
- 可以看到这个恶意代码的SHA-1摘要值、MD5摘要值、文件类型、文件大小等等,报毒数是(34/72),算是比较高的了
-
(2)PEiD分析
- PEiD是检查加壳的恶意代码,几乎可以侦测出所有的
- 先检查一下啥壳都没加的:什么都没找到
- 再检测一下使用了upx的:
- PEiD成功检测出了加壳的相关信息。
-
(3)PE Explorer分析
- PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,可直接浏览、修改软件资源,包括菜单、对话框、字符串表等;还可以快速对W32DASM软件反编译,编辑PEditor 软件的PE文件头,可以更容易的分析源代码,修复损坏了的资源,可以处理 PE 格式的文件有:EXE、DLL、DRV、BPL、DPL、SYS、CPL、OCX、SCR 等 32 位可执行程序。
- 通过使用PE Explorer分析恶意代码所链接到的dll库。打开之前的后门程序:
- 在“查看→引入”可以查看引入的dll库,分析:
- KERNEL32.dll:是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
- msvcrt.dll:是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能。
- ntdll.dll:ntdll.dll是重要的Windows NT内核级文件。描述了windows本地NTAPI的接口。当Windows启动时,ntdll.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
- 将之前生成的其他几个恶意代码都放进去查了一下,发现所有后门程序都会引用KERNEL32.dll这个库。那么可以猜想这是后门程序必须有的一个链接库,可能会被杀软们当成另一种“特征码”来看待。
-
动态分析
-
快照比对(SysTracer、Filesnap、Regsnap工具等) 抓包分析(WireShark工具等) 行为监控(Filemon、Regmon、ProcessExplorer工具等) 沙盒(NormanSandbox、CWSandbox工具等) 动态跟踪调试(Ollydbg、IDAPro工具等)
- (1)Threatbook沙盒检测
- 沙盒检测结果(7/25)查杀概率为28%
- 行为检测中查看异常
- 可以看到,反检测技术、反逆向工程、PE文件节数量异常,都成为了该文件是危险文件的标志!
- (2)快照比对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 只查看不同的项
- 对比快照一和快照二:增加了后门程序 20175221_backdoor.exe ,许多键值和文件都有被修改,亦或是增加、删除!
- 对比快照二和快照三(回连前与回连后):
- 可以看到新增的后门进程,以及源IP、目的IP、端口号、连接的协议
- 该后门程序还生成了很多文件、目录和键值,同时也有很多未授权的地方是看不了的!
- 对比快照三和快照四:kali上执行
dir
指令,但是变化不大 - 对比快照四和快照五:kali上执行
record_mic
指令 - 注册表项中有以下变化:
- 新建了很多连接,其中有与后门程序相关的 Apache HTTP Server
- (3)WireShark抓包分析
- 回连前打开WireShark,选择本地连接WLAN,开始抓包
- 回连后关闭抓包,分析抓到的包:可以看到kali与win10连接的过程中产生了大量TCP包,并且找到了三次握手
- 查看详细内容,看到端口、源IP、目的IP、通信协议等等
实验收获与感想
- 这次实验做下来,感觉并没有遇到什么困难。主要训练的还是分析恶意代码的能力,当怀疑自己的PC中了恶意代码,那么该如何去侦测;亦或是发现了木马病毒,该如何去消灭它,这些技巧我觉得在个人生活中还是挺实用的。
- 也才知道原来分析方法有动态和静态,这也衍生出了许多以前没使用过的工具:SysTracer、PE Explorer、PEiD等等,也终于不用只会说wireshark了,算是除了抓包以外又学会了一些保护电脑的方法
原文地址:https://www.cnblogs.com/zxja/p/12628194.html
时间: 2024-10-08 19:27:15