• Exp4 恶意代码分析 Week6


    Exp4 恶意代码分析 Week6 - 20165201


    (由于图片比较大,看的时候需要关闭侧边栏~)

    学习目标

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

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

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

    学习内容

    1、系统运行监控(2分)

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

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

    参考:schtask与sysmon应用指导

    实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理

    2、恶意软件分析(1.5分)

    分析该软件在

    • 启动回连

    • 安装到目标机

    • 及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

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

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

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

    该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上

    实验环境

    • macOS Mojave
    • Kali
    • Windows7

    基础问题回答

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

    • 可以利用Windows的schtasks建立计划任务
    • 可以利用sysmon,配置需要监控的端口、注册表信息、网络连接等信息,通过其生成的日志文件进行查看
    • 可以利用wireshark进行抓包分析

    2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息

    • 可以利用wireshark查看所抓到的数据包的具体信息
    • systracer进行快照的对比(注册表、文件等)

    实验步骤

    1、利用Windows计划任务schtasks指令监控系统运行

    • 打开cmd,输入指令:
      schtasks /create /TN 20165201_netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog20165201.txt
      • TN:Task Name,本例中是netstat
      • SC: SChedule type,本例中是MINUTE,以分钟来计时
      • MO: MOdifier
      • TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口

    创建计划任务20165201_netstat,记录每1分钟计算机联网情况:

    • 在C盘目录下,创建一个名为netstatlog20165201.txt的文本文件
    • 打开此文本文件输入以下内容,然后保存:
    date /t >> c:
    etstatlog20165201.txt 
    time /t >> c:
    etstatlog20165201.txt 
    netstat -bn >> c:
    etstatlog20165201.txt
    
    • 将后缀名改为.bat后

    • 右键选择以管理员身份运行:

    • 打开任务计划程序,可以看到创建的任务20165201_netstat

    • 双击打开这个任务,点击操作,点击编辑

    • 程序或脚本改为刚才创建好的C: etstatlog20165201.bat

    • 在属性中常规一栏最下面勾选使用最高权限运行

    • 然后就能够在C盘目录下的netstatlog20165201.txt文件中看到记录的联网记录了

    • 然后我们打开Excel,点击文件 -> 导入...,选择文本文件

    • 然后选择我们的netstatlog20165201.txt

    • 选择分隔符号,文件原始格式选择简体中文(GB 2312)

    • 分隔符这一栏全选中

    • 列数据格式选择常规

    • 点击表中的左上角一格,然后确定

    • 导入成功啦!!!

    • 然后我们用数据透视表进行汇总,结果如下图:

    • 发现联网最多的软件是QQPCTray.exe,该进程是QQ电脑管家为腾讯公司出品的一款安全软件,对用户的系统进行安全检测、修复漏洞、木马查杀、系统优化、实时防护等功能。

    • 它连接的目标地址主要有183.192.200.40、121.51.154.26、121.51.154.28

    2、利用sysmon工具监控系统

    <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">chrome.exe</Image>
          <Image condition="end with">iexplorer.exe</Image>
          <Image condition="end with">firefox.exe</Image>
          <SourcePort condition="is">137</SourcePort>
          <SourceIp condition="is">127.0.0.1</SourceIp>
          <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">firefox.exe</TargetImage>
          <TargetImage condition="end with">svchost.exe</TargetImage>
          <TargetImage condition="end with">winlogon.exe</TargetImage>
          <SourceImage condition="end with">powershell.exe</SourceImage>
        </CreateRemoteThread>
        
        <ProcessCreate onmatch="include">
          <Image condition="end with">chrome.exe</Image>
          <Image condition="end with">iexplorer.exe</Image>
          <Image condition="end with">firefox.exe</Image>
        </ProcessCreate>
        
        <FileCreateTime onmatch="exclude" >
          <Image condition="end with">firefox.exe</Image>   
        </FileCreateTime>
        
        <FileCreateTime onmatch="include" >
          <TargetFilename condition="end with">.tmp</TargetFilename>       
          <TargetFilename condition="end with">.exe</TargetFilename>  
        </FileCreateTime>
        
      </EventFiltering>
    </Sysmon>
    
    • Sysmon.exe -c C:Sysmon20165201.xml命令指定配置文件,但是报错说:版本不匹配

    • 更改 Sysmon20165201.xml 中的配置,即改变版本号为4.20即可,如下图:

    • 打开开始菜单,搜索事件查看器并打开,在左侧控制台树按照事件查看器->应用程序和服务日志->Microsoft->Windows依次展开,找到Sysmon下的Operational并双击打开:

    • 生成一个后门程序 testbackdoor.upxed.exe ,用Kali攻击机的msfconsole回连

    • 我们看到上图中的时间为18:32:24,然后我们在事件查看器中找到该时间点对应的事件,可以看到连接的详细信息,包括ip、端口、pid等,相关信息与上上图对应(kali的那个图,比如进程号为2712):

    3、利用VirusTotal分析恶意软件

    • 我们把之前刚刚生成的testbackdoor.upxed.exe扔到VirusTotal里面进行分析

    • 点击Details以查看相关基本属性以及加壳情况:

      我们可以看到这个后门程序的基本信息:如MD5值、SHA-1值、文件类型以及文件大小

    • 然后是加壳情况

      用的是UPX压缩壳

    • 然后是算法库支持情况

    4、利用Process Explorer分析恶意软件

    • 我们在Windows7中运行之前的后门程序testbackdoor.upxed.exe,然后在kali中回连,然后在Process Explorer中查看相关记录信息:
    • 输入webcam_snap使用摄像头进行拍照
    • record_mic命令录一段音频
    • webcam_stream命令录像

    5、利用Process Monitor分析恶意软件

    • 打开Process Mointor

    • 点击filter -> filter 在弹出的对话框中Architecture下拉框,选择 Process Name 填写要分析的应用程序名字,我这里分析之前生成的后门程序testbackdoor.upxed.exe,然后点击add 最后点击右下角的apply

    • 我们在Windows7中运行之前的后门程序testbackdoor.upxed.exe,然后在kali中回连,然后在Process Monitor中查看相关记录信息:

      我们可以看到,在回连的这段时间里,PID为2712,这与之前我们查看的信息符合,路径是从本机(Windows7)传到192.168.0.105(Kali)的5201端口

    • 这里我只分析了一个后门程序,同理我们还可以分析其他可疑的程序,过程类似

    6、利用PEiD分析恶意软件

    • 下载PEiD,地址是http://www.onlinedown.net/soft/988686.htm

    • 双击打开PEiD.exe

    • 然后在文件一栏的右侧打开我之前生成的后门程序testbackdoor.upxed.exe,可以看到EP段一栏里面写着所加的壳为UPX1,版本是UPX 0.89.6

    • 点击>>按钮可以查看详细信息:

    • 我们试试打开未加壳的文件 ncat.exe

      果然显示什么都没找到!

    遇到的问题

    1、无法保存到当前目录

    解决办法:以管理员身份打开记事本进行保存

    实验心得

    这次实验让我学会了如何用各种软件进行分析,软件的使用方法是次要的,主要是学会如何进行分析,要找到属于自己的思路,虽然一开始入手较为困难,但是熟练了之后还是可以的。
    这次的实验没有实验指导,完全是自己查找相关软件的用法,看看各种软件的教程,学习如何进行分析,比如说利用Process Monitor分析恶意软件,我就在百度上查找Process Monitor的教程,然后通过过滤查找单一的程序名,来分析我生成的后门程序testbackdoor.upxed.exe。
    可以说收获非常大!!

  • 相关阅读:
    架构师如何才能够设计一个安全的架构
    Google Analytics实用用小技巧
    如何从Linux系统中删除用户账户
    使用C++编译器的编译流程
    JavaScript中双叹号的使用实例
    Android合并文件的三种方式代码
    自学Linux命令的四种方法
    前端工程师必备实用网站
    给 iOS App 开发者的 39 个开源的 Swift UI 库
    关于iOS项目的一本书
  • 原文地址:https://www.cnblogs.com/cbmwtsl/p/10667403.html
Copyright © 2020-2023  润新知