zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175319江野《网络对抗技术》Exp4 恶意代码分析

    1 实践目标

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

    2 实践内容

    • 2.1系统运行监控
      (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
      (2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
      参考:schtask与sysmon应用指导
      实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
    • 2.2恶意软件分析
      分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
      (3)读取、添加、删除了哪些注册表项
      (4)读取、添加、删除了哪些文件
      (5)连接了哪些外部IP,传输了什么数据(抓包分析)
      该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。

    2.1 系统运行监控

    Windows计划任务schtasks

    • 指令说明
      官方文档,该指令功能等同于控制面板-Windows计划任务。
    • 简单实现
      schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:20175319log.txt"

    • 批处理
      再加工一下,在C盘要目录下建一个文件netstatlog.bat,内容如下:
    date /t >> c:20175319log.txt
    time /t >> c:20175319log.txt
    netstat -bn >> c:20175319log.txt
    

    在图形界面打开任务计划程序,将指令替换为c: etstatlog.bat

    更改完后,我们在20175319log.txt中会看到如下的输出,多了日期与时间,这样看起来更方便。

    将数据导入excel,生成图表形式

    上面为两个小时监测情况,其中twinkstar.exe是我使用的浏览器,其他均正常

    Sysmon

    Sysmon是微软Sysinternals套件中的一个工具。可以监控几乎所有的重要操作。
    基本操作可以描述为三步

    • 确定要监控的目标
    • 写好配置文件
      sysmon提供了xml格式的配置文件来让用户自定义过滤规则
      可选择的事件过滤器有
    ProcessCreate 进程创建
    FileCreateTime 进程创建时间
    NetworkConnect 网络链接
    ProcessTermina 进程结束
    DriverLoad 驱动加载
    ImageLoad 镜像加载
    CreateRemoteTh 远程线程创建
    RawAccessRead 驱动器读取
    ProcessAccess 进程访问
    FileCreate 文件创建
    RegistryEvent 注册表事件
    FileCreateStre 文件流创建
    

    配置文件C:Sysmoncfg.txt:

    <Sysmon schemaversion="3.10">
      <!-- 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">twinkstar.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>
    
    • 启动sysmon
      Sysmon.exe -i C:Sysmoncfg.txt

      配置文件可以随时修改,修改完需要用如下指令更新一下Sysmon.exe -c C:Sysmoncfg.txt
    • 然后就可以在事件查看器查看了
      进入应用程序和服务日志->Microsoft->Windows->Sysmon->Operational

    2.2恶意软件分析

    使用PEiD查壳

    PEiD是一款著名的可移植可执行程序(pe文件)外壳查询工具工具,其功能强大,可以轻易检出超过470种外壳,并可检查程序的编程语言。
    对实验3中的20175319.exe和加壳后的20175319upx.exe进行检测


    检测出了压缩壳UPX

    PE Explorer

    PE Explorer是一个强大的程序资源编辑工具,可以直接查看、修改软件的资源,包括菜单、对话框、字符串表等;另外,还具备有W32DASM软件的反编译能力和PEditor软件的PE文件头编辑功能。
    在软件中打开20175319upx.exe

    • 文件头信息
    • 程序引入的dll

      msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件
      kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理
      advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关
      wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序
      ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。
    • 反汇编分析

    SysTracer

    SysTracer是一款集成HIPS以及进程行为跟踪功能的安全辅助工具,它可以跟踪并监视进程对整个系统的修改行为,包括文件操作,注册表操作,内存操作和危险行为。SysTracer可以监视全部进程,或者用户指定的某一个进程及其子进程,并提供监视日志以帮助用户对特定进程的行为进行分析。

    • snapshot#1:后门程序已在本机中
    • snapshot#2:运行后门程序并成功回连
    • snapshot#4:在kali中执行shell后
    • snapshot#5:在kali中执行screenshot后
    • 1与2进行对比

      可以看到后门程序启动,加入进程

      注册表出现许多新的表项
    • 2与4对比
      新增进程

      新增dll
    • 2与5对比
      对注册表和文件有所修改

    wireshark抓包分析

    对回连过程抓包

    过滤条件:ip.addr ==192.168.0.173
    目标机先对宿主机发送请求,进行了完整的三次握手,属于反弹连接,抓包中大部分是宿主机与目标机的TCP包,还有部分DNS包、ARP包。
    关闭连接

    3 实验中遇到的问题

    • 问题1:安装sysmon配置时出现错误提示

      解决方案:修改xml配置文件,将第一行修改成对应的版本<Sysmon schemaversion="3.10">

    4 实验后回答问题

    • (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
      使用schtasks设置计划任务监控一天的应用联网情况
      使用Sysmon查看网络连接、端口、注册表等信息,检查异常事件
      使用wireshark抓包,分析ip、端口、数据包情况
      使用Systracer拍摄快照,检查注册表、启动项、文件等信息之间的变化
    • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
      使用PE Explorer查看文件头、引用的dll
      使用PEiD查壳
      使用Systracer拍摄快照,分析注册表、文件、进程等的修改信息

    4 实验收获与感想

    本次实验操作不算困难,主要注重分析恶意软件,这次实验也让我知道了恶意代码不是悄无声息的,可以被检测出来,让我对计算机的安全防护有了更深的了解和信心。

  • 相关阅读:
    在Myeclipse中配置tomcat
    tomcat用startup.bat启动时,界面一闪消失
    单向链表的基本操作
    简单排序的对比
    关于string的排序 选择插入排序
    insertsort
    selectsort
    理解函数式编程
    vue中使用$nextTick后任然无法正确计算出元素高度
    使用vuex+vue-i18n方式国际化
  • 原文地址:https://www.cnblogs.com/killer-queen/p/12691346.html
Copyright © 2011-2022 走看看