20184307章森洋《网络对抗技术》Exp4 恶意代码分析
《网络对抗技术》Exp4 恶意代码分析
基础知识
定义:
又称恶意软件,指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵犯用户合法权益的软件。
指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。
特征:
恶意的目的
本身是计算机程序
通过执行发生作用
分类:
计算机病毒
蠕虫
后门
特洛伊木马
Rootkit
...等
实验问题回答
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
首先就是用Windows自带的计划任务schtasks,按照上面的操作,每隔一段时间,然后把结果都导入到EXCEL中,看看哪些进程占比较多,是否是可疑进程。做完一个大致的筛选,选出比较可疑的,缩小范围之后就可以对这些可疑进程进行分析。
静态分析:VirusTotal、VirusScan进行扫描较为方便
动态分析:SysTracer工具可以创建快照,并对不同快照进行对比分析
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
用sysmon可以查看该进程创建了哪些日志文件
用SysTracer工具可以查看该进程对注册表、文件还有应用程序进行了哪些修改
用Wireshark进行抓包,可以看该进程传输了哪些数据
实验过程及内容
系统运行监控
Windows计划任务schtasks
1.在cmd模式下输入如下指令schtasks /create /TN 20184307netstat /sc MINUTE /MO 2 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
下面是一些参数的含义:
TN:Task Name,是创建的文件名
SC: SChedule type,本例中是MINUTE,以分钟来计时
MO: MOdifier,间隔多少时间,每几分钟运行一次
TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
>:将结果输出到c盘下的netstatlog.txt文件中
注意到为什么我第一次没有创建成功,是因为指令中的没有空格,而这种空格以及大小写无论是在linux还是powershell中都是有这非常严格的标准的
2.在c盘中创建批处理文件,来显示我们netstatlog文件中的内容
这里我们要注意我们是无法直接出创建.bat文件的,所以要通过先创建记事本文件,在通过另存为保存到c盘底下
在桌面新建文本文档,内容为
date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
之后,另存为,注意这里要将文件类型改为所有文件,同时将文件名的后缀从.txt改为.bat,即可创建批处理文件
3.打开控制面板->管理工具->任务计划程序
找到我们的文件,选中任务,找到操作,点击所有项里的属性选项
找到操作选项卡,双击详细信息,把框中原本的cmd
改成c:\Users\sunmmy\netstatlog.bat
。
这时我们再次打开netstatlog.txt文件就可以看到具体内容了
4.这里我们用Excel来处理数据,当然有实力的同学也可以用spass或者Python来处理都是可以的
我们在数据菜单中选择自文本,选择记录连接情况的netstatlog.txt,然后选择分隔符
在文本导入的第二步全选
这样我们就把文件夹里面的内容全部转移到了Excel里面
先选中我们要分析的数据列,在插入中选择数据透视图
将右侧菜单中的数据拖到下面两个方框中,就能生成我们要的数据透视图
可以看到MESEDGE.EXE是最多的,这个也就就是wins自带的浏览器
其次就是SESVC.EXE,这是360浏览器,排在第二位
剩下的就是一些系统平时运行的程序,没有发现可疑程序。
sysmon
sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。
1.首先在网站上下载sysmonsysmon或者在百度网盘上下载,提取码为Gy24。
之后将压缩包解压,进行软件的安装。这里可以参考使用轻量级工具Sysmon监视你的系统去学习sysmon的原理
我们在win+r模式下输入powershell
,然后输入Start-Process powershell -Verb runAs
进入管理员模式
用cd
指令进入安装sysmon的盘下面
输入指令.\Sysmon64.exe -i
进行安装
使用 -h命令可以查看参数帮助
在实际环境中,往往生产环境和使用需求不尽相同,而记录所有的日志又显得繁琐和庞大,这时候自定义规则显得尤为重要。sysmon提供了xml格式的配置文件来让用户自定义过滤规则,配置文件的东西比较多。因此我们需要自己设置一个xml文件来进行环境配置。这里就可以用一个外国大佬已经配置好的文件进行复制粘贴。xml文件
用-c指令来进行配置
从图中可以看出版本号为4.50
之后就是查看日志,打开事件查看器,在应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational,运行试验二生成的后门,进行监听,具体可以参考实验二Meterpreter
监听成功之后在kali里面输入win命令行,就可以找到sysmon监听的进程了。我们可以查看详情,发现的确是在kail中生成的后门程序触发的事件。
恶意软件分析
静态分析
主要有以下几种分析方法:
文件扫描(VirusTotal、VirusScan工具等)
文件格式识别(peid、file、FileAnalyzer工具等)
字符串提取(Strings工具等)
反汇编(GDB、IDAPro、VC工具等)
反编译(REC、DCC、JAD工具等)
逻辑结构分析(Ollydbg、IDAPro工具等)
加壳脱壳(UPX、VMUnPacker工具等)
1.文件扫描(VirusTotal)
首先我选用的就是实验三用过的virustotal
我们在详情里面可以看到MD5,SHA-1,SHA-26等等文件信息
2.文件格式识别peid工具
PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
我们拿实验三用过的加壳文件,发现Upx是0.89.6版本,可以检测出来
3.反编译、反汇编PE Explorer工具
PE Explorer 2.0汉化版是一款资源编辑器,它支持直接查看、修改软件的资源,包括菜单、对话框、字符串表等,软件还具备有W32DASM 软件的反编译能力和PEditor软件的PE文件头编辑功能。
功能特点:
1、资源编辑器:资源编辑器提供了所有的资源文件(位图,JPEG,PNG,图标,字符串等),进行彻底的外观和允许您进行修改,而无需重新编译源代码。
2、节头的浏览器:PE资源管理器允许您查看的节数,其名称,大小和属性。 您可以提取物,重命名,重新计算,或删除程序体部分。
3、段编辑器:恢复到真正的数据文件中的部分“抵消原始值是不是一件容易的事。 在许多方面,它依赖于直觉和假设,几乎是不可能的,完全自动化给予的过程。 该科的编辑器可以让你方便解决这些问题。
4、反汇编:PE Explorer的反汇编程序,采用了质的算法设计,以尽可能最高的精确度与重建的目标二进制的Win32 PE文件(EXE,DLL,OCX)的汇编语言源代码。
5、依赖扫描器:依赖扫描仪显示所有选定的PE文件依赖于外部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)编译的程序提供了初始化(如获取命令行参数)以及退出等功能。
这里我们还可以用反汇编功能
动态分析
主要有以下几种方法:
快照比对(SysTracer、Filesnap、Regsnap工具等)
抓包分析(WireShark工具等)
行为监控(Filemon、Regmon、ProcessExplorer工具等)
沙盒(NormanSandbox、CWSandbox工具等)
动态跟踪调试(Ollydbg、IDAPro工具等)
1.快照比对比(SysTracer工具)(http://www.blueproject.ro/systracer/)
这里抓取了三种状态:
snapshot#1:不做任何操作
snapshot#2:启动后门回连msf
snapshot#4:远程在win10上执行查看文件、建立新文件夹、查看用户等操作
1V2
对比一二张图在后门回连后我们可以找到后门进程
在only different下,我们可以发现这些注册表发生了变化
HKEY_current_USER
HKEY_LOCAL_MACHIME
HKEY_USERS
这里我们还可以发现增加了很多的dll文件
1v4
变化不大,也是增加了很多东西
2.wireshark
输入dir之后捕获到的数据包
我们发现kali和win是通过tcp三次握手连接,我们点击其中一个进行细看
从数据包中可以看到源IP、目的IP、源端口、目的端口以及传输的数据。
实验中遇到的问题
实验二生成的后门文件一直不能成功回连
会遇到kali进入监听后,在win运行程序后门程序没法应,我一开始以为是ip或者是端口号二者匹配错误,后来重复去生成了好几个后门,还是如此,之后我就在虚拟机网络设置里面将虚拟机的网络换成以太网,连接模式换成桥接模式,而不是我手机的热点,发现能成功了
实验体会
这次实验操作性很强,在做的过程中会遇到很多没有学过的问题,特别是使用到的这些软件的具体操作,都不是很了解,因此花费了较长的时间。不过通过此次试验,让我对恶意代码的分析、遇到恶意代码要如何解决以及如何防范恶意代码有了深入的理解。也知道了如果在今后电脑中遇到木马软件或者可以程序,我们可以通过哪些方法去查。