Exp4 恶意代码分析 20164314

1、实践目标linux

 1.是监控你本身系统的运行状态,看有没有可疑的程序在运行。git

 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽可能使用原生指令或sysinternals,systracer套件。算法

 3.假定未来工做中你以为本身的主机有问题,就能够用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。chrome

2、实践内容shell

 1.系统运行监控windows

(1)使用如计划任务,每隔一分钟记录本身的电脑有哪些程序在联网,链接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出全部连网的程序,连了哪里,大约干了什么(不抓包的状况下只能猜),你以为它这么干合适不。若是想进一步分析的,能够有针对性的抓包。浏览器

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

  参考:schtask与sysmon应用指导网络

 2.恶意软件分析ide

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

3、实践过程与步骤

(一)系统运行监控

1)输入命令:

schtasks /create /TN netstat4314 /sc MINUTE /MO 2 /TR "cmd /c netstat -bn > c:\netstat4314.txt"

实现每2分钟记录一下有哪些程序在链接网络

(忘记截图了···)

其中,TN是TaskName的缩写,这里计划任务名是netstat5330;sc表示计时方式,以分钟计时填MINUTE;TR=Task Run,要运行的指令是netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。

(2)在C盘要目录下建一个文件c:\netstat4314.bat(能够先在桌面新建txt文本文件,使用记事本写入后在修改后缀为.bat,复制到C盘中),写入内容以下:

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

(3)经过“Windows->控制面板->管理工具->任务计划程序”,找到个人任务

(4)双击这个任务,点击操做-编辑,将其中的程序或脚本改成咱们建立的netstat4314.bat批处理文件,参数可选项为空,点击肯定。

注意必定要勾选使用最高权限运行,不然可能致使文件不能自主更新或者记录里出现权限问题)

(5)打开记录文件netstatlog.txt记事本,能够看到每隔2分钟记录而且可以显示日期和时间

 (6)统计分析数据(两小时的数据信息)

   导入数据:

  • 数据选项卡-获取外部数据-来自文本,选择文本netstatlog.txt
  • 在 数据类型 中选择 分隔符号
  • 导入过程当中选择分隔符号,分隔符号都选上,列数据格式选择常规,完成导入

 

选择一部分数据,使用数据透视工具分析获得直观的数据透视图

 第一个选取了程序接入网络的次数:

上网查询了解了如下几个联网次数较多和我不熟悉的进程:

 dlna_player.exe应该是音乐播放器的程序;

 upc.exe应该是uplay平台的一个程序;

 sesvc.exe是360浏览器的广告程序;

 svchost.exe 是从动态连接库(DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是很是重要,并且是不能被结束的。

 第二个选取了程序接入网络的IP:

 

 

 

看到最多的是127.0.0.1即本机地址,后来经查询得知,127.0.0.1是绑定在loopback接口上的地址没若是服务端套接字绑定在它上面,你的客户端程序就只能在本机访问。

上网查了一些IP:

 

不知道这个美国的IP是个什么状况·······

 

(二)使用Sysmon工具

  Sysmon是微软Sysinternals套件中的一个工具,首先进入微软官网下载sysmon(下好后我把文件放到了D盘)

1)肯定监控目标为网络链接。

2)配置文件:

<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">chrome.exe.exe</Image>
</NetworkConnect>

<NetworkConnect onmatch="include">     
  <DestinationPort condition="is">80</DestinationPort>      
  <DestinationPort condition="is">443</DestinationPort>
  <DestinationPort condition="is">4314</DestinationPort>    
</NetworkConnect>

<FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
</FileCreateTime>

<ProcessCreate onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
</ProcessCreate>

<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”和“360tray.exe”就是不记录由浏览器和360安全卫士建立的进程。
  • 进程建立时间相似。
  • 网略链接过滤掉了浏览器的网络链接、源IP为127.0.0.1的网络链接和目的端口为137的链接服务,且查看目的端口为80(http)和443(https)的网络链接。
  • 137端口的主要做用是在局域网中提供计算机的名字或IP地址查询服务,通常安装了NetBIOS协议后,该端口会自动处于开放状态。
  • 127.0.0.1表示本机IP。
  • 远程线程建立记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程。
  • explorer.exe是Windows程序管理器或者文件资源管理器
  • svchost.exe是一个属于微软Windows操做系统的系统程序,是从动态连接库 (DLL) 中运行的服务的通用主机进程名称。
  • winlogon.exe是Windows NT 用户登录程序,用于管理用户登陆和退出。
  • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,二者既能够独立使用也能够组合使用。

 (3)把配置文件放入c盘;

 (4)以管理员身份运行cmd,执行命令

接着输入命令:

sysmon.exe -i c:\sysmon20164314.xml

提示版本不一样,将“20164314.xml”文件中 <Sysmon schemaversion="3.10"> 改成 <Sysmon schemaversion="4.20"> 

输入上一步中的命令,执行,此时会弹出一个窗口,点击agree;

安装成功以下:

 

(5)在事件查看器里查看日志

  依次点开应用程序和服务日志→Microsoft→Windows→Sysmon→Operational。

 

(6)分析实验二生成的后门程序,按步骤进行回连

 

查找事件

找到事件

 

打开详细信息,能够看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等

 

(三)恶意软件分析

 (1)静态分析

   使用VirusTotal分析恶意软件

  • 将实验三中生成的加壳后门在VirusTotal进行扫描
  • 查看这个恶意代码的基本属性:能够看出它的SHA-一、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果
  • 算法库支持

  • 加壳状况

   (2)动态分析

     安装SysTracer工具,监听端口选择4314

     使用SysTracer工具动态分析我是在两台虚拟机上进行的,一台是win10虚拟机,一台是Linux的虚拟机

     (1)点击右侧的take snapshot,存储快照

  • 快照一:未移植后门程序,保存为Snapshot #1
  • 快照二:运行后门程序并在kali中实现回连,保存为Snapshot #2
  • 快照三:在kali中使用 dir 指令,保存为Snapshot #3
  • 快照四:在kali中使用 record_mic 指令,保存为Snapshot #4

   

(2)经过右下角的 compare 键或者 View Differences Lists 比对各快照,能够选择 Only Difference 只查看不一样的项

  ①对比快照一和快照二(后门启动前与启动后):

  •   能够看到新增的后门进程,并且能够详细看到其的目的IP和端口号、源IP和端口号以及链接的协议

 

  • 并且该后门程序生成了不少文件、目录和键值

 

  • 在C盘增长了相关的文件

如上图所示,一些Systracer未受权的地方咱们是无法查看的

  •  对HEKY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE和HKEY_USER没法查看

 

②对比快照二和快照三:Linux上执行 dir 指令

 

不是很懂为啥又是查看不了·····(难道由于是虚拟机?)

③ 对比快照三和快照四:Linux上执行 record_mic 指令

  •  新建了不少链接,其中有与后门程序相关的Apache HTTP Server

  • 进程中增长了这些

  • 又是不可访问·····

4、实验后回答问题

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

  • 我认为须要监控端口链接状况,注册表信息,文件信息,我想能够经过设置任务计划定时的,经过启动一个记录系统链接状况的程序实现监控端口链接状况。而后经过使用SysTracer等相似软件,定时拍照,查看注册表信息,文件信息等信息。

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

  • 能够经过火绒剑实时监控这个程序或进程在作的事以及对外的链接,还能够经过SysTracer在执行该进程先后进行拍照,查看端口链接状况,注册表信息,文件信息的变化,还能够经过process monitor查看在该进程启动后执行的具体的操做,还能够将这个程序上传到virscan网站上经过多个杀毒引擎进行判断。

5、实验感想

       在当了屡次的“小偷”后,咱们此次实验终于到了一次“警察”,对过去本身的所做所为进行分析,知道了很多小却十分方便的工具,也知道了Windows自带的一些很方便的服务。经过这些工具,能够查看“小偷”对咱们的电脑作了些什么,从而对“小偷”进行管理。

 ( 就是感受好多Systracer未受权的地方呀·······

相关文章
相关标签/搜索