Exp4 恶意代码分析

1、基础知识

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

2、实践过程记录

2.1系统运行监控(2分)

2.1.1schtasks创建定时netstat计划任务监控网络

1.写好脚本(实际上就是命令行语句)netcontrol1326.bat,再新建一个txt文档netstatlog.txt用于接收数据
date /t >> C:\Users\Administrator\Desktop\netstatlog.txt
time /t >> C:\Users\Administrator\Desktop\netstatlog.txt
netstat -bn >> C:\Users\Administrator\Desktop\netstatlog.txt

2.用命令行创建一个计划任务

win+R
cmd
schtasks /create /TN netcontrol1227 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > C:\Users\86166\lab4\netstatlog.txt"

TN是创建的计划任务名是netcontrol1227,sc表示计时方式,TR表示执行的指令,>表示输出重定向

#### 3. “WIN+R”调出“运行”窗口,输入“taskschd.msc”按回车


4.在常规中选择使用最高权限运行,在条件中关闭电源限制

电源限制可以选择性使用,此处只是为了收集更多的信息,所以关闭了电源限制

5.在操作栏清空参数,选择批处理文件


6.等待一段时间后就可以得到想要的数据了

7.收集了较多数据后,停止任务,将所得数据在excel中进行分析

  1. 新建excel,数据→自文本→选择数据源→netcontrol1326.txt,勾选分隔符号


  2. 勾选所有分隔符号

  3. 列数据格式勾选常规→完成
  4. 选择要分析的列——>选择插入——>选择数据透视图——>直接默认值确认
  5. 右侧选择分析的日期,拖入下方的轴和值

    同样的方法,可以得到连接的外部ip地址的统计图

7. 分析结果

出现最多的是TCP,established,established意思是TCP连接成功,再下来就是[QQBrowser.exe],是浏览器发起了678次TCP连接,下面列举出来连接最多的一些外部网站,端口基本上都是通过443端口(https)

3.系统运行监控—sysmon

sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具,用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。

3.1 安装sysmon

  • 确定监控目标
  • 进程创建ProcessCreate
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
  • 进程创建时间FileCreatTime
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
  • 网络连接NetworkConnect
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
  • 远程线程创建CreateRemoteThread
过滤事件选项:
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction

编写配置文件

创建一个txt文件,写好配置文件后将文件后缀改为.xml

<Sysmon schemaversion="4.81">
  <!-- 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> 
      <Image condition="end with">QQBrowser.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>

解释一下:
onmatch选项只能设置为include或者exclude,exclude相当于白名单,不用记录;include相当于黑名单
第一行的sysmon版本号要跟使用的sysmon一致(当前版本是4.81)
Image condition根据自己使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,火狐浏览器是“firefox.exe”,QQ浏览器是“QQBrowser.exe”,写在exclude中就是不记录由谷歌浏览器创建的进程
进程创建时间类似,也是不创建浏览器创建进程的时间
网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1(localhost)的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。
137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态
127.0.0.1表示回环地址
远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
explorer.exe是Windows程序管理器或者文件资源管理器
svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称
winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出
powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用.

3.2 启动sysmon

cd进入包含sysmom.exe的文件夹
输入指令.\Sysmon.exe -i sysmon1326.xml安装Sysmon,点击Agree
-i第一次启动时用,之后更新xml配置可以-c完成

3.3 打开日志

打开事件查看器(win+R运行eventvwr.msc)——>应用程序和服务日志->Microsoft->Windows->Sysmon->`Operational

这里可以点击框内空白部分,然后用输入法输入一部分字母快速查找,也可以直接按字母表顺序一直往下翻

打开kali,Win运行后门文件20191326_backdoor.exe,回连到kali,kali执行shell获取win10的cmd


再次查看日志

根据时间观察对应的事件
打开事件查看器搜索(Ctrl+F)后门文件名,可以看到日志记录

可以看到协议、ip地址、回连kali的ip地址、源端口和目标端口等信息。

4.恶意软件分析

4.1用wireshark分析TCP包

这里使用实验二生成的加压缩壳后门程序20191326_backdoor.exe,在VirusTotal进行扫描,结果如下:

4.2 动态恶意软件分析

此处采用 SysTracer 监控后门启动前后信息变化

systracer直接去官网下载就行了,安装的时候点击第一个,一直下一步就行了

systracer可以记录下计算机某个时刻的状态。然后过一段时间后再次记录。通过比较两次记录中计算机的不同进行相应的分析。
不要点击stop!!!!!!!


2.开启后门并回连成功,记录为Snapshot1

3.使用dir获取主机的shell,记录为Snapshot2

下面我们点击右下角的compare,将执行前后的快照进行对比


文件发生了改动。
有变化的地方会用亮色标注出来
下面对部分内容进行分析:
为了方便查看注册表中被修改的内容,我将注册表对比结果导出为pdf文件:

生成的pdf文件如下:

posted @ 2022-04-15 22:08  叶家星  阅读(32)  评论(0编辑  收藏  举报