2019-2020-2 20175319江野《网络对抗技术》Exp4 恶意代码分析

1 实践目标

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

2 实践内容

  • 2.1系统运行监控
    (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
    (2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
    参考:schtask与sysmon应用指导
    实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
  • 2.2恶意软件分析
    分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
    (3)读取、添加、删除了哪些注册表项
    (4)读取、添加、删除了哪些文件
    (5)连接了哪些外部IP,传输了什么数据(抓包分析)
    该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。

2.1 系统运行监控

Windows计划任务schtasks

  • 指令说明
    官方文档,该指令功能等同于控制面板-Windows计划任务。
  • 简单实现
    schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\20175319log.txt"

  • 批处理
    再加工一下,在C盘要目录下建一个文件netstatlog.bat,内容如下:
date /t >> c:\20175319log.txt
time /t >> c:\20175319log.txt
netstat -bn >> c:\20175319log.txt

在图形界面打开任务计划程序,将指令替换为c:\netstatlog.bat

更改完后,我们在20175319log.txt中会看到如下的输出,多了日期与时间,这样看起来更方便。

将数据导入excel,生成图表形式

上面为两个小时监测情况,其中twinkstar.exe是我使用的浏览器,其他均正常

Sysmon

Sysmon是微软Sysinternals套件中的一个工具。可以监控几乎所有的重要操作。
基本操作可以描述为三步

  • 确定要监控的目标
  • 写好配置文件
    sysmon提供了xml格式的配置文件来让用户自定义过滤规则
    可选择的事件过滤器有
ProcessCreate 进程创建
FileCreateTime 进程创建时间
NetworkConnect 网络链接
ProcessTermina 进程结束
DriverLoad 驱动加载
ImageLoad 镜像加载
CreateRemoteTh 远程线程创建
RawAccessRead 驱动器读取
ProcessAccess 进程访问
FileCreate 文件创建
RegistryEvent 注册表事件
FileCreateStre 文件流创建

配置文件C:\Sysmoncfg.txt:

<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">twinkstar.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </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
    Sysmon.exe -i C:\Sysmoncfg.txt

    配置文件可以随时修改,修改完需要用如下指令更新一下Sysmon.exe -c C:\Sysmoncfg.txt
  • 然后就可以在事件查看器查看了
    进入应用程序和服务日志->Microsoft->Windows->Sysmon->Operational

2.2恶意软件分析

使用PEiD查壳

PEiD是一款著名的可移植可执行程序(pe文件)外壳查询工具工具,其功能强大,可以轻易检出超过470种外壳,并可检查程序的编程语言。
对实验3中的20175319.exe和加壳后的20175319upx.exe进行检测


检测出了压缩壳UPX

PE Explorer

PE Explorer是一个强大的程序资源编辑工具,可以直接查看、修改软件的资源,包括菜单、对话框、字符串表等;另外,还具备有W32DASM软件的反编译能力和PEditor软件的PE文件头编辑功能。
在软件中打开20175319upx.exe

  • 文件头信息
  • 程序引入的dll

    msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件
    kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理
    advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关
    wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序
    ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。
  • 反汇编分析

SysTracer

SysTracer是一款集成HIPS以及进程行为跟踪功能的安全辅助工具,它可以跟踪并监视进程对整个系统的修改行为,包括文件操作,注册表操作,内存操作和危险行为。SysTracer可以监视全部进程,或者用户指定的某一个进程及其子进程,并提供监视日志以帮助用户对特定进程的行为进行分析。

  • snapshot#1:后门程序已在本机中
  • snapshot#2:运行后门程序并成功回连
  • snapshot#4:在kali中执行shell后
  • snapshot#5:在kali中执行screenshot后
  • 1与2进行对比

    可以看到后门程序启动,加入进程

    注册表出现许多新的表项
  • 2与4对比
    新增进程

    新增dll
  • 2与5对比
    对注册表和文件有所修改

wireshark抓包分析

对回连过程抓包

过滤条件:ip.addr ==192.168.0.173
目标机先对宿主机发送请求,进行了完整的三次握手,属于反弹连接,抓包中大部分是宿主机与目标机的TCP包,还有部分DNS包、ARP包。
关闭连接

3 实验中遇到的问题

  • 问题1:安装sysmon配置时出现错误提示

    解决方案:修改xml配置文件,将第一行修改成对应的版本<Sysmon schemaversion="3.10">

4 实验后回答问题

  • (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    使用schtasks设置计划任务监控一天的应用联网情况
    使用Sysmon查看网络连接、端口、注册表等信息,检查异常事件
    使用wireshark抓包,分析ip、端口、数据包情况
    使用Systracer拍摄快照,检查注册表、启动项、文件等信息之间的变化
  • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    使用PE Explorer查看文件头、引用的dll
    使用PEiD查壳
    使用Systracer拍摄快照,分析注册表、文件、进程等的修改信息

4 实验收获与感想

本次实验操作不算困难,主要注重分析恶意软件,这次实验也让我知道了恶意代码不是悄无声息的,可以被检测出来,让我对计算机的安全防护有了更深的了解和信心。

posted @ 2020-04-16 21:27  20175319江野  阅读(165)  评论(0编辑  收藏  举报