zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175322周弋鸿 《网络对抗技术》Exp4 恶意代码分析

    一、实践目标与内容

    1.实践目标

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

    2.实践内容

    • 系统运行监控
      • 使用如计划任务每隔一分钟记录电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标:找出所有连网的程序的连接和操作,这个操作是否合适合理,并有针对性的抓包做进一步的分析
      • 安装配置sysinternals中的sysmon工具,设置合理的配置文件,监控主机的重点是可疑行为
    • 恶意软件分析
      • 分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏),该后门软件:
        • 读取、添加、删除了哪些注册表项
        • 读取、添加、删除了哪些文件
        • 连接了哪些外部IP,传输了什么数据(抓包分析)

    二、实践步骤

    1.使用schtasks指令监控系统

    • 使用schtasks指令添加计划任务nestat5322,命令中的参数分别为:
      • TN是TaskName的缩写,我们创建的计划任务名是netstat5322
      • sc表示计时方式,我们以分钟计时填MINUTE
      • TR是Task Run,要运行的指令是netstat
      • bnb表示显示可执行文件名,n表示以数字来显示IP和端口
      • >表示输出重定向,将输出存放在c: etstatlog.txt文件中

    • 在C盘中创建一个名为netstat5322.bat的脚本文件,写入以下内容:
    date /t >> c:
    etstat5322.txt
    time /t >> c:
    etstat5322.txt
    netstat -bn >> c:
    etstat5322.txt
    
    • 开任务计划程序,可以看到新创建的这个任务

    • 双击此任务,点击操作->编辑,将程序或脚本改为我们创建的netstat5322.bat文件,点击确定

    • 常规中勾选不管用户是否登录都要运行使用最高权限运行

    • 等待脚本执行(保持开机联网状态),我等待了两个多小时,可以在netstat5322.txt文件中查看到这段时间内的联网记录
    • 参考学姐的博客将存储的数据导入到excel表中进行整理,得到图表:

    • 从图表中我们可以看出,联网最多的程序有360浏览器、腾讯课堂(上网课时把程序挂着的)和几个系统进程(我没想到win10的Contanar进程没使用时也在联网)等。总体来讲,没有发现什么可疑的程序

    2.使用sysmon工具监控系统

    • 下载老师的资源并解压
    • 因为系统是64位的系统所以选择Sysmon64.exe,右键属性详细信息查看产品版本(老师这个有点问题,显示4.12,配置文件要写成3.10才能成功)

    • SysinternalsSuite201608所在目录下创建sysmon20175322.xml,以文本文档方式打开输入代码保存并退出,配置文件如下:
    <Sysmon schemaversion="3.10">
      <!-- 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">winlogon.exe</TargetImage>
          <SourceImage condition="end with">powershell.exe</SourceImage>
        </CreateRemoteThread>
      </EventFiltering>
    </Sysmon>
    
    • exclude相当于白名单,不用记录。include相当于黑名单。onmatch意为匹配
    • ProcessCreate表示进程创建
    • NetworkConnect是网络连接
    • FileCrete Time是进程创建时间
    • 以管理员身份运行CMDSysmon64.exe目录下执行ysmon64.exe -i sysmon20175322.xml

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

    3.恶意软件分析

    • 使用恶意软件(实验二中的后门程序进行回连),以日志信息和Wireshark捕包信息分析系统进程规律
    • Kali系统与Windows系统Ping通时的ICMP包:

    • MSF反弹连接时的TCP包:

    • dir查看磁盘中后门程序目录下的文件,日志没有更新:

    • 使用webcam_snap进行图片抓取:

    wireshark看到有大量数据包传输,可以判断有DATA数据在传输
    日志更新了4条,可以看出是虚拟机在调用

    • screenshot截屏,日志更新三条:

    从事件属性来看应该是后门程序调用了系统程序进行截屏

    • 使用getuid进行提权操作,日志更新了2条:

    SearchFilterHost.exe是桌面搜索引擎的索引程序,主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录
    总的来看,在没有针对性地绕过Sysmon监控的情况下,Sysmon也不能完全监控到恶意软件的攻击行为

    • 下载SysTracer并安装(老师资源中同样有)
    • 输入相应端口:

    • 可以根据实际情况只勾选相应的内容以精简分析过程,我没有分盘所以全选

    • 点击右侧的take snapshot,存储快照:
      • 快照一(Snapshot #1):未移植后门程序时
      • 快照二(Snapshot #2):成功回连后
      • 快照三(Snapshot #3):执行MSF相关的操作后
      • 快照四(Snapshot #4):结束回连后
    • 在回连成功后,即快照二中,可以在Running Processes里找到植入的后门程序,并且查看端口号及两端IP:

    • 点击右下角的compare或者View Differences Lists比对各快照
    • 比较#1#2,可以发现加入了大量的注册表值还有相关的进程,可以看到SysTracer程序和虚拟机正在运行:

    • 同时增删了许多的文件,主要都是dll文件:

    • 能够找到运行中的后门程序,查看到的相应IP和相应端口可以知道回连成功:

    • 比较#2#3,没有发现特别明显的相关变化,有一些增删变化:

    • 比较#3#4,相关的进程、文件和键值都有删除:

    • 其他静态分析:
      • 使用PEiD分析恶意软件:

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

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

      • 查看加了加密壳的后门文件:

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

      • 使用VirusTotal检查恶意代码,可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息:

    DETALS
    
    Basic Properties
    MD5	eacc284432b24fc3124b446d1a1a4f83
    SHA-1	8f4b847e68a7ad96be2cdeff769f73f90b4eb565
    SHA-256	ea3ce855bdb1a187b716f730780f8f2239674c03aefb0fa3370274b91c261362
    Vhash	01504d0d765d1bz3!z
    Authentihash	044e10494d5bd57b239ab605f76809356707af45bd2701701c6d5d8981029507
    Imphash	17a4bd9c95f2898add97f309fc6f9bcd
    SSDEEP	3072:r85ys92PW2UZp5VR+Dm0aW/MGqvGQQQt:6yTQBVROm0aW/MD7
    File type	Win32 EXE
    Magic	PE32 executable for MS Windows (GUI) Intel 80386 32-bit
    File size	113.50 KB (116224 bytes)
    
    History
    Creation Time	2020-03-31 07:05:50
    First Submission	2020-03-31 07:39:54
    Last Submission	2020-03-31 07:39:54
    Last Analysis	2020-03-31 07:39:54
    
    Names
    zyh_upxed_Hyperion.exe
    
    Portable Executable Info
    Header
    Target Machine	Intel 386 or later processors and compatible processors
    Compilation Timestamp	2020-03-31 07:05:50
    Entry Point	439788
    Contained Sections	4
    
    Sections
    Name	Virtual Address	Virtual Size	Raw Size	Entropy	MD5
    .bss	4096	319488	0	0	d41d8cd98f00b204e9800998ecf8427e
    .data	323584	99872	100352	7.99	c5a811b729b12a4315252ff04f82d4fb
    .text	425984	14057	14336	5.17	0db3da594560fbdee7cab4ec727c9f7b
    .idata	442368	136	512	1.29	260d24d41289a4ffd343ab548a3e76cc
    
    Imports
    KERNEL32.DLL
    
    ExifTool File Metadata
    CodeSize	14336
    EntryPoint	0x6b5ec
    FileType	Win32 EXE
    FileTypeExtension	exe
    ImageFileCharacteristics	No relocs, Executable, No line numbers, No symbols, 32-bit
    ImageVersion	0.0
    InitializedDataSize	100864
    LinkerVersion	1.71
    MIMEType	application/octet-stream
    MachineType	Intel 386 or later, and compatibles
    OSVersion	1.0
    PEType	PE32
    Subsystem	Windows GUI
    SubsystemVersion	4.0
    TimeStamp	2020:03:31 08:05:50+01:00
    UninitializedDataSize	0
    

    三、实践报告

    1.遇到的问题

    • 1.老师资源中给的sysmon程序安装时显示出错,显示版本与实际不符:

    • 解决方案:修改配置文件第一行标签为3.10,再次安装。
    • 2.以管理员身份运行CMD时,无法转换到放在桌面的sysmon64.exe程序文件夹。
    • 解决方案:网上查询后,windows系统下使用命令cd /d %userprofile%desktop可以转移到桌面:

    • 3.将文本导入excel时,使用的是Power Query编辑器,没有找到连续分隔符号视为单个处理选项,以空格为分隔符会产生多列空白列。
    • 解决方案:网上查询无果后,选择主页->替换值,将两个空格、三个等等依次替换为一个空格,再进行分隔符分列。

    2.基础问题回答

    • 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
      答:使用schtasks定时监听,一段时间后统计数据;使用Sysmon编写配置文件监视相应的进程情况,记录相关的日志文件分析疑似恶意代码;使用Systracer进行快照对几次系统状态进行比较,系统是否有有可疑的增删注册表行为。

    • 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
      答:使用wireshark进行捕包分析,查看它连接到了哪些IP、与外部进行了哪些通信;使用Systracer进行分析,查看其对注册表、文件和进程内容的修改;使用VirusTotal(对一些非官方渠道下载的软件)进行检查。

    3.实验感想

    • 通过本次实验,我学会了如何让计算机周期性执行一个任务,生成事件日志的并利用excel对数据加以分析。通过参考一些学长学姐的报告,对查出来陌生文件、进程或是注册表有了一些了解,但还有很多需要在网上逐一查询。这个结果让我明白自己对计算机知识还是相当匮乏,今后需要继续学习。通过自己动手实践,对恶意代码有了初步的理解。
  • 相关阅读:
    前端通过Nginx反向代理解决跨域问题
    SpringMVC解决跨域问题
    SpringMVC空字符串转为null
    什么是优秀的程序员
    Windows下Nginx实现负载均衡
    SpringMVC实现PUT请求上传文件
    设计模式解密(6)
    设计模式解密(5)- 外观模式(门面模式)
    设计模式解密(4)- 模板方法模式
    eclipse上传新项目到GitHub
  • 原文地址:https://www.cnblogs.com/zyh5322/p/12704506.html
Copyright © 2011-2022 走看看