2020-2 网络对抗技术 20175120 exp4 恶意代码分析

实践目标

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

实践内容

系统运行监控

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

  • 使用schtasks创建任务计划,使用netstat记录应用联网历史

  1. windows+R 打开命令行

  2. 输入 schtasks /create /TN 20175120netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstat5120.txt"

参数使用:

 /TN : Task Name 任务名称
 /sc : Schedule Type 计划类型 我设置的是 minute
 /MO : modifier 编辑 指定具体时长,我设置为5,即5分钟启动一次
 /TR : Task Run 指定要运行的命令,这里是netstat
 -bn : b 表示显示可执行文件名 n 表示显示以数字形式显示IP&&PORT

任务创建成功之后即可在C盘找到netstat5120.txt,打开可以看到

  • 还可以在统计数据中加入日期和具体时间
  1. 创建'20175120netstat.bat'

在C盘新建一个文档20175120netstat.txt

输入:

date /t >> c:\netstat5120.txt
time /t >> c:\netstat5120.txt
netstat -bn >> c:\netstat5120.txt

点击文件->另存为

下方选择所有文件

修改文件名为20175120netstat.bat,保存

  1. 修改任务计划程序,启动bat文件
  • 打开任务计划程序,双击20175120netstat

  • 修改操作中的程序或脚本20175120netstat.bat

  • 确定完成后,可以查看netstat5120.txt

  1. 使用excel查看统计数据,分析应用程序联网情况

点击数据->导入数据->确定->下一步

选择数据源时,选择刚刚放数据记录的netstat5120.txt

原始数据类型时,选择分隔符号,下一步勾选所有分隔符类型

创建完成后文档如下

删掉表格前三行(避免出问题)

插入中选择数据透视图

点击请选择单元格区域的输入区域右侧小图标,选择需要分析的第二列,或输入Sheet1!$B:$B,下方选择新工作表

确认后进入

点击左侧框后,在右侧勾选协议,去掉应用程序名之外的项,将协议拖入右下角框中,形成直方图

从图中可以看到,qmbrowser.exe出现次数最多,因为我在写博客......wps.exe第二,因为我在用excel........问题不大

就是不知道那个svchost.exeet.exe是不是恶意代码....

返回目录

  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
  1. 确定要监控的目标

根据网上的资料使用轻量级工具Sysmon监视你的系统

我选择了以下项作为监控目标

DriverLoad         驱动加载
ProcessCreate      进程创建
FileCreateTime     文件创建时间
NetworkConnect     网络连接
CreateRemoteThread 远程线程创建
  1. 写好xml配置文件

5120sysmon.xml

<Sysmon schemaversion="4.23">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">
      <Signature condition="contains">microsoft</Signature>
      <Signature condition="contains">windows</Signature>
    </DriverLoad>
    

    <ProcessCreate onmatch="include"> 
      <ParentImage condition="end with">cmd.exe</ParentImage>
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
    </FileCreateTime>

    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </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>
  1. 安装运行sysmon.exe,并在事件查看器中进行查看

进入放置sysmon.exe的文件夹下输入:

sysmon.exe -i C:\5120sysmon.xml

右键windows->搜索->事件查看器,打开应用程序和服务日志->Microsoft->windows->Sysmon->Operational就可以看到筛选出来的监控项

打开一个记录项:

事件记录了应用程序的任务类别、记录时间,详细信息中记录了目的IP、目的端口号以及目的端口名称等信息

这是wps的应用程序信息,可疑程度不大,其他的事件我也大致扫了一遍,没有发现可疑应用

  1. 我试着用免杀实验中的后门程序做了回连,看日志是怎么记载的

我用的是jar包进行回连

回连成功了,但是我只找到了一个java.exe与回连相关,日志记载如下

记录了目的IP和端口号,但没有看到这个后门的打开cmd.exe的相关记录。

返回目录

恶意软件分析

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

(3)读取、添加、删除了哪些注册表项

(4)读取、添加、删除了哪些文件

(5)连接了哪些外部IP,传输了什么数据(抓包分析)
  • 使用systracer来进行分析

[systracer压缩包](http://www.skycn.net/soft/appid/30266.html)解压即用

  • 对以下三个对后门的操作进行比较分析(后门以之前的win_mt_rt_250.exe为例)
1) 安装到目标机
2) 回连
3) 获取shell
  • 通过抓取三个步骤后获得的快照即可进行对比分析
  1. 安装到目标机
  1. 首先获取无后门操作状态,得到Snapshot #1(因为我是在主机上操作的,所以时间比较漫长....)

2)获取后门移动到主机上之后的状态,得到Snapshot #4(因为前面试验了几个.....)

  • 实验分析

1) 应用程序更改

变化没有体现出来

2) 注册表更改

注册表这儿....没看明白,变化的量很多,但因为移入后门程序而改变的量不能确定,可能绿色部分都和后门相关

3) 文件更改

可以看到,win_mt_rt_250:5120.exe 被移入主机

4) 外部IP连接和数据传输

这里需要用到wireshark进行抓包分析

进行文件传输的是最上面第一个包、SYN包,发送连接请求,后续包都在超时重传

我们也可以看到主机IP192.168.5.41与虚拟机IP192.168.5.250,从而确定通信双方
返回目录

  1. 回连

获取回连之后主机的快照,并将其与后门移入那一步进行对比

1)应用程序更改

可以看到,发生变化的应用程序事件主要来源于win_mt_rt_250:5120.exe回连的行为

从图中可用看出回连的过程中调用了很多的dll文件,而且基本都是windows固有服务,从行为中我们也可以发现后门的固有特点

凡是同时调用了以下部分dll文件的应用程序,或许都存在恶意行为

2) 注册表更改

在这一步我们可以看到,注册表发生了更改,我推测是虚拟机的状态发生更改导致的

3) 文件更改

这里的更改不知道是由于Systracer产生的还是回连产生的。

我发现很多地方都存在图中同样的修改

4) 外部IP连接和数据传输

回连后的包如上图,主机向虚拟机发送SYN包,同时三次握手建立连接,之后虚拟机向主机发送PSH包,传输了部分数据以修改注册表等信息


以上为传输的数据截图

然后虚拟机向主机发送大量的ACK包,使主机忙于回复ACK包,从而使得各种修改变得容易?

  1. 获取shell

获取linux得到主机shell之后的主机状态,与上一步对比

1) 应用程序更改

主要就是调用了主机的cmd.exe,同时添加了很多dll文件以便后续操作

2) 注册表更改

在上一步同样的位置发生了变化,我推测也是由于虚拟机的变化导致的

3) 文件更改

发生的更改仍然与上一步相同,没有找到愿因.......

  1. 外部IP连接和数据传输

获取shell时,虚拟机向主机发送了PSH包,其中包含数据:

估计也是与注册表、文件的修改相关的数据.......

返回目录

实验思考题

  • (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
1.使用sysmon工具,在各方面通过事件查看器对应用程序进行监控
2.使用任务计划程序,并通过netstat指令对应用联网历史进行记录,统计联网数据,筛选出可疑程序
3.nmap扫描端口,确定有没有可疑连接
  • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
1.使用systracer截取快照,通过对比、应用程序启动、注册表、文件等发生更改的地方,获取恶意程序的启动原理
2.使用wireshark进行抓包,对其与主机的通信数据进行提取

实验体会

本次实验的难点主要在于分析通过工具获取到的数据,不管是sysmon、netstat,还是systracer、wireshark,使用起来还是比较方便的。
分析数据,就需要知道这些数据怎么和应用进程对应上,但我发现很多地方我都不清楚.......
但这次实验还是让我收获颇丰的,通过对这些工具的实用,我对于恶意代码的攻击和抵御方式又有了新的体会。这些工具都是可以应用于实际生活中的,善加利用这些方法也能让我有一个更加有保障的计算机环境。
posted @ 2020-04-16 00:47  20175120彭宇辰  阅读(234)  评论(0编辑  收藏  举报