目录

一、实验目标

二、实验原理

三、实验内容

四、实验步骤

五、思考题

六、实验总结


一、实验目标

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

二、实验原理

1.恶意代码

  • 恶意代码的概念和分类
  • 恶意代码是一组使计算机按照攻击者的意图运行以达到恶意目的的指令合集。
  • 恶意代码分为:计算机病毒(Virus)、蠕虫(Worm)、恶意移动代码(Malicious mobilecode)、后门(Backdoor)、特洛伊木马(Trojan)、僵尸程序(Bot)、内核套件(Rootkit)、融合型恶意代码等。
  • 恶意代码分析方法
  • 静态分析(通过反病毒引擎扫描识别已知的恶意代码家族和变种名;逆向分析恶意代码模块构成、内部数据结构、关键控制流程等,理解恶意代码的机理,并提取特征码用于检测)
  • 动态分析(通过在受控环境中执行目标代码,以获取目标代码的行为以及运行结果)
  • 恶意代码分析工具
  • Schtasks
  • WPS 导入 Schtasks记录的数据并使用表格生成统计信息
  • Sysmon
  • 在恶意代码回连服务端(Kali)时对网络协议(TCP、ICMP等)进行捕包分析
  • SysTracer跟踪并监视进程对整个系统的修改行为并进行比较
  • PEiD侦测加壳文件(类型和签名)
  • VirusTotal在线分析恶意代码(相应的的系统文件和注册表)

2、指令/参数

  • schtasks安排命令和程序定期运行或在指定时间内运行

schtasks /create /TN schtasks*** /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"

  • TN任务名
  • sc计时方式,本实验用MINUTE表示以分钟为单位
  • bnb是显示可执行文件的名字,n是用数字表示IP和端口
  • TR要运行的指令
  • >输出重定向即输出的文件路径

3、其他实验原理见MAL_动态分析_Windows计划任务schtasks


 三、实验内容

1.系统运行监控

  • 使用如计划任务每隔一分钟记录电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标:找出所有连网的程序的连接和操作,这个操作是否合适合理,并有针对性的抓包做进一步的分析;
  • 安装配置sysinternals中的sysmon工具,设置合理的配置文件,监控主机的重点事可疑行为;
  • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行(难点在于从大量数据中理出规律、找出问题)。

2.恶意软件分析

  • 分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏),该后门软件:
  • 读取、添加、删除了哪些注册表项;
  • 读取、添加、删除了哪些文件;
  • 连接了哪些外部IP,传输了什么数据(抓包分析)。

四、实验步骤

(一)系统运行监控

1、使用计划任务与netstat命令运行监控

  • 使用schtasks指令添加计划任务(以管理员身份运行cmd并输入指令schtasks /create /TN schtasks4321 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt")

java恶意代码检测 恶意代码分析_数据

  • 在C盘目录下新建一个文本文件 schtasks4321.txt
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt

schtasks4321.bat

  • 任务计划程序编辑计划任务

java恶意代码检测 恶意代码分析_Windows_02

【常规】

java恶意代码检测 恶意代码分析_Windows_03

【操作】——【编辑】

java恶意代码检测 恶意代码分析_Software_04

  • 数据记录:运行任务netstat ,保持电脑的正常使用,一段时间后打开C盘netstatlog.txt查看记录的后台数据。

java恶意代码检测 恶意代码分析_java恶意代码检测_05

  • 数据分析:用WPS的表格工具导入文档数据,生成数据透视图

java恶意代码检测 恶意代码分析_Software_06

java恶意代码检测 恶意代码分析_数据_07

【360se.exe】360浏览器 ,【dgservice.exe】驱动精灵,【DingTalk.exe】钉钉,【et.exe】WPS表格,【knbcenter.exe】猎豹浏览器安全及升级,【kvipwiz.exe】金山毒霸广告弹窗,【kxescore.exe】金山毒霸查杀子系统及文件实时监控服务进程,【QQPCTray.exe】腾讯安全程序,【SearchUI.exe】win10 Cortanar进程,【svchost.exe】windows系统程序,【Wechat.exe】微信,【wps.exe】WPS,【XLServicePlatform】迅雷基础服务

2.sysmon工具监控系统

  • 下载SysinternalsSuite.zip并解压
  • 选择Sysmon64.exe,在【属性】中查看【产品版本】,为【10.42】
  • 在SysinternalsSuit目录中创建sysmon4321.xml,以文本文档方式打开输入代码保存并退出。

java恶意代码检测 恶意代码分析_java恶意代码检测_08

  • 以管理员身份运行cmd,在SysinternalsSuite目录中执行 Sysmon64.exe -i sysmon4321.xml

 

java恶意代码检测 恶意代码分析_java恶意代码检测_09

java恶意代码检测 恶意代码分析_Software_10

  • Operational】查看进程信息。

java恶意代码检测 恶意代码分析_Software_11

 

java恶意代码检测 恶意代码分析_Software_12

(二)恶意软件分析

 分析恶意软件在启动回连和进行截屏、拍照等其他操作时

该后门软件

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

 1.动态分析

1.1通过日志信息和Wireshark捕包信息分析

在【事件查看器】中根据运行时间找到相应后门程序操作的相关信息,在【Wireshark】过滤器中输入筛选条件 ip.addr == 192.168.246.137

  • Kali系统与Windows系统Ping通时捕获ICMP

java恶意代码检测 恶意代码分析_数据_13

  • MSF 反弹连接时捕获 TCP

java恶意代码检测 恶意代码分析_数据_14

jiake4321_code.exe

  • dir查看磁盘中后门程序目录下的文件,捕获TCP包,日志没有更新

java恶意代码检测 恶意代码分析_Software_15

  • getuid查看作为运行服务器的用户,日志更新一条

java恶意代码检测 恶意代码分析_数据_16

 

java恶意代码检测 恶意代码分析_Software_17

SearchFilterHost.exe

  • screenshot截屏,日志更新三条

java恶意代码检测 恶意代码分析_java恶意代码检测_18

audiodg.exe

  • webcam_snap通过摄像头拍照,日志更新了一条

java恶意代码检测 恶意代码分析_Windows_19

java恶意代码检测 恶意代码分析_Windows_20

mspqm.sys

  • 分析Wireshark捕包结果,协议包数量主要是由传输数据(文件)大小决定。另外,通过筛选,可以看出它连接的IP地址有kali的ip地址,数据通过4321端口传输。在后门程序进行一系列操作时,采用TCP协议传输数据。
  • 分析sysmon记录的信息日志,sysmon不能完全监控到恶意软件的攻击行为,一些驱动程序能够绕过sysmon的记录。

1.2通过Systracer分析

  • 下载Systacer并安装(安装过程中输入端口4321)

java恶意代码检测 恶意代码分析_数据_21

  • 运行SysTracer共进行5次记录,为控制变量Kali始终在运行状态。筛选包含后门程序和虚拟机的内容以精简分析过程,缩短快照时间。
  • Snapshot #1
  • Snapshot #2
  • Snapshot #3
  • Snapshot #4 MSF 操作( getuid  screenshot  sysinfo
  • Snapshot #5退出后门程序后

java恶意代码检测 恶意代码分析_Software_22

  • 比较1、2,发现增加了大量文件,有很少的一部分可以判断出来与后门程序有关,而大部分都无法判断是否与后门程序有关系。

java恶意代码检测 恶意代码分析_java恶意代码检测_23

另外,【Application】中可以看到增加了后门程序。【Registry】一项也有很多变化。

java恶意代码检测 恶意代码分析_Windows_24

java恶意代码检测 恶意代码分析_Software_25

 HKEY_CLASSES_ROOT\Local Settings是应用程序运行时必需的信息,HKEY_CURRENT_USER\Software包含了所安装的应用程序信息,HKEY_LOCAL_MACHINE\SYSTEM包括设备驱动和其他服务的描述和控制,HKEY_USERS仅包含了缺省用户设置和登录用户的信息。

  • 比较2、3,添加了大量的文件,也删除了很多dll文件。

java恶意代码检测 恶意代码分析_java恶意代码检测_26

查看到的相应IP和相应端口可以知道回连成功。

java恶意代码检测 恶意代码分析_Software_27

java恶意代码检测 恶意代码分析_Windows_28

  • 比较3、4,执行MSF

java恶意代码检测 恶意代码分析_Windows_29

  • 比较4、5,可以看到相关的进程、文件以及键值都有删除。

java恶意代码检测 恶意代码分析_数据_30

 【Applications】一项中可以看到删除了后门程序,端口号为4321。

java恶意代码检测 恶意代码分析_Windows_31

2.静态分析

2.1VirusTotal

使用VirusTotal检查恶意代码可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息。(具体方法见Ep3)

Basic Properties
MD5	6e016dcacae124a4352806d417b72b5a
SHA-1	f1e97d6e3695df57572a9254d4aeeb73e2dae702
SHA-256	d1e8bacbbff3d932f97715abee3af55abae81b74a786c0c302030fd45125ba9c
Vhash	01504d0d765d1bz3!z
Authentihash	a395d7dc03259285d7fbf65b99d9eb0bd494cc3a689b0e6baded3082b2a62587
Imphash	17a4bd9c95f2898add97f309fc6f9bcd
SSDEEP	3072:bOKDuVGrs7CDwobcfj+jB1yLHFH8GPS8rhghxe95vqQQQt:SzVG47CDJowBoVJLtQ+X
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 16:37:45
First Submission	2020-03-31 16:50:13
Last Submission	2020-03-31 16:50:13
Last Analysis	2020-03-31 16:50:13
Names
4321_jiake_hyperion.exe
Portable Executable Info
Header
Target Machine	Intel 386 or later processors and compatible processors
Compilation Timestamp	2020-03-31 16:37:45
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	bdfe92ca30bd0938923306ee9798aa71
.text	425984	14057	14336	5.17	5aab6a4f6bbef821d2f470f377441220
.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.69
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 17:37:45+01:00
UninitializedDataSize	0
File System Actions
Files Opened
C:\WINDOWS\system32\winime32.dll
C:\WINDOWS\system32\ws2_32.dll
C:\WINDOWS\system32\ws2help.dll
C:\WINDOWS\system32\psapi.dll
C:\WINDOWS\system32\imm32.dll
C:\WINDOWS\system32\lpk.dll
C:\WINDOWS\system32\usp10.dll
C:\WINDOWS\system32\faultrep.dll
C:\WINDOWS\system32\winsta.dll
C:\WINDOWS\system32\wtsapi32.dll
Registry Actions
Registry Keys Opened
\Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\996E.exe
\Registry\MACHINE\System\CurrentControlSet\Control\SafeBoot\Option
\Registry\Machine\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers
\REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\TransparentEnabled
\REGISTRY\USER\S-1-5-21-1482476501-1645522239-1417001333-500\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers
\Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\AeDebug
\Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\VERSION.dll
\Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\USERENV.dll
\REGISTRY\USER\S-1-5-21-1482476501-1645522239-1417001333-500\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal
\REGISTRY\USER\S-1-5-21-1482476501-1645522239-1417001333-500\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Local Settings
Registry Keys Deleted
\REGISTRY\MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW\
\REGISTRY\MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW\DWFileTreeRoot
Modules Loaded
Runtime Modules
kernel32.dll
KERNEL32.DLL

2.2peid工具

  • 加过压缩壳的后门程序:

java恶意代码检测 恶意代码分析_Software_32

 

  • 加过加密壳的后门程序:

java恶意代码检测 恶意代码分析_Software_33

 加过压缩壳的后门程序被检测出来了,而加过加密壳的后门程序无法被检测出来。


五、思考题

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

  • 使用schtasks指令设置一个计划任务,观察一段时间的联网情况,对其进行分析查看是否有可疑的联网程序;
  • 使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件;
  • 使用Process Explorer,查看系统中是否存在可疑进程;
  • 使用Systracer拍摄几个时间点的快照,对比不同时间的快照,查看是否有可疑的增删注册表、启动项的行为;
  • 使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输。

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

  • 使用PEiD查看程序是否加壳,加的什么壳;
  • 使用wireshark查看他在运行时传输信息的方式以及内容、端口以及目的地址是哪里;
  • 使用Systracer工具拍摄快照,查看其对注册表和文件的修改。

六、实验总结

(一)实验中遇到的问题

java恶意代码检测 恶意代码分析_数据_34

 解决方法:我创建的文件其实是名为sysmon4321.xml的txt文件,将文件转换为xml文件,问题就解决了。

(二)实验心得

这次实验让我认识到,使用systracer也是一种寻找木马的重要方法,比如可以在开机时使用一次快照,然后关机前使用一次,可以查看这一天的设备联网情况,通过对比两次快照的端口,文件修改,注册表修改寻找木马的痕迹,我觉得这种技术杀毒软件应该也在运用,通过对比发现异常,删除相应木马。