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

    一、实践目标

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

    二、实践内容

    1.系统运行监控

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

    2.恶意软件分析

    • (1)启动回连
    • (2)安装到目标机
    • (3)及其他任意操作时。该后门软件
      • 读取、添加、删除了哪些注册表项
      • 读取、添加、删除了哪些文件
      • 连接了哪些外部IP,传输了什么数据(抓包分析)

    三、实践步骤

    任务一 系统运行监控

    (一)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。

    • 1.命令创建计划任务netstat5230
      schtasks /create /TN netstat5230 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstat5230.txt"

    命令解释:
    TN netstat5230:说明计划任务名
    sc MINUTE:表示已分钟为单位的计时方式
    TR "cmd /c netstat -bn:cmd运行指令"netstat -bn",b会显示可执行文件名

    • 2.在C:盘下创建内容如下的批处理文件(可以先创建.txt文件然后修改后缀名为.bat)
    date /t >> c:
    etstat5230.txt
     time /t >> c:
    etstat5230.txt
     netstat -bn >> c:
    etstat5230.txt
    
    • 3.修改计划任务

    • 在开始处右击打开计算机管理->任务计划程序,找到上述创建的任务

      • 打开任务,操作->编辑->程序脚本,替换为上述创建的批处理文件netstat5230.bat,添加参数为空,并在常规选项卡中勾选使用最高权限运行
    • 4.对该任务右键点击运行,可在netstat5230.bat目录下看到netstat5230.txt,打开就可看到每隔一分钟被输到这里的联网数据

    • 5.一段时间后,打开Excel表格,选择数据->导入数据->选择数据源,点击确定

    • 6.在原始数据类型中选择分隔符号,勾选所有分隔符号

    • 7.选择插入->数据透视图,选择我们要分析的那一列,并默认位置新表格,点击确定,在字段中去除不需要的字段,该字段拖动到下方的轴和值两个区域中,最后,得到我们需要的联网信息统计图

    从图中可知:1.使用最多的是WPS.exe,我此时用的正是WPS
    2.接下来是QQ浏览器,正在写博客
    3.然后是dgservice.exe dgservice.exe服务是驱动精灵的服务,可以安全结束进程,可以在服务里将其设为手动。当你下次打开驱动精灵时,此服务也会一起打开

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

    • 1.首先根据实验提供的链接,编写配置文件5230sysmoncfig.xml,代码如下:
    <Sysmon schemaversion="3.10">
      <!-- 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>
    
        <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">winlogon.exe</TargetImage>
          <SourceImage condition="end with">powershell.exe</SourceImage>
        </CreateRemoteThread>
      </EventFiltering>
    </Sysmon>
    
    - exclude相当于白名单,不用记录;include相当于黑名单
    - Image condition根据自己使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,写在exclude中就是不记录由谷歌浏览器创建的进程
    - 进程创建时间类似,也是不创建浏览器创建进程的时间
    - 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1(localhost)的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态)
    - 远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
    - explorer.exe是Windows程序管理器或者文件资源管理器
    - svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称
    - winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出
    - powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
    
    • 2.下载Sysmon

    • 3.输入命令Sysmon.exe -i 5230sysmoncfig.xml启动Sysmon

    • 4.进入事件查看器里查看日志,点击事件查看器,在应用程序和服务日志->Microsoft->Windows->Sysmon->Operational可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别等

      • 用Sysmon分析事件,可以看到显示得有具体时间、运行的程序、使用的协议、源IP、目的IP等等

    任务二、恶意软件分析

    (一)静态分析工具

    • 1.使用VirusTotal分析恶意软件,将实验三一个加壳的后门程序放入virusTotal中分析
      可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,TRiD文件类型、加壳情况、算法库支持

    • 2.使用PE explorer进行外壳检测

      • 查看静态数据目录、节头信息

      • 通过工具可以进行反汇编

      • 点击上方菜单的红箭头可以查看dll库

    msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件
    kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理,是必需的
    advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,会受到病毒的侵扰及篡改,导致系统文件丢失、损坏
    wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序,是一个对系统很关键或很可疑的文件,易遭受木马病毒(如“犇牛”病毒)破坏导致系统找不到此文件,出现错误提示框。
    ws2_32.dll是Windows Sockets应用程序接口。一些病毒会在杀毒软件目录中建立伪"ws2_32.dll"的文件或文件夹,在杀毒软件看来这是程序运行需要的文件而调用,这个所谓的“文件”又不具备系统"ws2_32.dll"文件的功能,所以杀毒软件等就无法运行了而提示:应用程序正常初始化失败

    (二)动态分析工具

    • 1.抓包工具运用(wireshark)

      • 反弹链接时进行捕包,其中找到了win7与kail之间三次握手的建立,同时连接后可以看到捕获到大量的TCP传输

      • 输入其他命令如dir,Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包。说明两者之间产生了数据传输

    • 2.快照比对(SysTracer)

      • 安装时进入选择第二个,下一步后设置端口为后门的反弹端口5230

      • 打开后门前先点击take snapshot(创建快照),接着Start,命名为Snapshot #1

      • 开启后门程序回连创建第二个快照Snapshot #2(方法和创建Snapshot #1一样)

      • 然后kali中输入ls命令创建第三个快照Snapshot #3

      • 输入screenshot命令创建第四个快照Snapshot #4

      • 结束链接创建第五个快照Snapshot #5

      • 按住Ctrl任选两个截取的快照,点击compare就可以进行比较两者之间的区别

      • 比较#1和#2可以看到增加5230端口及两个地址

    - 比较#2和#3也有增加的操作
    


    - 比较#3和#4可以看到关闭了一些东西但是也出现了一个新的调用SysTracer.exe有了改变

    - 最后#4和#5因为关闭了链接,所以对应端口和大量的dll文件都被删除,关闭或改变

    四、基础问题回答

    • (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
      使用Sysmon,编写配置文件,记录有关的系统日志
      使用systracer,对比不同快照,查看是否有可疑行为
    • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
      首先利用静态分析工具如:PEID、ExeinfoPE等工具看看有没壳在保护,然后可以利用wireshack等工具查看此程序有没有异常的连接,然后利用systracer,对比进程运行前后有没有可疑端口、注册表或可疑的变化

    五、实践体会

    本次实践与以往的实践相比较为简单,只是需要安装的软件有些多,我个人认为,本次实践可以让我们的电脑更加安全,木马病毒我们很少会用到,但是防范木马病毒、查找电脑中的木马病毒显得更为有用,虽然本次实践只是初步学会了分析恶意软件的方法,但在以后的日子里,我们会对于这种分析会越来越熟练。

  • 相关阅读:
    项目 插件 -下载- 使用,jar包-下载
    视频截图Util
    Java获取数据库表 字段 存储的部分数据
    bootstrap-select插件 多选框
    json数据 二级联动
    layer层、modal模拟窗 单独测试页面
    SEVERE: An incompatible version 1.1.27 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.32
    SQL like 模糊查询, in
    sqlserver 删除表中 指定字符串
    sqlserver 将 “用 特定字符 分隔的一个字段” 拆分成多个字段,然后两个表之间数据更新
  • 原文地址:https://www.cnblogs.com/tengxing/p/12716314.html
Copyright © 2011-2022 走看看