zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175327 蜂凯南《网络对抗技术》Exp4 恶意代码分析

    一、实验目标与内容

    1.实验目标

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

    2.实验内容

    2.1 系统运行监控

    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点是可疑行为。

    2.2分析该软件在(1)正常情况下,(2)启动回连(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

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

    二、实验步骤

    1.使用schtasks指令监控系统#

    1.使用命令schtasks /create /TN 20175327 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt" 创建计划任务20175327
    上条命令中的参数分别为:

    • TN是TaskName的缩写,我们创建的计划任务名是netstat5308;
    • sc表示计时方式,我们以分钟计时填MINUTE;
    • TR是Task Run,要运行的指令是netstat
    • bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;
    • ">"表示输出重定向,将输出存放在c: etstatlog.txt文件中

    2.在C盘中创建一个名为netstat5327.bat的脚本文件,写入以下内容:

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

    3.打开任务计划程序,可以看到新创建的这个任务:

    4.双击此任务,点击操作->编辑,将程序或脚本改为我们创建的20175327.bat文件,点击确定。
    5.在常规栏勾选不管用户是否登录都要运行、使用最高权限运行

    6.接下来等待脚本执行一段时间(这段时间内要保持开机联网状态),就可以在20175327.txt文件中查看到这段时间内的联网记录

    7.通过博客将存储的数据导入到excel表中进行整理,按照博客中所述调整添加到报表中的字段即可

    8.整理好的数据图表如下:

    9.从图表中我们可以看出,联网最多的程序有浏览器、虚拟机、微信等,总体来讲,没有发现什么可疑的程序。

    2.使用sysmon工具监控系统

    1.下载Sysinternals套件,Sysmon是该套件中的一个工具,可以监控几乎所有的重要操作。
    2.确定要监控的目标。对信任的程序设置白名单,让信任程序尽量不要记到日志里,日志多了不好分析。
    3.明确了要监控的目标后,在Sysmon所在的目录下创建相应的配置文件sysmon20175327.xml了,我的配置文件如下:

    <Sysmon schemaversion="10.42">
      <!-- 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>
        </ProcessCreate>
    
        <ProcessCreate onmatch="include">
          <ParentImage condition="end with">cmd.exe</ParentImage>
        </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">firefox.exe</TargetImage>
          <TargetImage condition="end with">winlogon.exe</TargetImage>
          <SourceImage condition="end with">powershell.exe</SourceImage>
        </CreateRemoteThread>
      </EventFiltering>
    </Sysmon>
    

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

    安装成功,从图中可以看出版本号为4.23。

    5.打开计算机管理,查看事件查看器,在应用程序和服务日志/Microsoft/Windows/Sysmon/Operational中,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别以及详细信息。

    6.在这里我们看到时间线最早的一条日志就是找到我们创建的sysmon20175327.xml配置文件

    3.恶意软件分析

    使用创建的后门回连kali虚拟机

    1. 这里要先进行wireshark的捕包操作,先打开wireshark,捕包开始后进行回连。这里我们可以看到,后门回连过程中建立了完整的三次握手,且由win10(192.168.144.1)主动连接kali(192.168.144.128)。

    2.日志分析
    在kali通过后门程序控制目标机并进行截屏、提权的过程中有以下进程日志
    conhost.exe与终端有关

    cmd.exe

    firefox.exe与浏览器有关

    使用Systracer进行分析

    1.首先下载并安装Systracer

    2.点击右侧的take snapshot,存储快照。

    • 为了便于分析,我抓了三种状态:(注册表差异:包括增加、删除、修改操作,下图中红色部分为删除的内容,绿色部分为增加的内容)
      snapshot#1:不做任何操作,系统自然状态
      snapshot#2:启动后门回连msf
      snapshot#3:截图操作
      snapshot#4:敲击键盘操作

    • 将快照1和快照2进行对比,导出差异分析的结果

    • 在下图中的注册表项有变化。

    • 将快照2和快照3进行对比,导出差异分析的结果


    关闭了kali回连导致很多文件删除

    • 将快照3和快照4进行对比,导出差异分析的结果


    对后续几个快照进行分析,注册表项的变化不大。

    其他静态分析

    1.使用PEiD分析恶意软件:

    PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
    
    • 查看没有加壳的后门文件

    • 查看加了压缩壳的后门文件

    从图中可以看出,加了压缩壳的后门文件是可以检测出来的,但加了加密壳的后门文件是无法检测出来的。

    三、实验后问题回答

    1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    答: 使用schtasks对机器进行监听,在机器运行一段时间后整理监听记录。也可以使用Sysmon对事件进行记录,通过事件查看器的任务类别,判断有没有可以的行为或连接记录。还可以使用Systracer拍摄几个不同时间的快照,对比不同时间的快照判断是否有可疑的增删注册表行为。

    2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    答:通过systracer工具进行相关的分析,查看它对注册表和文件的修改。还可以使用Process Explorer工具监控相关进程和线程的活动,以及通过进程找出可疑文件的位置。

    四、实验体会

    本次实验中对恶意软件的行为进行了分析,先对整个系统进行监控来找到可疑对象,再对可疑对象进行进一步分析,来确认其具体的行为与性质。但在此次实验中感觉在操作和分析过程中有点找不到方向,在参考了学长和同学的博客后在实验中有了大致的方向,总体来讲也是有所收获的。

    五、参考资料

    (https://www.cnblogs.com/darklord0604/p/12686002.html)
    (https://www.cnblogs.com/zjy1997/p/8824717.html#4.1)

  • 相关阅读:
    Java内部类
    Java创建对象的初始化顺序
    Java多态与动态绑定
    Java访问修饰符
    Django框架学习----视图与模板(详情页的上下篇文章跳转跳转)
    Django框架学习----视图与模板(首页与详情页的跳转)
    Django框架学习----视图与模板(显示数据库数据到页面)
    Django框架学习----视图与模板(网站页面设计)
    Django框架学习----模型层
    Logstash同步mysql数据库信息到ES
  • 原文地址:https://www.cnblogs.com/hollfull/p/12721620.html
Copyright © 2011-2022 走看看