2019-2020-2 20175308杨元 《网络对抗技术》Exp4 恶意代码分析

2019-2020-2 20175308杨元 《网络对抗技术》Exp4 恶意代码分析

一、实验目标与内容

1.实践目标

  • 监控你自己系统的运行状态,看有没有可疑的程序在运行。
  • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件
  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

2.实践内容

2.1 系统运行监控

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点是可疑行为。

2.2分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

  • 读取、添加、删除了哪些注册表项
  • 读取、添加、删除了哪些文件
  • 连接了哪些外部IP,传输了什么数据

二、实践步骤

1.使用schtasks指令监控系统

1.使用命令schtasks /create /TN netstat5308 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt" 创建计划任务nestat5308

上条命令中的参数分别为:

  • TN是TaskName的缩写,我们创建的计划任务名是netstat5308;
  • sc表示计时方式,我们以分钟计时填MINUTE;
  • TR是Task Run,要运行的指令是netstat
  • bnb表示显示可执行文件名,n表示以数字来显示IP和端口;
  • >表示输出重定向,将输出存放在c:\netstatlog.txt文件中

2.在C盘中创建一个名为netstat5308.bat的脚本文件,写入以下内容:

date /t >> c:\netstat5308.txt
time /t >> c:\netstat5308.txt
netstat -bn >> c:\netstat5308.txt
  1. 打开任务计划程序,可以看到新创建的这个任务:

4.双击此任务,点击操作->编辑,将程序或脚本改为我们创建的netstat5308.bat文件,点击确定。

5.在常规 栏勾选不管用户是否登录都要运行使用最高权限运行

6.接下来等待脚本执行一段时间(这段时间内要保持开机联网状态),就可以在netstat5308.txt文件中查看到这段时间内的联网记录
7.通过参考学姐的博客将存储的数据导入到excel表中进行整理,按照博客中所述调整添加到报表中的字段即可
8.整理好的数据图表如下:

9.从图表中我们可以看出,联网最多的程序有浏览器、百度网盘、微信等,甚至还有一条我一直认为是单机游戏的联网记录。总体来讲,没有发现什么可疑的程序。

2.使用sysmon工具监控系统

1.下载Sysinternals套件,Sysmon是该套件中的一个工具,可以监控几乎所有的重要操作。
2.确定要监控的目标。对信任的程序设置白名单,让信任程序尽量不要记到日志里,日志多了不好分析。
3.明确了要监控的目标后,在Sysmon所在的目录下创建相应的配置文件sysmon20175308.xml了,我的配置文件如下:

<Sysmon schemaversion="10.42">
  <!-- 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>

    <ProcessCreate onmatch="include">
      <ParentImage condition="end with">cmd.exe</ParentImage>
    </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">firefox.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>

这里在任务过程中不做太多要求,但要明确一下各标签的概念

  • <Sysmon schemaversion="10.42">中的10.42意味当前Sysmon的版本为10.42版本,这个版本可以右键点击Sysmon,在属性中查看详细信息获知

  • exclude相当于白名单,不用记录。include相当于黑名单。onmatch意为匹配。

  • ProcessCreate表示进程创建

  • NetworkConnect是网络连接

  • CreateRemote是远程线程创建。这里使用“include”选择记录目标为explorer.exe、svchost.exe、firefox.exe、winlogon.exe和powershell.exe 的远程线程,这些程序的详细含义可以参考学姐的博客

  • FileCrete Time是进程创建时间

4.打开cmd,进入sysmon所在的文件夹,输入Sysmon.exe -i sysmon20175308.xml

出现这样的画面其实是失败的,我们需要以管理员身份运行cmd,重新输入命令后成功启动。

5.打开计算机管理,查看事件查看器,在应用程序和服务日志/Microsoft/Windows/Sysmon/Operational中,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别以及详细信息。

6.在这里我们看到时间线最早的一条日志就是找到我们创建的sysmon20175308.xml配置文件

3.恶意软件分析

使用实验三生成的后门程序回连kali虚拟机

1. 这里要先进行wireshark的捕包操作,先打开wireshark,捕包开始后进行回连。

这里我们可以看到,后门回连过程中建立了完整的三次握手,且由win10(192.168.2.10)主动连接kali(192.168.3.24)。
2. 从下图我们可以看到,在11:25:48的时候进行后门回连。但在事件查看器中并没有明显的显示后门程序的记录。

经过多次测试发现,在后门回连的同一时刻虽然不会显示后门信息,但是总会有一条smartscreen.exe的记录。一开始我怀疑这个是后门程序进行某种伪装后的表现方法,但发现从ip地址到端口都不符合。后门连接显示地址应为“192.168.3.10:51797”,而该事件的源地址和端口却是“192.168.3.10:51796”。

上网查找相关信息后,初步得到了答案。

SmartScreen 筛选器对照最新报告的仿冒网站和恶意软件网站的动态列表,检查您访问的站点,它还会对照报告的恶意软件网站的同一动态列表,检查从 Web 下载的文件。如果 SmartScreen 筛选器找到匹配项,它将显示一个红色警告,通知您为了您的信息安全已经阻止了该网站。

所以我认为过程是回连过程中,因为是win10主动连接kali的地址,因此smartscreen.exe连接某个服务器,比对最新报告的仿冒网站看所访问的地址是否有风险。但kali的地址只是我的一台虚拟机,并不是一个被记录过的仿冒网站,因此这步的结果会是通过的。

使用后门程序对Win10进行各种操作查看抓包和事件

1.使用webcam_snap进行图片抓取。
1.1 wireshark中抓包数量激增,但是看不懂qwq。。。但通过PSH+ACK包(主要是PSH)可以判断有DATA数据在传输。

1.2 事件查看器中出现两条相关记录,任务类别均为Driver loaded(驱动加载),且具有Microsoft Windows签名。

2. 使用getuid进行提权操作
这里我的事件查看器并没有更新。wireshark中新增了4条包。

使用Systracer进行分析

1.首先下载并安装Systracer

2.点击右侧的take snapshot,存储快照。

  • 快照一(Snapshot #1):未移植后门程序
  • 快照二(Snapshot #2):植入后门程序
  • 快照三(Snapshot #3):运行后门程序并在kali中实现回连
  • 快照四(Snapshot #4):执行websnam_snap命令
  • 快照五(Snapshot #5):执行getuid命令

2.点击右下角的compare或者View Differences Lists比对各快照,也可以选择Only Difference只查看不同的项
3.对比快照一和快照二。可以看到新增加了我们植入的后门程序20175308_backdoor.exe,同时还有增删了许多的文件。

4.对比快照二、三,即后门启动前和启动后的变化。我们看到后门启动后的快照三中显示正在运行的程序增加了我们的后门程序。

同时我们还可以看到启动后门程序后增添了非常多的文件,主要是dll文件

可能是由于我使用的是最新的2.6版本,相较参考的学长学姐的2.10版本,发现无法明显的查看到连接的ip地址与端口,但是还是可以清晰的看出对文件和注册表的增删。
5.比对快照三四,对注册表和文件的修改操作:

其他静态分析

1.使用PEiD分析恶意软件:

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

  • 查看没有加壳的后门文件

  • 查看加了压缩壳的后门文件

  • 查看加了加密壳的后门文件

从图中可以看出,加了压缩壳的后门文件是可以检测出来的,但加了加密壳的后门文件是无法检测出来的。

2.使用virustotal扫描恶意软件

使用virustotal扫描可以看到恶意软件的相关信息,以及使用的dll文件。


##DETAILS

Basic Properties
MD5	05f98442cdf3c99c2ab353fa43ffafe5
SHA-1	31981112efc1b7de3a4156fcf3f931bc0ca0c543
SHA-256	da3bcf38d6c3b152f54aa71905c472d14ff066865a2052c99a1cb49e6a920507
Vhash	01504d0d765d1bz3!z
Authentihash	4317eea0fe77d8bd04be774f07b55e0726bc8b62b7718c72b8a259a224ea2963
Imphash	17a4bd9c95f2898add97f309fc6f9bcd
SSDEEP	3072:apDWW2/S9R9lvVWtHBOii/bwuJMO1ExNvGQQQt:CDWWGS9FstWZJ4T7
File type	Win32 EXE
Magic	PE32 executable for MS Windows (GUI) Intel 80386 32-bit
File size	113.50 KB (116224 bytes)
History
Creation Time	2020-03-31 13:31:58
First Submission	2020-03-31 13:41:28
Last Submission	2020-03-31 13:41:28
Last Analysis	2020-03-31 13:41:28
Names
upxed_20175308_hyperion.exe
Portable Executable Info
Header
Target Machine	Intel 386 or later processors and compatible processors
Compilation Timestamp	2020-03-31 13:31:58
Entry Point	439788
Contained Sections	4
Sections
Name	Virtual Address	Virtual Size	Raw Size	Entropy	MD5
.bss	4096	319488	0	0	d41d8cd98f00b204e9800998ecf8427e
.data	323584	99872	100352	7.99	65e8c0da95bdbfbb5600b8b360d27d84
.text	425984	14057	14336	5.17	0db3da594560fbdee7cab4ec727c9f7b
.idata	442368	136	512	1.29	260d24d41289a4ffd343ab548a3e76cc
Imports
KERNEL32.DLL
ExifTool File Metadata
CodeSize	14336
EntryPoint	0x6b5ec
FileType	Win32 EXE
FileTypeExtension	exe
ImageFileCharacteristics	No relocs, Executable, No line numbers, No symbols, 32-bit
ImageVersion	0.0
InitializedDataSize	100864
LinkerVersion	1.71
MIMEType	application/octet-stream
MachineType	Intel 386 or later, and compatibles
OSVersion	1.0
PEType	PE32
Subsystem	Windows GUI
SubsystemVersion	4.0
TimeStamp	2020:03:31 14:31:58+01:00
UninitializedDataSize	0
VirusTotal

##BEHAVIOR

Files Opened
C:\WINDOWS\system32\winsock.dll
C:\da3bcf38d6c3b152f54aa71905c472d14ff066865a2052c99a1cb49e6a920507
\\.\PIPE\lsarpc
C:\WINDOWS\system32\winsock.dll
C:\WINDOWS\system32\drwtsn32.exe
C:\WINDOWS\system32\netmsg.dll
Process And Service Actions
Processes Created
C:\WINDOWS\system32\drwtsn32 -p 1200 -e 172 -g
Synchronization Mechanisms & Signals
Mutexes Created
ShimCacheMutex
Modules Loaded
Runtime Modules
kernel32.dll
rpcrt4.dll
shlwapi.dll
version.dll
shell32.dll
user32.dll
advapi32.dll
ntdll.dll

三、实验后问题回答

1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答: 使用schtasks对机器进行监听,在机器运行一段时间后整理监听记录。也可以使用Sysmon对事件进行记录,通过事件查看器的任务类别,判断有没有可以的行为或连接记录。还可以使用Systracer拍摄几个不同时间的快照,对比不同时间的快照判断是否有可疑的增删注册表行为。

2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答: 通过systracer工具进行相关的分析,查看它对注册表和文件的修改。还可以使用Process Explorer工具监控相关进程和线程的活动,以及通过进程找出可疑文件的位置。

四、实验总结

这次实验其实操作上并不难。但是相比以前重在操作的实验,这次的实验更多的内容在于对程序运行结果、事件日志的分析,一时间有点没有适应过来。通过参考一些学长学姐的报告,找到了大概的方向,但由于使用软件版本的不同,实验中的细节也有很多不同,总体来讲还是花费了一番精力,但也很有收获。

posted @ 2020-04-12 16:25  20175308杨元  阅读(569)  评论(1编辑  收藏  举报