zoukankan      html  css  js  c++  java
  • 20174311 唐嘉《网络对抗技术》Exp4 恶意代码分析

          一、实验目标

    • 监控你自己系统的运行状态,看有没有可疑的程序在运行。

    • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。

    • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

        二、实践内容及步骤

            2.1 系统运行监控

              2.1.1 Windows计划任务schtasks

             输入以下命令,schtasks /create /TN 20174311netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c: etstatlog.txt",每五分钟记录下有哪些程序在连接网络。在主机端输入命令完成后,每五分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里。

        为了显示日期和时间,可以通过bat批处理文件来实现。首先创建bat文件,在C盘下建一个文件c: etstatlog.bat,内容为(修改文件后缀名即可):

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

     

       接着打开控制面板,在管理工具搜索任务计划程序,找到任务20174311netstat。

          选中该任务,找到操作选项,点击所有项里的属性选项。

       

           找到操作选项卡,双击详细信息,把框中原本的cmd改成c: etstatlog.bat。

        此时打开c: etstatlog.bat文件(用记事本方式打开),就可以看到时间信息了。(这里需要等一段时间,可以干点别的)

        下面就是把数据导入excel表里进行数据分析处理的操作了,打开Excel,点击数据选项卡,在获取外部数据的方式上选择自文本,选择记录连接情况的netstatlog.txt。(这里要说一下,等一段时间后点击bat文件就会自己更新一个txt文件)按照下图所示选择导入的格式:

         之后就可以看到数据导入成功了:

     

         选中某一列,在这里我选择的B列,因为B列是软件使用情况。找到插入选项卡,点击数据透视图,来生成一个数据透视图。(这里说明一下下,点击数据透视图后会让你设置一些参数,要在右侧“选择要添加到报表的字段”中点击对应字段右侧的小箭头,取消选择没有意义的字段,只保留软件信息,然后点击确定,接着将该字段拖动到下方的数值区域中即可)

     

        这里说明一下,由于电脑比较卡嘿嘿,所以说做网络对抗实验的时候我习惯把软件都关了,然后呢在上面等的这段时间里我就听了听歌,没用电脑上的太多软件,所以软件频次可能不太高嘿嘿。

        做一下简单分析,这段时间总的软件使用频次不高,主要是微信聊天,然后用百度网盘下了点东西,当然也听着歌,但有点奇怪的是qq音乐的频次却不是特别高,而且本人在电脑上跑的软件比较少,所以说从数量上还是频次上都偏小。

         2.1.2 sysmon

    首先是下载安装这个软件。我下载的是下面这个版本:

    创建配置文件sysmon.xml,文件中写入以下指令:

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

        接着以管理员身份打开cmd命令行,使用指令Sysmon.exe -i sysmon.xml安装sysmon。输入命令之后会弹出下面这个框,点击Agree进行安装。

        然后就发现安装成功了。

     

    下面是修改配置文件的操作,更新版本号为4.23,增加对端口4311、443、80的监听服务:

    <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>
       
        <NetworkConnect onmatch="exclude">
          <Image condition="end with">iexplorer.exe</Image>
          <SourcePort condition="is">137</SourcePort>
          <SourceIp condition="is">127.0.0.1</SourceIp>
        </NetworkConnect>

        <NetworkConnect onmatch="include">
          <DestinationPort condition="is">4311</DestinationPort>    
          <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>

     

        配置文件修改完要更新,指令为:sysmon.exe -c sysmon.xml

        下面开始查看日志,在任务管理器中搜索并打开事件查看器。应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational。随便点开一个看看:

             下面开始回连查看操作。运行实验三生成的bbskali hyperion.exe,可以看到在21时44分回连成功。

        根据回连成功的时间,可以在日志信息中可以成功找到这个事件:

     

          运行回连实验二生成的后门文件4311_backdoor.exe,也可以找到相关的日志信息:

          进程创建日志:

         回连后产生的网络连接日志:

     

     

         从图中可以看到,程序为4311_backdoor.exe,协议为tcp协议,源IP地址为192.168.80.1,目标IP地址为192.168.0.101,目的端口为4311。

         2.2 恶意软件分析

         2.2.1 静态分析

        静态分析的方法有很多,这里我主要选用的是文件扫描、peid工具和PE Explorer工具。

       (1) 文件扫描(VirusTotal)

        由于这个方式在上个实验中已经详细做过,这里就不再赘述操作了。

       (2)文件格式识别(peid工具)

        先看一下没有加壳的后门程序:

            再看一下加过压缩壳的后门程序:

        再看一下加过加密壳的后门程序:

           通过上面的对比可以看出,使用壳加密后这个软件就不能查到了。

          (3) 反编译、反汇编(PE Explorer工具)

       文件头信息:

          调用的DDL文件,而且指出了DDL文件调用的函数。

        msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件;kernel32.dll是非常重要的32位动态链接库文件,属于内核级文件;wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序;ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。

        2.2.2 动态分析

        动态分析的方法也有很多,这里我选择SysTracer和wireshark工具。

        (1)使用SysTracer分析

        下载SysTracer并安装

         选择中间的选项。

        端口设置为4311。

        为方便对比观察,这里选择四个快照:

        在打开后门前先快照一下,选择->take snapshot,完成后显示Snapshop #1。(要等它自己完成)

        Kali开始监听,Windows运行后门后,回连成功后拍摄快照,完成后显示Snapshop #2。

        在kali中使用MSF截屏操作screenshot,完成后显示Snapshop #3。

        结束连接后exit退出,快照,显示Snapshop #4。


         对比#1和#2,在Applications里的Running Processes里可以发现后门程序的添加。

        下图可视的后门程序的入侵。

        可以查看回连地址及端口号。

          在registry选项卡里可以直接找到注册表的变化项。

         HKEY_CLASSES_ROOT:这个项包含所有的文件类型,文件关系,图标文件名,com对象等信息。
         HKEY_USERS:所有WINDOWS用户的文件都会记录在这个项里面,每个用户会有自己的项以保存个人设置。
         HKEY_CURRENT_USER:这个项保存了目前登陆的用户文件,以及个性化的设置,如桌面外观,软件设置,开始菜单等。会随着登陆的用户不同而有所改变。
         HKEY_LOCAL_MACHINE:这个项保存了绝大部分的系统信息,包括硬件配置,网络设置,以及你所安装的软件等,是注册表里最重要也最庞大的项,当你用设备管理器更改了硬件的设置时,这个项里的文件也会跟着变动。
         HKEY_CURRENT_CONFIG :此项主要记录PNP设备及硬件的设置值。

         详细view查看一下可以发现注册表的许多变化。

     

         对比#3和#4,可以发现后门程序的断连。

     

         这里有个小问题,对比项的时候会出现下面的情况:

               往下细分项会出现systracer not registered,往下的信息没办法搜索到,但我看有的同学的博客往下还有分支,我觉得可能是版本的不同吧,但是可以清楚的查看注册表的前后变化。

        (2)抓包分析(WireShark工具)

        回连成功后捕获数据包:

               通过分析可以看出后门程序使用的通信方式为TCP传输。在被植入后门的Windows主机入侵时,主机与虚拟机首先进行了完整的三次握手,并且可以明显看出是从4311端口传输的数据。

         输入dir之后捕获到的数据包:

        从数据包中可以看到源IP、目的IP、源端口、目的端口以及传输的数据。

          输入mkdir test之后捕获到的数据包。

               从数据包中可以看到源IP、目的IP、源端口、目的端口以及传输的数据。

        三、实验心得与体会

         3.1实验后回答问题

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

        主要还是用本次实验用到的方法吧:

        使用schtasks指令设置一个计划任务,观察一段时间的联网情况,对其进行分析查看是否有可疑的联网程序;

        使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件;

        使用Process Explorer,查看系统中是否存在可疑进程;

        使用Systracer拍摄几个时间点的快照,对比不同时间的快照,查看是否有可疑的增删注册表、启动项的行为;

        使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输。

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

        也是主要用本次实验的方法吧(最简单我觉得还是使用VirusTotal分析恶意软件):

        使用PEiD查看程序是否加壳,加的什么壳;

        使用wireshark查看他在运行时传输信息的方式以及内容、端口以及目的地址是哪里;

        使用Systracer工具拍摄快照,查看其对注册表和文件的修改。

        3.2 实验心得体会

        这次实验内容我觉得比较实用,起码知道一些监控恶意进程的操作哈哈哈。这次实验碰到的是一些小问题,慢慢的就可以解决,但是我电脑有点卡,有几个地方还是耽误了一些时间。

        通过本次实验,我提升了利用软件分析恶意代码的能力,学会了一些检测系统进程的方法,希望在之后的学习中能够有更加深入的了解。

  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/bestitj/p/12703946.html
Copyright © 2011-2022 走看看