2019-2020-2 20175334罗昕锐《网络对抗技术》Exp4 恶意代码分析

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp4 恶意代码分析

1 实践说明

1.1实践目标

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

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

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

1.2基础知识

1.2.1恶意代码定义

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

1.2.2恶意代码特征

  • 恶意的目的

  • 本身是计算机程序

  • 通过执行发生作用

1.2.3恶意代码分类

  • 不感染的依附性恶意代码(特洛伊木马、逻辑炸弹)

  • 不感染的独立性恶意代码(点滴器、繁殖器)

  • 可感染的依附性恶意代码(病毒)

  • 可感染的独立性恶意代码(蠕虫)

2 系统运行监控

2.1 Windows计划任务schtasks

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

  • 输入以下命令,每 分钟记录下有哪些程序在连接网络。此命令完成后,每分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里

schtasks /create /TN 20175334netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"

  • 其中各参数含义如下:
TN:Task Name
SC: SChedule type,本例中是MINUTE,以分钟来计时
MO: MOdifier
TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
>:将结果输出到c盘下的netstatlog.txt文件中

  • 在C盘下建一个文件c:\netstatlog.bat,内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
  • 打开控制面板->管理工具->任务计划程序,找到创建的任务

  • 打开属性,在操作选项卡中,编辑操作,把框中原本的cmd改成c:\netstatlog.bat

  • 在常规选项卡中勾选使用最高权限操作

  • 等待一段时间后,打开c:\netstatlog.txt文件

  • 打开Excel,依次点击数据——获取外部数据——自文本,选择netstatlog.txt,分列选择分隔符号(全选)

  • 选中要分析的列,依次点击插入——数据透视图,来生成一个数据透视图

  • 由上图所示,联网最多的是QQ对应的“QQ.exe”,排名第二的是360浏览器广告插件对应的“sesvc.exe”,除此之外还可以看到微信、腾讯课堂、360等程序,没有发现什么其他可疑程序

2.2 sysmon工具

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

  • 参考:schtask与sysmon应用指导

  • 这里下载sysmon工具

  • 创建配置文件sysmon.xml,文件中写入以下指令:

<Sysmon schemaversion="4.23">
  <!-- 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">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>

    <NetworkConnect onmatch="include"> 
      <DestinationPort condition="is">5334</DestinationPort>     
      <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>
  • 以管理员身份打开命令行,使用指令Sysmon.exe -i sysmon.xml安装


  • 打开打开事件查看器,在左侧栏依次找到应用程序和服务日志——Microsoft——Sysmon——Operational

  • 运行实验二生成的后门文件,在虚拟机中获取Windows的命令行

  • 查看到后门文件的日志

  • 进程创建:

-从图中可得到以下信息:

程序:C:\Users\16487\Documents\ncat\ncat\backdoor5334.exe
描述:ApacheBench命令行实用程序
产品:Apache HTTP服务器
  • 回连:

  • 从图中可得到以下信息:
程序:C:\Users\16487\Documents\ncat\ncat\backdoor5334.exe
协议:tcp
源IP地址:192.168.186.1(Windows的IP)
目标IP地址:192.168.186.141(kali的IP)
目的端口:5334
源端口:5583

3 恶意软件分析

  • 要求:分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时,该后门软件

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

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

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

3.1 静态分析

  • (1) 文件扫描(VirusTotal)

    • 选择的是实验三生成的加压缩壳的后门程序

  • DETAILS中可看到详情,如三个算法的摘要值、文件类型、文件格式

  • (2)文件格式识别(peid工具)

    • 对未加壳的后门程序检测


  • 对加壳的后门程序检测


  • 在执行后门程序时,可以发现会运行很多.DLL的文件,也就是动态链接库
  • (3) 反编译、反汇编(PE Explorer工具)

    • 文件头信息

  • 调用的DDL文件

msvcrt.dll:微软在windows操作系统中提供的C语言运行库执行文件
kernel32.dll:32位动态链接库文件,属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域
advapi32.dll:一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关
wsock32.dll:Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序
ws2_32.dll:Windows Sockets应用程序接口, 用于支持Internet和网络应用程序
  • 版本信息(与PEID查看内容无异)

  • 反汇编

3.2 动态分析(SysTracer工具)

  • 点击创建快照,我创建了四个进行比对,分别是:

    • Snapshot #1:不进行任何操作

    • Snapshot #2:运行后门程序并成功反弹连接

    • Snapshot #3:运行mkdir命令

    • Snapshot #4:运行screenshot命令

  • 对比Snapshot #1和Snapshot #2

    • 修改了大量注册表信息(绿色为增加,红色为删除)


  • 增删了大量dll文件

  • 可以找到运行中的后门程序,查看IP和端口可以知道回连成功

  • 对比Snapshot #2和Snapshot #3

    • 同样修改了大量注册表信息

  • 同样增删了dll文件

  • 增删了文件

  • 对比Snapshot #3和Snapshot #4

    • 同样增删了dll文件

  • 修改了注册表信息

3.3 抓包分析(WireShark工具)

  • 输入ls后捕获的数据包

  • 从数据包中可以看到源IP、目的IP、源端口、目的端口以及传输的数据

4 实验收获与感想

  • 通过本次实验,我明白了恶意代码不仅可以通过一些工具来进行静态分析,而且还可以通过动态的手段来防护。例如我们电脑自带的Windows Defender以及杀软的防护功能,但这些我们无法看见,所以我们可以通过SysTracer等工具来看到系统内的变化来进行防护;实验内容及操作并不难,也对之前实验的内容进行了复习,受益匪浅。

5 回答问题

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

    • 用schtasks来建立一个任务,每隔一段时间对主机联网状态进行记录;通过sysmon工具记录有关的日志文件;使用Process Explorer工具,监视进程执行情况;使用Process Monitor工具,监视文件系统、注册表、进程的活动
  • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息

    • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改;使用Wireshark进行抓包分析,监视其与主机进行的通信过程;通过VirusTotal对文件进行分析

猜你喜欢

转载自www.cnblogs.com/lxr1006/p/12710945.html