zoukankan      html  css  js  c++  java
  • 20174323张加欣-Exp4 恶意代码分析

    1.实验内容及软件准备

    1.1  实验目标  

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

    1.2  实验内容  

    系统运行监控:

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

    恶意软件分析:

    • 分析该软件在

      • 启动回连
      • 安装到目标机
      • 及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)
    • 该后门软件
      • 读取、添加、删除了哪些注册表项
      • 读取、添加、删除了哪些文件
      • 连接了哪些外部IP,传输了什么数据(抓包分析)

    1.3  软件准备  

    • 为后续实验方便,可以提前下载软件Sysmon、PEID、PE Explorer、Systracer、Wireshark

    2.系统运行监控

    2.1  使用schtasks设置计划任务  

    • 以管理员身份运行cmd。
    • 输入指令schtasks /create /TN netstat4323 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt",创建计划任务netstat4323
    • 在C盘中创建一个netstat4323.bat脚本,文本中输入内容如下:
    date /t >> c:
    etstat4323.txt
    time /t >> c:
    etstat4323.txt
    netstat -bn >> c:
    etstat4323.txt
    

    • 打开任务计划程序,可以看到新创建的这个任务。
    • 双击打开任务,点击操作中的编辑,将“程序或脚本”改为我们创建的netstat4323.bat。
    • 同时,需要取消条件中的“电源”选项;点击常规中的“使用最高权限运行”。

    • 等到脚本执行一定的时间,就可以在netstat4323.txt文件中查看到本机在该时间段内的联网记录。
    • 当记录的数据足够丰富时,将存储的数据通过excel表进行整理,步骤如下:
    1. 新建Excel文件,在查找输入“获取外部数据”,点击”连接”。
    2. 选择记录连接情况的文本netstatlog.txt,点击“导入”。
    3. 进入文件导入向导第一步,选中“分隔符号”,点击“下一步”。
    4. 进入文件导入向导第二步,选中全部分隔符号,点击“下一步”。
    • 数据导入后,再进行下列操作:

    1. 选中要操作的B列,点击上方“插入”的“数据透视图”。
    2. 选择在一个新工作表中生成。
    3. 右侧项目栏“选择要添加到报表的字段”中点击小箭头,取消选择那些没有意义的字段,并将该字段拖动到下方的“轴字段”和“数值”两个区域中。
    • 得到统计图可以进行分析

    2.2  使用sysmon工具监控系统  

    • 下载SysinternalsSuite.zip,电脑是64位的系统,选择Sysmon64.exe,在程序的属性中查看版本信息。
    • 在Sysmon所在的目录下创建相应的配置文件 sysmon20174323.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> 
          <Image condition="end with">firefox.exe</Image>
        </ProcessCreate>
     
        <ProcessCreate onmatch="include"> 
          <ParentImage condition="end with">cmd.exe</ParentImage>
        </ProcessCreate>
     
        <FileCreateTime onmatch="exclude" >
          <Image condition="end with">chrome.exe</Image>
          <Image condition="end with">firefox.exe</Image>
        </FileCreateTime>
         
        <NetworkConnect onmatch="exclude">
          <Image condition="end with">chrome.exe</Image>
          <Image condition="end with">firefox.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>
    

      

    • 以管理员身份打开命令行,使用指令 Sysmon.exe -i C:sysmon20174323.xml 安装 sysmon。
    • 进入事件查看器,选择“应用程序和服务日志”,查找“Microsoft>Windows>Sysmon>Operational"。
    • 可以看到配置文件记录的第一个日志是打开C:sysmon20174323.xml配置文件。
    • 运行实验三的后门程序。
    • 进入事件查看器,可以找到该后门程序的运行记录。(由于实验三进行了加壳处理,所以许多信息都是“?”)
    • 接着还有以下事件。

    3.恶意软件分析

    3.1  静态分析-使用VirusTotal分析恶意软件  

    • 运用在实验三中我们使用过的VirusTotal,将后门程序上传到VirusTotal,可得以下详细信息。

    3.2  静态分析-使用PEiD分析恶意软件  

    • 将实验三中加壳后的文件使用PEiD进行扫描,首先扫描未加壳的程序。

    • 再扫描加过压缩壳与加密壳的程序。

    3.3  静态分析-使用PE Explorer分析恶意软件  

    • 打开软件,使用其引入功能查看文件引用的动态链接库。
    • 经过查询"KERNEL32.dll"控制着系统的内存管理、数据的输入输出操作和中断处理,"msvcrt.dll"是微软编译软件的函数库。
      通过分析生成的后门程序都会使用"KERNEL32.dll",所以如果有陌生软件使用"KERNEL32.dll"则应当提高警惕。

    3.4  动态分析-使用wireshark对后门软件进行分析  

    • 回连完成后结束捕获,并把过滤规则设置为ip.addr == 192.168.145.128 
    • ping通时的ICMP包。
    • MSF 反弹连接时的TCP包。
    • dir时查看包,返回的是TCP三次握手的包。
    • 其余的回连包。

    3.5  动态分析-使用Systracer进行分析  

    • 下载安装Systracer,之后存储如下快照:

    1. 快照一:未移植后门程序,保存为Snapshot #1
    2. 快照二:移植后门程序,保存为Snapshot #2
    3. 快照三:运行后门程序并在kali中实现回连,保存为Snapshot #3
    4. 快照四:在kali中使用dir指令,保存为Snapshot #4
    5. 快照五:在kali中使用record_mic指令,保存为Snapshot #5
    • 5次快照完成。
    • 首先对比快照一与快照二,可以看得出增加了后门文件20174323exp4.exe

    • 对比快照二与快照三,可以看到后门启动后快照三中后门程序20174323exp4.exe加入了正在运行的程序。

    • 同时还多了许多的文件,均是启动后门程序后增加的dll文件。
    • 对比快照三与快照四,可以看到对key_local_machine根键中的内容进行了修改,KEY_LOCAL_MACHINE保存了注册表里的所有与这台计算机有关的配置信息,执行dir会改变该注册表的信息。

    • 对比快照三与快照五,可以看到kali执行record_mic录音指令后,后门程序增加了audioses.dll,这是与声卡驱动有关的动态链接库,可见该后门程序启动了主机声卡。

    4.问题回答

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

    • 使用本实验初的方法,使用schtasks指令设置一个计划任务,观察一天左右的联网情况,对其进行分析查看是否有可疑的联网程序
    • 使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件
    • 使用Process Explorer,查看系统中是否存在可疑进程
    • 使用Process Monitor,监视文件系统、注册表、进程/线程的活动
    • 使用Systracer拍摄几个时间点的快照,对比不同时间的快照,查看是否有可疑的增删注册表、启动项,的行为。
    • 使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输

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

    • 最简单的方法,使用VirusTotal分析恶意软件,上传后查看detail
    • 使用PEiD查看程序是否加壳,加的什么壳
    • 使用PE Explorer查看其引用的动态链接库
    • 使用wireshark查看他在运行时传输信息的方式以及内容、端口以及目的地址是哪里
    • 使用Systracer工具拍摄快照,查看其对注册表和文件的修改

    5.实验心得

    • 本次实验比之前的简单一些,使用了数款用于检测恶意代码的指令或是软件,例如SysTracer、SysinternalsSuite、ProceMonitor等。这些工具都能很好地辅助我们对主机进行监控,以发现恶意行为并进行及时处理。虽然恶意代码的分析工具多种多样、日趋完善,但作为计算机用户的我们更不能掉以轻心,而应该时刻保持警惕。要时常对电脑的行为进行监控,不要只寄希望于杀毒软件,因为杀毒与免杀的博弈关系会使二者共同发展,并不是所有的恶意代码都会被杀毒软件拒之门外。
  • 相关阅读:
    机器学习笔记之Boosting算法
    机器学习笔记之多重共线性问题以及如何解决
    机器学习笔记之在Visual Studio Code中使用Jupyter Notebook
    高数学习笔记之范数与距离度量(python实现)
    机器学习笔记之线性回归最小二乘法(公式推导和非调包实现)
    机器学习笔记之线性回归数学推导
    高数笔记之期望、方差与最小二乘法
    DataTable 去重 测试
    vs2019 项目历史记录
    sql 求和 语句
  • 原文地址:https://www.cnblogs.com/174323jiaxin/p/12718779.html
Copyright © 2011-2022 走看看