zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175334罗昕锐《网络对抗技术》Exp4 恶意代码分析

    2019-2020-2 20175334罗昕锐《网络对抗技术》Exp4 恶意代码分析

    1 实践说明

    1.1实践目标

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

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

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

    1.2基础知识

    1.2.1恶意代码定义

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

    1.2.2恶意代码特征

    • 恶意的目的

    • 本身是计算机程序

    • 通过执行发生作用

    1.2.3恶意代码分类

    • 不感染的依附性恶意代码(特洛伊木马、逻辑炸弹)

    • 不感染的独立性恶意代码(点滴器、繁殖器)

    • 可感染的依附性恶意代码(病毒)

    • 可感染的独立性恶意代码(蠕虫)

    2 系统运行监控

    2.1 Windows计划任务schtasks

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

    • 输入以下命令,每 分钟记录下有哪些程序在连接网络。此命令完成后,每分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里

    schtasks /create /TN 20175334netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"

    • 其中各参数含义如下:
    TN:Task Name
    SC: SChedule type,本例中是MINUTE,以分钟来计时
    MO: MOdifier
    TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
    >:将结果输出到c盘下的netstatlog.txt文件中
    

    • 在C盘下建一个文件c: etstatlog.bat,内容为:
    date /t >> c:
    etstatlog.txt
    time /t >> c:
    etstatlog.txt
    netstat -bn >> c:
    etstatlog.txt
    
    • 打开控制面板->管理工具->任务计划程序,找到创建的任务

    • 打开属性,在操作选项卡中,编辑操作,把框中原本的cmd改成c: etstatlog.bat

    • 在常规选项卡中勾选使用最高权限操作

    • 等待一段时间后,打开c: etstatlog.txt文件

    • 打开Excel,依次点击数据——获取外部数据——自文本,选择netstatlog.txt,分列选择分隔符号(全选)

    • 选中要分析的列,依次点击插入——数据透视图,来生成一个数据透视图

    • 由上图所示,联网最多的是QQ对应的“QQ.exe”,排名第二的是360浏览器广告插件对应的“sesvc.exe”,除此之外还可以看到微信、腾讯课堂、360等程序,没有发现什么其他可疑程序

    2.2 sysmon工具

    • 要求:安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为

    • 参考:schtask与sysmon应用指导

    • 这里下载sysmon工具

    • 创建配置文件sysmon.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>
        
        <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">5334</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 -i sysmon.xml安装


    • 打开打开事件查看器,在左侧栏依次找到应用程序和服务日志——Microsoft——Sysmon——Operational

    • 运行实验二生成的后门文件,在虚拟机中获取Windows的命令行

    • 查看到后门文件的日志

    • 进程创建:

    -从图中可得到以下信息:

    程序:C:Users16487Documents
    cat
    catackdoor5334.exe
    描述:ApacheBench命令行实用程序
    产品:Apache HTTP服务器
    
    • 回连:

    • 从图中可得到以下信息:
    程序:C:Users16487Documents
    cat
    catackdoor5334.exe
    协议:tcp
    源IP地址:192.168.186.1(Windows的IP)
    目标IP地址:192.168.186.141(kali的IP)
    目的端口:5334
    源端口:5583
    

    3 恶意软件分析

    • 要求:分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时,该后门软件

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

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

      • (3)连接了哪些外部IP,传输了什么数据(抓包分析)

    3.1 静态分析

    • (1) 文件扫描(VirusTotal)

      • 选择的是实验三生成的加压缩壳的后门程序

    • DETAILS中可看到详情,如三个算法的摘要值、文件类型、文件格式

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

      • 对未加壳的后门程序检测


    • 对加壳的后门程序检测


    • 在执行后门程序时,可以发现会运行很多.DLL的文件,也就是动态链接库
    • (3) 反编译、反汇编(PE Explorer工具)

      • 文件头信息

    • 调用的DDL文件

    msvcrt.dll:微软在windows操作系统中提供的C语言运行库执行文件
    kernel32.dll:32位动态链接库文件,属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域
    advapi32.dll:一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关
    wsock32.dll:Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序
    ws2_32.dll:Windows Sockets应用程序接口, 用于支持Internet和网络应用程序
    
    • 版本信息(与PEID查看内容无异)

    • 反汇编

    3.2 动态分析(SysTracer工具)

    • 点击创建快照,我创建了四个进行比对,分别是:

      • Snapshot #1:不进行任何操作

      • Snapshot #2:运行后门程序并成功反弹连接

      • Snapshot #3:运行mkdir命令

      • Snapshot #4:运行screenshot命令

    • 对比Snapshot #1和Snapshot #2

      • 修改了大量注册表信息(绿色为增加,红色为删除)


    • 增删了大量dll文件

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

    • 对比Snapshot #2和Snapshot #3

      • 同样修改了大量注册表信息

    • 同样增删了dll文件

    • 增删了文件

    • 对比Snapshot #3和Snapshot #4

      • 同样增删了dll文件

    • 修改了注册表信息

    3.3 抓包分析(WireShark工具)

    • 回连时捕获的数据包

    • 从 数据包中可以看到源IP、目的IP、源端口、目的端口;建立了完整的三次握手,且由win10主动连接kali

    • 输入ls后捕获的数据包

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

    4 实验收获与感想

    • 通过本次实验,我明白了恶意代码不仅可以通过一些工具来进行静态分析,而且还可以通过动态的手段来防护。例如我们电脑自带的Windows Defender以及杀软的防护功能,但这些我们无法看见,所以我们可以通过SysTracer等工具来看到系统内的变化来进行防护;实验内容及操作并不难,也对之前实验的内容进行了复习,受益匪浅。

    5 回答问题

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

      • 用schtasks来建立一个任务,每隔一段时间对主机联网状态进行记录;通过sysmon工具记录有关的日志文件;使用Process Explorer工具,监视进程执行情况;使用Process Monitor工具,监视文件系统、注册表、进程的活动
    • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息

      • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改;使用Wireshark进行抓包分析,监视其与主机进行的通信过程;通过VirusTotal对文件进行分析
  • 相关阅读:
    01 Windows编程——Hello World
    图像处理基础知识
    集成IDE anaconda
    Python中的正则表达式
    Introduction of Machine Learning
    Linux命令——diff、patch
    sed & awk 概述
    Linux行编辑器——ed
    Linux命令——w、who、whoami、lastlog、last
    【问题】统计系统上有多少个用户
  • 原文地址:https://www.cnblogs.com/lxr1006/p/12710945.html
Copyright © 2011-2022 走看看