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

    2019-2020-2 20175324 王陈峤宇《网络对抗技术》Exp4 恶意代码分析

     

    一、实验目标与内容

    1.实践目标

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

    2.实践内容

    2.1 系统运行监控

    (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    (2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点是可疑行为。

    2.2分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。

    该后门软件
    读取、添加、删除了哪些注册表项
    读取、添加、删除了哪些文件
    连接了哪些外部IP,传输了什么数据

    二、实践步骤

    1.使用schtasks指令监控系统

    1.1.使用命令schtasks /create /TN netstat5324 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt" 创建计划任务nestat5324

    TN是TaskName的缩写,我们创建的计划任务名是netstat5324;
    sc表示计时方式,我们以分钟计时填MINUTE;
    TR是Task Run,要运行的指令是netstat
    bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;

    表示输出重定向,将输出存放在c: etstatlog.txt文件中

    1.2.在C盘中创建一个名为netstat5324.bat的脚本文件,写入以下内容:

    date /t >> c: etstat5324.txt
    time /t >> c: etstat5324.txt
    netstat -bn >> c: etstat5324.txt

    1.3.打开任务计划程序,可以看到新创建的这个任务:

    1.4.双击此任务,点击操作->编辑,将程序或脚本改为我们创建的netstat5324.bat文件。

    1.5.在常规 栏勾选不管用户是否登录都要运行、使用最高权限运行

    1.6.接下来等待脚本执行一段时间(这段时间内要保持开机联网状态),就可以在netstat5324.txt文件中查看到这段时间内的联网记录

    1.7.将存储的数据导入到excel表中进行整理

    1.8.整理好的数据图表如下:

    在统计表中我们可以看出,联网最多的程序有google浏览器、百度网盘、wps等。

    2.使用sysmon工具监控系统#

    2.1.下载Sysinternals套件,Sysmon是该套件中的一个工具,可以监控几乎所有的重要操作。

    2.2.确定要监控的目标。对信任的程序设置白名单。

    可选择的事件过滤器有 ProcessCreate 进程创建、FileCreateTime 进程创建时间、NetworkConnect 网络链接、ProcessTermina 进程结束、DriverLoad 驱动加载、ImageLoad 镜像加载、CreateRemoteTh 远程线程创建、RawAccessRead 驱动器读取、ProcessAccess 进程访问、FileCreate 文件创建、RegistryEvent 注册表事件、FileCreateStre 文件流创建等。

    参考同学编辑而成的配置文件sysmon20175324.xml内容如下

    <Sysmon schemaversion="4.12">
      <!-- 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>

    10.42意味当前Sysmon的版本为10.42版本。
    exclude相当于白名单,不用记录。include相当于黑名单。onmatch意为匹配。
    ProcessCreate表示进程创建
    NetworkConnect是网络连接,网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,并查看目的端口为80(http)和443(https)的网络连接。
    CreateRemote是远程线程创建。这里使用“include”选择记录目标为explorer.exe、svchost.exe、firefox.exe、winlogon.exe和powershell.exe 的远程线程。

    FileCrete Time是进程创建时间

    2.3.安装sysmon

    执行命令sysmon.exe -i C:sysmon20175324.xml

    2.4.打开计算机管理,查看事件查看器,在应用程序和服务日志/Microsoft/Windows/Sysmon/Operational中,可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别以及详细信息。

    2.6.最早的一条日志就是找到我们创建的sysmon20175324.xml配置文件

     

    3.恶意软件分析

    3.1.采用virustotal网站对恶意软件进行分析

    3.2.Process Explorer工具

    其作用是实时显示文件系统、注册表、进程/线程的活动。
    第一步:查找进程

    第二步:查看该进程具体信息

    这是该进程使用的CPU,虚拟内存空间、物理内存空间、I/O

    3.3.用wrieshark补包分析

    (1)使用实验二生成的后门程序回连kali虚拟机


    (2)wrieshark补包分析,可以发现后门回连过程中建立了完整的三次握手,设置相应的ip过滤器后,可以具体观察每次执行命令后新增的包

    传输的数据包括Windows向Kali发出TCP同步请求包SYN,Kali给Windows发出的SYN同步请求包和确认包ACK等。

    3.4.使用Systracer进行分析

    首先下载并安装Systracer,再点击右侧的take snapshot,存储快照。这里为了方便处理数据,我仅选中了C盘。

    在kail回连主机前后分别快照进行比较。

    快照分析如下

    可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议

    通过查看后门软件的“opened handles”(打开的句柄)来对比,发现了一些改动

    后门程序对注册表和文件的修改操作如下

    3.5.使用Process Explorer分析恶意软件

    靶机运行后门程序进行回连时,我们可以在 Process Explorer工具中查看到其记录

    在此我们可以看出,该程序是在命令行中运行的

    也可以详细查看该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等

    三、实验后回答问题

    1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。

    请设计下你想监控的操作有哪些,用什么方法来监控。

    我们可以使用Windows任务计划netstat查看网络连接情况。

    使用Process Explorer监控进程,使用wireshark捕包,使用sysmon工具分析数据包。

    配置好想要监控的端口、注册表信息、网络连接等信息,通过日志文件分析系统有无异常现象。

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

    首先我们可以采用virustotal网站对恶意软件进行分析,如果没有得出结论,我们再使用Process Explorer工具监控相关进程和线程的活动。

    我们还能使用Wireshark进行抓包分析,监视其与主机进行的通信过程。

    同时,我们可以通过systracer工具进行相关的分析,查看它对注册表和文件有没有进行修改。

    四、实验总结

    与前几次实验相比,本次实验耗时较久。主要原因是这次实验需要用到前几次实验的知识,也引入了不少新的软件,而这些新软件

    所捕获的大量数据我们之前都没有分析的经验。前几次实验都是阶段性的任务,这一次实验更偏向于实战,在实际生活里,我们分析

    恶意代码时,一定也会遇到不少困难。在本次实验中,我学会了监控自己系统的运行状态的方法,也知悉了分析恶意软件的方法,收

    获良多,感觉自己对网络安全有了更清楚的认识。

  • 相关阅读:
    mysql数据库汉字首字母简拼全拼
    window.showModalDialog刷新父窗口和本窗口的方法及注意
    c#.net语句e.Row.RowType == DataControlRowType.DataRow是什么含义?
    SQL 拿到一天内的数据
    在线脚本编辑器
    输入正确的邮箱地址
    jquery中的$(document).ready()方法和window.onload方法区别
    转载从XML文件中读取数据绑定到DropDownList
    GridView中DropDownList联动
    For 循环 和Foreach 的区别
  • 原文地址:https://www.cnblogs.com/wcqy/p/12722429.html
Copyright © 2011-2022 走看看