2020-2021-2 20181304石昊林《网络对抗技术》 Exp4 恶意代码分析
恶意代码分析
目录:
- 实验内容
- 实践目标
- 实践内容
 
- 实验过程
 一、系统运行监控
 - 使用windows计划任务schtasks监控系统
 - 使用sysmon工具监控系统
 二、恶意代码分析
 - wireshark抓包分析
 - PEview分析后门程序
 - 静态分析:文件扫描
- 问题回答
- 实验遇到的问题和体会
实验内容
- 实践目标
- 监控你自己系统的运行状态,看有没有可疑的程序在运行.
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
- 实践内容
- 系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
 
- 恶意软件分析:分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件:
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
 
实验过程
一、系统运行监控
1.使用windows计划任务schtasks监控系统
- 输入以下命令,它会记录下有哪些程序在连接网络。此命令完成后,每隔1分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里。
 schtasks /create /TN netstat1304 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
 上述命令中的参数分别为:- TN:TaskName,我们创建的计划任务名称为netstat1304。
- sc:计时方式,我们以分钟计时填MINUTE。
- TR:Task Run,要运行的指令是netstat。
- bn:b表示显示可执行文件名,n表示以数字来显示IP和端口。
- >:输出重定向,将输出存放在c:\netstatlog.txt文件中。
  
 
- 在C盘中创建一个名为netstat1304.bat的脚本文件(记事本写入后保存,将.txt后缀改为.bat),写入以下内容:
  
- 打开任务计划程序可以看到我们新建的任务程序netstat1304。
  
- 点击计划属性,然后操作选项卡里面的编辑启动程序,把程序或脚本的cmd改成netstat1304.bat。
  
- 在常规选项卡勾选“不管用户是否登录都要运行”和“使用最高权限运行”。
  
- 使用Excel中的数据透视图查看netstat.txt文件中记录下来的联网记录,并进行分析:
   - 出现最多的依次是TCP、mesdge.exe、Excel.exe。TCP指的是TCP连接,是在应用进程之间建立传输连接。mesdge.exe是我的浏览器进程。Excel.exe是我正在使用的Excel进程。
- 分析一下TCP中几个外部IP的所在地,看一下有没有可疑连接:
  
  
  
- 这三个ip地址中,前两个是浏览器进程产生的TCP连接,第三个是svchost.exe(微软Windows操作系统中的系统文件)产生的TCP连接,这看起来是正常的连接。
- TCP连接中大部分端口是443端口(https),还有一部分是80端口(http)。http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
 
2.使用sysmon工具监控系统
- 下载后到sysmon.exe所存在的文件夹内,新建一个xml文件,与bat文件形式类似,文件中写入以下代码:
  
- 输入:sysmon -accepteula  -i shl.xml,启动sysmon。
- -i是在第一次启动sysmon时使用。
- 切记要以管理员身份运行命令提示符。
  
 
- 接下来打开计算机管理,点击事件查看器,在应用程序和服务日志/Microsoft/Windows/Sysmon/Operational中查看记录。
- 在kali虚拟机下,运行msf控制台开启监听,然后再kali虚拟机中获取Windows的命令行。
  
- 回到事件查看器,查找我们的后门文件1304Exp2_Exp4.exe,如下图:
  
 这个后门文件的连接就被我们监控到了。
二、恶意代码分析
1.wireshark抓包分析
- 首先打开wireshark,选取VMware的接口(这个接口的ip地址是192.168.91.1,和我的kali虚拟机是同一网段)。
  
- 使用之前实验生成的后门程序,在wireshark抓包的同时进行回连(过滤条件使用虚拟机的ip:192.168.91.133)。
  
- 回到wireshark分析抓到的包。
  
 这里是主机和虚拟机相连时候的三次握手协议。客户端(主机)seq=0,发送到服务器端(虚拟机);之后服务器端回一个ack=0+1,表示“我收到你的包了”,然后再发一个seq,有自己的序列号;最后客户端继续回复ack包,表示自己收到。这就是建立的“三次握手”,从图中我们可以看出,端口1304开放。
  
 分析一下里面的数据:首先是arp协议,arp用来查看对方的mac地址,(arp解析),有了mac地址我们组装二层包头,然后建立tcp连接(三次握手)。三次握手之后进行返向arp解析。建立连接之后可以传输数据,传输数据的过程就是我们进行dir、mkdir等操作。
 再看一下这里面的内容代表什么:
  
2.PEview分析后门程序
- 使用PEview打开后门程序,如下图:
  
- 在数据节(.rdata节)中,有5个dll文件及其调用的相关函数。这5个dll文件分别为:ADVAPI32.dll、KERNEL32.dll、MSVCRT.dll、WS2_32.dll、WSOCK32.dll。
 advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关。
 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)编译的程序提供了初始化(如获取命令行参数)以及退出等功能。
 ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。
 wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。
3.静态分析:文件扫描
- 使用实验三中的VirusTotal工具对后门文件进行扫描,结果如下:
  
- 查看并分析这个程序的信息:
   - 该文件是ApacheBench命令行实用程序
- 根据Apache许可证2.0版(以下简称“许可证”)获得许可;除非遵守许可证,否则不得使用此文件。您可以在以下网址获得许可证副本:http://www.apache.org/licenses/LICENSE-2.0 。除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发,无任何明示或暗示的保证或条件。请参阅许可证以了解管理许可证下的权限和限制的特定语言。
 
问题回答
- 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用windows自带的计划任务schtasks,按照自己的设定,每隔一段时间记录使用网络的程序。然后将结果使用Excel表的数据透视图分析那些进程是可疑的。
- 使用wireshark软件抓包,查看是否有可疑的连接,然后可疑查看可疑ip的地址,从而分析这个它是否有害。
- 使用Sysmon对事件进行记录,通过事件查看器的任务类别,判断有没有可以的行为或连接记录。
 
- 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用PEview分析这个程序的可疑函数。
- 使用wireshark抓包,获取这个程序传输的信息。
- 使用Sysmon可以查看该进程创建了哪些日志文件。
 
实验遇到的问题和体会
- 这次实验过程比较艰辛,中途出了好多差错,花费了不少时间去解决。
- 这次实验中我的虚拟机因为某种原因一直无法回连成功,网上提供的解决方案始终不解决。最后我关了虚拟机,将连接方式改成桥接就解决了……其中解决的原理我没整明白。
- 在使用wireshark抓包时,我重新下载了新版本,但是下载完成后没有接口可以供我使用。我查询到的第一个原因是没有网卡,需要管理员方式在命令行中开启npf服务,亲测不管用,所以我的问题应该不是这个;第二个原因是讲我的Wincap没有作用,于是我想起来在重新安装时它尝试安装一个别的插件,我认为是一个无用的插件就点了拒绝,于是在第二次尝试时我装了这个插件,然后就有了接口,可以正常抓包。
- 在装wireshark时,一不小心在安装结束时点了立即重新启动,导致我写的东西没有保存……功亏一篑的感觉真的挺难受。
 
- 实验感受:这次实验重在分析和上手操作,需要大胆下载软件,然后去学习这些软件怎么用。本次实验的难点在于对自己生成的后门文件进行分析,从而寻找可疑程序的特征,方便我们在以后的使用中判断这些可疑程序。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号