2018-2019-2 网络对抗技术 20165230 Exp4 恶意代码分析

1.实验内容

  • 系统运行监控
    • 使用如计划任务,每隔一分钟记录本身的电脑有哪些程序在联网,链接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控本身主机的重点事可疑行为。
  • 分析该软件在(1)启动回连,(2)安装到目标机(3)及其余任意操做时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 链接了哪些外部IP,传输了什么数据

2.实验过程

任务一:系统运行监控

每隔五分钟记录本身的电脑,并进行分析

  • 看有哪些程序在联网,链接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出全部连网的程序,连了哪里,大约干了什么(不抓包的状况下只能猜),你以为它这么干合适不。若是想进一步分析的,能够有针对性的抓包。

结合windows计划任务与netstat命令shell

  • netstat是一个监控TCP/IP网络的很是有用的命令行工具,咱们能够结合windows自带的计划任务
  • 每5分钟执行netstat -bn这条指令,并将结果重定向到一个txt文件当中。
  • -b可显示在建立网络链接和侦听端口时所涉及的可执行程序,-n显示全部已创建的有效链接。
  • 咱们先写出以下的批处理文件:
date /t >> D:\5230exp4\netstat.txt
time /t >> D:\5230exp4\netstat.txt
netstat -bn >> D:\5230exp4\netstat.txt

接着在“控制面板”中搜索“计划任务”,并建立新任务:
小程序

记住必定要在标红这里勾选使用最高权限运行。不然会出错windows

  • 建立触发器,选择每隔5分钟触发一次
    后端

  • 新建操做,选择5230netstat.bat的脚本
    浏览器

  • 而后就开始漫长的等待;
    【注】:这里须要一直保持开机联网状态,此外,若是发现netstatlog.txt没有每分钟更新一次,多是由于设置时默认选择了“只有计算机使用交流电源时才启用此任务”,因此一旦咱们不给电脑充电,任务就无法运行。解决方法就是在netstat任务属性的设置中取消选中该选项,以下图所示,而后就能够发现每隔一分钟命令行会闪现一下,其中包含netstatlog.bat中的三行指令,netstatlog.txt本身就随之更新了。
    网络

  • 一天过去后,用excel分析数据。tcp

1.导入文本数据:新建excel文件->选择上方“数据”->选择“获取外部数据”->选择“自文本”工具

2.选择记录链接状况的文本netstat.txt,点击“导入” -> 选中“分隔符号”,
学习

3.点击“下一步”->选中所有分隔符号,点击“下一步” -> 列数据格式选择常规,点击“完成”。

4.鼠标选中左上角第一个单元格,而后点击“肯定”

  • 对数据进行统计学分析:
    1.首先查看全部联网程序的联网次数,具体excel操做以下:
    ①首先选中咱们要分析的列
    ②其次点击上方“插入”->“数据透视图”
    ③默认选择在一个新工做表中生成
    ④在右侧“选择要添加到报表的字段”中点击对应字段右侧的小箭头->而后点击“肯定”
    ⑤将该字段拖动到下方的“轴字段”和“数值”两个区域中

⑥而后就能够看到咱们的统计图进行分析了:

由上图所示,联网最多的是浏览器对应的程序“MicrosoftEdge.exe”,排名第二的是“vmware.exe”,其次是“有道云”和“网易云音乐”,没发现什么其余可疑的程序。

安装配置sysinternals里的sysmon工具

第一步:根据本身想要监控的事件写对应的配置文件

  • 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>

第二步:安装sysmon

  • 下载老师提供的SysinternalsSuite201608压缩包,并解压。
  • 在命令提示符(管理员)中进入到解压的目录下。
  • 安装sysmon:
    .\Sysmon.exe -i C:\5230sysmoncfig.xml

  • 弹出的窗口点击agree:

第三步:在事件查看器里查看日志

  • 在电脑搜索里输入“查看事件日志”,就能够进入

  • 选择日志的位置:应用程序和服务日志/Microsoft/Windows/Sysmon/Operational。

  • 利用Sysmon具体分析日志的例子选择了有道云程序进行分析。

  • 在详细信息里能够看到显示得有具体时间、运行的程序、使用的协议、源IP、目的IP等等。
  • 再看一下本次实验中运行的.bat文件事件。

  • 有点好奇svchost.exe这是什么文件,因而去百度了一下,大概是要执行.bat这个文件得注入到svchost.exe这个程序中启动,属于系统进程。

    svchost.exe是微软Windows操做系统中的系统文件,微软官方对它的解释是:svchost.exe 是从动态连接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是很是重要,并且是不能被结束的。许多服务经过注入到该程序中启动,因此会有多个该文件的进程。

  • 还了解到这个进程在windows进程中占据很大一部分的资源,svchost.exe很是容易被病毒所利用,因而在任务管理器中搜了一下,天呐,确实占了很是大的部分,也许这是致使电脑卡的缘由之一。

  • 找到了回连时执行的back.exe

  • 回连之后,在kali中执行了dir的命令,因而在上一条日志紧接着就找到了这个!

  • SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要做用是创建快速索引文件,让用户可以更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。

任务二:恶意软件分析

分析该软件在

  • (1)启动回连
  • (2)安装到目标机
  • (3)其余任意操做时(如进程迁移或抓屏,重要是你感兴趣)。

该后门软件

  • (3)读取、添加、删除了哪些注册表项
  • (4)读取、添加、删除了哪些文件
  • (5)链接了哪些外部IP,传输了什么数据(抓包分析)

静态分析工具

ViruScan

  • 用了不少上次实验生成的exe文件去扫描,结果以下

  • 能够看见它的行为是创建到一个指定端口:5230
  • 删除了一些注册表键值,这一点在以后的动态分析里也能够看见
  • 检测自身是否被调试
  • 建立事件对象

PEID

  • 把加了UPX壳的程序放进去,能扫出来

  • 换一个用Hyperion加过密的壳,竟然没有扫出来,在上一次实验中对壳这个东西好感度不高,这个软件对加密壳直接没扫出来,好吧。。。。

PE explorer

  • 刚打开PE Explorer咱们就会看到后门程序的头部信息。

  • 查看程序结头信息:

  • 进行反汇编能够看见程序的入口点:

  • 查看引用的DLL库,发现了比较容易被木马病毒盯上的文件:

    • ws2_32.dll:若系统文件ws2_32.dll出错,极有多是盗号木马、流氓软件等恶意程序所致使,其感染相关文件并加载起来,一旦杀毒软件删除被感染的文件,就会致使相关组件缺失,游戏等经常使用软件运行不起来,
    • WSOCK32.dll:Windows Sockets应用程序接口,用于支持不少Internet和网络应用程序。是一个对系统很关键或很可疑的文件,易遭受木马病毒(如“犇牛”病毒)破坏致使系统找不到此文件,出现错误提示框。

动态分析工具

快照比对(SysTracer工具)

  • 在老师的码云中有该软件的安装包,下载下来便可,设置监听端口为5230。

  • 在打开后门前先快照一下,点击“take snapshot”,如图,按照如下步骤进行:

  • Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后拍摄快照2

  • 进行分析:
  • ①点击上方“Applications”->左侧“Running Processes”->找到后门进程“back.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号:
  • ②在快照界面“Snapshots”右下角点击“Compare”,比对一下回连先后计算机发生的变化:

  • 回连成功后,进一步操做,如捕获音频、启动摄像头、屏幕截屏,而后再抓个快照对比一下
  • 找到了几个有意思的地方
  • 首先是这个!根据capture捕获这个单词就知道这一条有问题,进一步分析,这应该是修改了捕获音频的键值

  • 接下来再看这一条,看上去有点奇怪,确实有问题,百度了一下,解释说是“映像劫持”,听上去有点高大上,大概的意思就是使用忽略路径的方式来匹配它所要控制的程序文件名。常常被一些病毒木马程序控制

  • 再在快照界面“Snapshots”右下角点击“View Difference List”看一下总的

  • 发现它增长了不少.dll.mui文件,可是没有找到具体是作什么的,我猜应该是假装潜伏,

    关于HKEY_LOCAL_MACHINE的介绍:
    它保存了注册表里的全部与这台计算机有关的配置信息
    被修改的部分是Fastcache,即高速缓冲存储器。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control这个子键包括了win95控制面板中的信息。不要编辑这些信息,由于一些小程序的改变在不少地方,一个丢失的项会使这个系统变的不稳定。

  • 此外,一些Systracer未受权的地方咱们是无法查看的。

抓包分析(WireShark工具等)

  • 首先要选对网络,由于个人虚拟机设置的是net8,刚开始没有选对网络,也就捕获不到包。

  • 在回连以前开始捕获
  • 由于我在虚拟机里设置的是TCP链接,所以全是TCP的包,能够看见还链接了219.126.28.25外部IP

  • 找到了主机与KALI三次握手成功

  • 传递的包为:SYN->[SYN+ACK]->ACK

使用TCPView查看恶意代码回连先后端口开放状况

  • 回连成功时能够看见链接时的端口开放状况

使用Process Explorer监视系统和应用程序

Process Explorer能够实时监控计算机的进程状态,咱们能够用它来看看Meterpreter进程迁移的行为。

  • 首先运行后门程序,咱们找到了它的进程:

  • 接着咱们准备把它迁移到notepad++.exe的进程中,还没迁移以前是notepad++.exe是这样的:

  • 而后,咱们把它迁移到notepad++.exe中去:

  • 咱们发现多了一个线程,这应该就是Meterpreter迁移到notepad++z中建立的新线程

3.问题回答

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

  1. 监控网络链接
  2. 监控是否建立新的进程
  3. 监控注册表项目
  4. 监控系统日志
  5. 监控是否常常链接未知IP

(2)若是已经肯定是某个程序或进程有问题,你有什么工具能够进一步获得它的哪些信息。

  1. PEID、ExeinfoPE等查壳工具内先查壳,经过入口特征和区段特征来识别,而后脱壳。
  2. TCPView、Wireshark等网络工具查看是否存在可疑链接
  3. Systracer拍摄快照,比对先后区别,分析改变的注册表及文件等信息。
  4. PE Explorer:反汇编是否有问题,是否有不正常的Data
  5. Systracer:程序运行先后是否有注册表、端口、文件的变化

4.实践总结与体会

此次实验安装了许多分析工具,也掌握了许多分析方法,但愿能够经过此次实验中使用的方法手动监测本身电脑里的病毒。同时,弄清楚一个程序是否是病毒,更要熟悉本身的电脑,清楚某些端口号的做用,清楚什么是可疑的动态。这学期咱们还选修了一门课程是计算机病毒,经过此次实验也对这一门课奠基了更多的基础,而经过学习计算机病毒课又会对网络对抗有进一步的认识与掌握。

相关文章
相关标签/搜索