zoukankan      html  css  js  c++  java
  • 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: etstat5120.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:
    etstat5120.txt
    time /t >> c:
    etstat5120.txt
    netstat -bn >> c:
    etstat5120.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,使用起来还是比较方便的。
    分析数据,就需要知道这些数据怎么和应用进程对应上,但我发现很多地方我都不清楚.......
    但这次实验还是让我收获颇丰的,通过对这些工具的实用,我对于恶意代码的攻击和抵御方式又有了新的体会。这些工具都是可以应用于实际生活中的,善加利用这些方法也能让我有一个更加有保障的计算机环境。
    
  • 相关阅读:
    python批量插入mysql数据库(性能相关)以及反引号的使用
    python if __name__=='__main__'的理解
    Django学习教程
    python xml文件解析
    对python的super方法的用法理解
    python魔术方法(__init__,__call__,被双下划线包围的方法)
    python进阶书籍 流畅的python
    关于json串的双引号和单引号
    maven 的使用
    学java的目的是大数据和人工智能,勿忘初心!
  • 原文地址:https://www.cnblogs.com/1751-pyc/p/12701876.html
Copyright © 2011-2022 走看看