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

    实践目标

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

    回答实验问题

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

      答:

      • Windows schtasks指令计划任务、Sysmon等编写配置文件、记录有关的系统日志的程序
      • 查看数据包:使用wireshark捕包,进行数据流分析
      • 查看端口:使用nmap查看可疑端口
      • 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
    • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

      答:

      • 使用systracer工具分析恶意软件,快摄拍照,对比进程运行前后有没有可疑端口、注册表或可疑的大量变化。
      • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
      • 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
      • 直接利用静态分析工具如:PEID、ExeinfoPE等工具反汇编查看指令是否攻击或收集信息等。
      • 使用PE explorer查看PE文件头中包含代码信息

    实践内容

    1. 系统运行监控

    使用schtasks指令监控系统

    • 输入指令,每五分钟记录下有哪些程序在连接网络,每 3 分钟就会监测哪些程序使用网络,结果记录在 d: etstatlog.txt 中。

      schtasks /create /TN netstatxxxx /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > d:
      etstatlog.txt"
      
      • TN:TaskName 的缩写;
        sc:计时方式,以分钟计时填 MINUTE;
        TR:Task Run缩写,要运行的指令是 netstat
        bn:b表示显示可执行文件名,n 表示以数字来显示 IP 和端口;
        >:表示输出重定向,将输出存放在 d: etstatlog.txt 文件中
    • D 盘中新建 netstatxxxx.bat ,写入内容:

      date /t >> d:
      etstatxxxx.txt
      time /t >> d:
      etstatxxxx.txt
      netstat -bn >> d:
      etstatxxxx.txt
      
    • 右键“我的电脑”图标,选择“管理”,在“系统工具 -> 任务计划程序 -> 任务计划程序库”中找到创建的计划任务 “netstatxxxx”。

    • 双击任务,在“常规”中勾选:

      • “不管用户是否登陆都要运行”
      • “使用最高权限运行”
    • “操作”设置

      • 点击“操作”,选中“启动程序”,使之高亮。
      • 点击“编辑”,设置“程序或脚本”为之前创建的脚本程序:D: etstatxxxx.bat 。
      • 点击“确定”。
    • 输入密码。

    • 等待设置的计划任务时间长度,打开 D: etstatxxxx.bat 设置的输出文件,可以看到如下信息。

    • Excel 导入数据。

      • 创建一个新的 Excal 表格。

      • 点击“数据 -> 获取外部数据 -> 自文本 -> 分隔符号”,选择导入数据及格式。

      • 选择分隔符号。

      • 点击“完成”,点击“确定”导入数据。

    • Excel 分析数据。

      • 选中分析的目标列。

      • 点击“插入 -> 数据透视图”。

      • 取消勾选无用的部分。

      • 将字段拖入“轴”和“值”中。

    • 可以统计得到之前实验的后门程序 xxxxxxxx_exp3_sc_upx.exe ,还有我使用 ZeroTier One 建立的虚拟网络,大部分连接都是 TCP 。没有发现其他可疑的程序运行。

    sysmon配置监控主机可疑行为

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

    • 官网下载 sysinternals 工具包,解压 sysmon 工具:Sysinternals Suite

    • 在 sysmon 工具目录下创建配置文件 sysmonxxxxxxxx.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>
      

      相关事件管理器: 进程创建ProcessCreate进程创建时间FileCreateTime网络连接NetworkConnect远程线程创建CreateRemoteThread

    • 管理员权限打开 Terminal 在 Sysmon64.exe 可执行文件目录下执行,并点击 “Agree”:

      Sysmon64.exe -i sysmonxxxxxxxx.xml
      
    • 打开“事件查看器”,在“应用程序和服务日志 -> Microsoft -> Windows -> Sysmon -> Operational”可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等

      可以看到之前实验的后门程序。

    2. 恶意软件分析

    动态分析

    使用systracer分析恶意软件
    • 下载systracer,安装并进行捕包分析systracer 。

    • 捕获 3 个快照如下:

      • Snapshot #1 :初始快照。
      • Snapshot #2 :后门程序回连快照。
      • Snapshot #3 :kali 执行 dir 命令快照。
      • Snapshot #4 :kali 执行 exit 命令快照。

    • 对比Snapshot #1Snapshot #2:增加了后门程序xxxxxxxx_exp3_sc_upx.exe

    • 增加并删除了某些文件。

    • 对比Snapshot #2Snapshot #3,可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议。

    • 修改了注册表。

    • 对比Snapshot #3Snapshot #4:断开了 80 端口连接,保存了过程中的修改。

    使用wireshark对流量进行抓包分析
    • kali中监控回连,win7执行重新后门程序 xxxxxxxx_exp3_sc_upx.exe 进行回连。

    • wireshark 筛选条件是 “ ip.addr == 192.168.3.101”(kali IP地址)。可以看到:

      • 大量 ACK 包。
      • TCP 三次握手过程。
      • 还有 PSH+ACK 包( 表示有数据传输 )。

    Process Explorer

    • 在ProcessExplorer查找后门程序, 可以详细查看该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等 。

    静态分析

    使用VirusTotal分析恶意软件

    可以分析出 SHA-1、MD5摘要值、文件类型、文件大小,TRiD文件类型、加壳情况、算法库支持等。

    PE Explorer
    • PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。

    • 使用 PE Explorer 分析后门程序。

    • 可进行反编译。

    • 查看 dll 库。

    使用PEID进行外壳检测
    • PEID分析后门程序。

    • PEID反编译

    实验总结与体会

    实验中遇到了许多问题,其一:

    wireshark显示无法找到端口。

    • 解决办法:以管理员身份启动cmd,输入命令即可,之后再以管理员身份运行wireshark

    • 如果在运行命令 net start npf 时,出现:

      服务名无效。
      请键入 NET HELPMSG 2185 以获得更多的帮助。
      

      则需要安装 winpcap,安装完即可运行命令。

    上次实验实现了在开启了防火墙和杀软的条件下,启用后门程序,可知杀软并不能完全防护住恶意代码的入侵。这次更详细的实现了如何自己手动检测恶意代码,并分析恶意代码运行过程。不再只依赖于杀软。

  • 相关阅读:
    uniapp--悬浮可拖动按钮-实现思路
    js获取指定日期的前一天/后一天
    适配
    使用了@Slf4j log没有info的方法 .info()方法爆红或者log爆红
    用hexo在本地搭建自己的博客
    gulp 前端构建工具使用
    springboot+idea 热部署
    配置DNS服务器转发器
    windows server2008 r2安装DNS服务器
    卸载jdk1.7
  • 原文地址:https://www.cnblogs.com/Yogile/p/12730838.html
Copyright © 2011-2022 走看看