Exp4 恶意代码分析

一、实践内容

系统运行监控

(1)使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)

在命令行中输入以下命令,创建任务计划netstat1315
schtasks /create /TN netstat1315 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > d:\netstatlog.txt

在D盘中创建一个脚本文件 netstat1315.bat

因为不能直接写入.bat文件,所以我在D盘创建了一个netstat1315.txt文本文件,并写入以下内容,并修改后缀名为.bat

date /t >> d:\netstat1315.txt 
time /t >> d:\netstat1315.txt 
netstat -bn >> d:\netstat1315.txt

在Windows的任务计划程序中,可以查看到新创建的任务:

双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的 netstat1315.bat 批处理文件的位置,点击确定。

在"条件"选项卡中可以看到,电源选项中默认操作为“只有在计算机使用交流电源时才启动此任务”,那么使用电池电源时就会停止任务。为了我们统计足够多的数据,这个选项取消掉。

勾选上这个脚本“使用最高权限运行”。然后再右键点击运行

生成文件netstat1315.txt

在wps的Excel表格中分析记录的数据

导入文本数据:新建excel文件->选择上方“数据”->选择“导入数据”->选择“导入数据”->选择“直接打开数据文件”

选择数据源文件:在D盘中(这里按照自己生成的位置)选中netstat1315.txt

依次选择其他编码、分隔符号,然后将分隔符号的所有选项都选中,点击完成即可

创建数据透视图

选中我们所要分析的列,选择“插入”——数据透视图——新工作表

在新的工作表中,在右侧字段列表中筛选我们不需要的字段

将字段列表拖到下方的行和值中,就生成了我们所需的数据透视图

分析:

最多的是TCP,大多为http和https连接;

第二个多的就是vmware.exe,此时我的kali虚拟机正在运行。

三个多的是wpscloudsvr.exe,与Wps.exe相同都是wps相关进程。

其他的就是一些系统进程,firefox.exe也正在运行

(2)使用sysmon工具监控系统(安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。)

明确要监控的目标。

进程创建ProcessCreate

进程创建时间FileCreatTime

网络连接NetworkConnect、远程线程创建CreateRemoteThread。

编写xml配置文件:

在sysmon所在的文件夹下:

<Sysmon schemaversion="3.10">

 <!-- Capture all hashes -->

 <HashAlgorithms>*</HashAlgorithms>

 <EventFiltering>

  <!-- Log all drivers except if the signature -->

  <!-- contains Microsoft or Windows -->

  <ProcessCreate onmatch="exclude">   

   <Image condition="end with">chrome.exe</Image> 

  </ProcessCreate>

 

  <FileCreateTime onmatch="exclude" >

   <Image condition="end with">chrome.exe</Image>

  </FileCreateTime>

  

  <NetworkConnect onmatch="exclude">

   <Image condition="end with">chrome.exe</Image>

   <SourcePort condition="is">137</SourcePort>

   <SourceIp condition="is">127.0.0.1</SourceIp>

  </NetworkConnect>

  <NetworkConnect onmatch="include">   

   <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>

启动sysmon(要以管理员的身份运行命令行)

输入命令Sysmon64.exe -i sysmon20201315.xml,安装sysmon,结果如下

使用事件查看器分析进程

查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational

在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、级别、任务类别、详细信息等。

运行我们在实验三中生成的后门程序20201315_veil_upx.exe,并启动回连到kali虚拟机中。

打开事件查看器 ,根据运行时间可以很容易地找到刚刚运行的后门的相关信息。

在事件查看器中查看了如下信息:

恶意代码分析

静态分析——VirusTotal网站扫描恶意软件

· 使用VirusTotal分析恶意代码基本信息如下:

查看恶意代码的基本属性,可以看出它的SHA-1、SHA-256、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。

静态分析——PEiD软件分析恶意软件

PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。

扫描模式

正常扫描模式:可在PE文档的入口点扫描所有记录的签名;

深度扫描模式:可深入扫描所有记录的签名,这种模式要比上一种的扫描范围更广、更深入;

核心扫描模式:可完整地扫描整个PE文档,建议将此模式作为最后的选择。PEiD内置有差错控制的技术,所以一般能确保扫描结果的准确性。前两种扫描模式几乎在瞬间就可得到结果,最后一种有点慢,原因显而易见。

查看实验二中生成的普通后门文件

发现显示:yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h)*

上网查了资料以后,该信息说明没有加壳,作者加了花指令,伪装成yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h)

查看经过压缩壳的后门程序,可以查看到压缩壳的版本

查看加了压缩壳之后又添加加密壳的文件

分析:说明了该软件无法检测到加密壳。证明了加密壳一定程度上有着绕过安全检测、隐藏恶意代码后门程序的作用,但这也可能由于该检测软件的功能缺失。

静态分析——使用PE Explorer分析恶意软件

PE Explorer是一款资源编辑器,它支持直接查看、修改软件的资源,包括菜单、对话框、字符串表等,软件还具备有W32DASM 软件的反编译能力和PEditor软件的PE文件头编辑功能。

我们用它打开20201315_backdoor.exe,我们可以看到这个软件的文件头信息(基本信息),比如节对齐粒度、文件对齐粒度、时间戳、映像基址ImageBase等等

我们通过视图还可以查看数据目录、节头等详细信息

通过视图——引入可以查看此软件引用的dll

动态分析——使用systracer分析恶意软件

点击右侧的take snapshot,拍摄快照。点击start开始,不用点击stop,当拍摄完毕会自动停止。

截了以下五张快照:

· 快照一:未移植后门程序,保存为Snapshot #1

· 快照二:运行后门程序并在kali中实现回连,保存为Snapshot #2

· 快照三:在kali中使用dir指令,保存为Snapshot #3

· 快照四:在kali中使用screenshot和record_mic指令,保存为Snapshot #4

· 快照五:在kali中使用getuid指令,保存为Snapshot #5

接下来我们对比快照,分析恶意软件在执行过程中系统有哪些变化

对比快照1和快照2(后门程序运行前后)

选中要对比的两个快照,点击右下角compare,在view mode中选择only differences方便查看。

点击application,在opened ports中能看到后门 20201315_veil_upx.exe ,连接的本地地址和目标地址以及端口号

在opened handles中,增加了一些文件,也删除了一些文件,以及键值的变化

loaded dll中,查看启动后门程序后增加和删除的dll文件

running processes中,点击 20201315_veil_upx.exe 显示为SysTracer no registered

对比快照2和快照3

对根键中的内容进行修改,对注册表中的配置信息进行了修改

在opened ports中看到两次操作间的虚拟机vmnet8间的交互

running processes中,查看多出来的 conhost.exe

Conhost.exe全称是Console Host Process, 即命令行程序的宿主进程。简单的说他是微软出于安全考虑,在windows 7和Windows server 2008中引进的新的控制台应用程序处理机制。

对比快照3和快照4(4使用了screenshot和record_mic指令)

多出来了svchost程序,删除了之前建立的调用许多DLL的过程

对比快照4和快照5(5使用了getuid指令)

可以发现注册表有变化

发现根键中的内容进行了修改,同时,也增加了很多dll文件

使用wireshark抓包分析恶意软件

运行后门20201315_door.exe,在kali中回连。把过滤规则设置为ip.addr == 192.168.136.129,只留下与kali机有关的包

我们可以看到前三个包为TCP连接的三次握手

在kali中输入dir,发现wireshark又捕获到了许多PSH+ACK包,可以判断有数据在传输

二、实验后回答问题

(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

使用windows自带的schtasks指令设置一个计划任务,发现网络连接异常;使用Sysmon记录有关的系统日志;使用Process Explorer工具,监视进程执行情况;使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动;使用Systracer拍摄快照,对比不同快照,查看是否有可疑的增删注册表、启动项的行为;使用wireshark查看自己计算机的端口开放情况,查看未知端口进行可疑的数据传输。

(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

使用systracer工具分析恶意软件,查看其对注册表和文件的修改;使用Wireshark进行抓包分析,监视其与主机进行的通信过程;使用PEiD查看程序是否加壳,加的什么壳;使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

三、遇到的问题

用wireshark抓包时抓不到对应的包

问题解决:发现之前抓的都是WLAN ip的包,但kali回连后用于通信的ip并不是WLAN对应的ip,根据kali的提示,对正确的ip进行抓包后成功抓到了相应的包。

四、实验总结与体会

​ 本次实验我们尝试使用了许多种方式对系统进行了监控、对恶意软件进行了分析,这对平时主机的使用和保护都有着重大的实际作用。从前几次实验中,我们已经了解了一部分恶意软件进行攻击的方式,而这一次我们学会了如何对抗他们。对抗,就要有功有防,这些都是我们这门课程的重要组成部分,我将在未来学习中将这部分知识做到活学活用。

posted @ 2023-04-06 20:28  无响应trance少年  阅读(40)  评论(0编辑  收藏  举报