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

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


1.原理与实践说明

1.1实践目标

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

1.2实验内容概述

  • 系统运行监控
    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
  • 分析该软件在
  • (1)启动回连
  • (2)安装到目标机
  • (3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。

该后门软件

  • 读取、添加、删除了哪些注册表项
  • 读取、添加、删除了哪些文件
  • 连接了哪些外部IP,传输了什么数据

1.3.基础问题回答

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

  • 使用schtasks指令设置定时计划,并将内容写入一个文本。使用Excel表格进行图像分析,找到可疑程序。
  • 使用Sysmon编写配置文件,记录有关日志。
  • 使用Process Explorer工具监视进程执行情况
  • 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它 的哪些信息。

  • 使用抓包软件Wireshark进行抓包分析
  • 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

实践过程

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

  • 用管理员模式打开Win10下的CMD命令提示符

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

    • TN 是TaskName的缩写,我们创建的计划任务名是netstat5216;
    • sc 是计时方式,我们以分钟计时填MINUTE;
    • TR 是Task Run,运行命令符指令netstat
    • bn b表示显示可执行文件名,n表示以数字来显示IP和端口;
    • “>” 表示输出重定向,将输出存放在c:\netstatlog.txt文件中
  • 在桌面创建netstat5216.txt文件,编辑写入以下3行

    • date /t >> c:\netstat5318.txt
    • time /t >> c:\netstat5318.txt
    • netstat -bn >> c:\netstat5216.txt
  • 复制进入C盘目录下后(需要授权),更改后缀为.bat脚本文件

  • 打开控制面板-系统与安全-管理工具-计划任务-netstat20165216

  • 右键编辑,将启动程序或脚本设置为C盘目录下的netstat5216.bat,参数清空。

  • 等待漫长的时间,在netstat5216.txt内查看相关记录

  • 进行Excel表分析

  • 新建Excel表

  • 选择数据-获取外部数据-自文本,选择netstat5216.txt

  • 选择分隔符号文件类型,下一步

  • 分隔符号Tab键,分号,逗号,空格打√,下一步

  • 列数据格式为常规,完成。

  • 数据放置位置为第一个单元格就好(默认)

  • 选择进程列(即名字为.exe的可执行文件列)

  • 插入-数据透视图(不是数据透视表,图和表的表示是不同的!)

  • 区域选择.exe可执行文件这一列

  • 选择新工作表

  • 若出现此命令要求源数据至少有二行...的提水,在列的第一个单元格随便填写个内容,如可执行文件,只要有字就OK

  • 在右侧选择添加的字段中去掉 空白 协议 TCP 等无意义字段,我们只需查看.exe执行程序就好

  • 将其分别移入轴(类别)以及值当中即可观察其汇总表

  • 我们观察到360tray.exe是连接网络最多的一个

  • 查看表格,可以看到它使用的协议为TCP,外部地址为36.99.30.203:80

  • 我们估计是360安全卫士实时监控所带的东西,我们上网查查看

???????

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

  • sysmon是微软Sysinternals套件中的一个工具,使用sysmon工具前首先要配置文件。参考使用轻量级工具Sysmon监视你的系统该文章,创建配置文件sysmon20165216.xml。该文章同样可以查看时间过滤器及其参数。
  • 可参考上述文章选择事件过滤器
  • 这里我选择的有进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。
  • 配置文件的编写
  • 关于ProcessCreate,选项我选择Image、SourceIp、SourcePort。
  • 关于进程创建时间FileCreatTime,我选择了Image选项。
  • 关于网络连接NetworkConnect,我选择了Image、SourceIp、SourcePort
  • 关于远程线程创建CreateRemoteThread,我选择了TargetImage、SourceImage.
  • 配置文件20165216Sysmoncfig内容如下:
<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">360se.exe</Image> 
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">360se.exe</Image>
    </FileCreateTime>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">360se.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" 内浏览器名字,360的进程名为360se.exe,谷歌就改为chrome.exe,火狐为firefox.exe,具体查看方法建议任务管理器查看详情。

  • 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,并查看目的端口为80(http)和443(https)的网络连接。

    • 137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
    • 127.0.0.1表示本机IP。
  • 远程线程创建记录了目标为explorer.exe、svchost.exe、firefox.exe、winlogon.exe和powershell.exe 的远程线程。

    • explorer.exe是Windows程序管理器或者文件资源管理器
    • svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
    • winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。
    • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
  • 安装老师码云下的SysinternalsSuite201608.zip并解压

  • 管理员命令指示符下进入解压SysinternalsSuite2016目录下

  • 执行命令 sysmon.exe -i C:\20165216Sysmoncfig.xmml

  • 弹出窗口选择Agree

  • 安装完成界面:

PS:如果更新了配置文件,可以输入指令sysmon.exe -c C:\20165216Sysmoncfig.txt进行update
  • 在事件查看器查看日志

  • Win10右键开始栏即可

  • 找到应用程序和服务日志/Microsoft/Windows/Sysmon/Operational相应目录

  • 打开之后清空日志放干扰(其实也可以按照时间排序),不扰乱

  • 启动回连,安装至目标主机

  • 找到后门程序启动的日志

发现它出现了c:\windows\System32\cmd.exe以及conhost.exe

  • 启动screenshot
  • 观察日志
发现出现了backgroundTaskHost.exe

  • 输入命令shell
  • 观察日志
出现了c:\Windows\SysWOW64\cmd.exe以及又一个conhost.exe


3.1恶意软件分析

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

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

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

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

3.11 使用SysTracer进行分析

第一步:下载安装Systracer。

1.首先下载完成后进行安装,步骤为:agree->选第二个

2.设置监听端口号

3.安装完成后点击take snapshot进行快照

4.可以直接默认选择start

注意:上面是第一个快照操作,是不运行后门的时候比较“干净的”快照

5:打开后门程序进行回连,成功后,进行第二次快照

6:使用命令ls,进行第三次快照

7:使用命令screenshot,进行第四次快照

8:分别对第一次快照和第二,第二和第三、第三和第四次快照进行Compare操作,观察注册表内以及其他的变化,部分截图如下:





如过出现以下错误,请卸载重新安装

3.12 使用virustotal观察

  • 上传观察结果

可以观察到其 SHA-1以及MD5摘要值,文件类型以及大小...

这里还可以看到其名字及提交的历史记录

3.13 使用Wiresark进行分析

  • 安装Wireshark(如果没安装)

  • 在回连之前开始抓包

  • 回连

  • 设置过滤条件 ip.addr == 192.168.1.260

  • 分析reverse_tcp建立连接的过程

  • 截图如下


  • 使用 screen shot后观察抓包情况

  • 结果多了非常多的ACK以及PSH,进度条又多了许多。应该是调用了autdio线程之类的。


实验总结与体会

本次实验让我学会了一种.bat脚本软件可以输出日志,并进行Excel表分析。学会了如何监听系统的网络连接状态,并进行简单的快照以及抓包分析,还是非常实用的。
后门程序在干什么?可能是获取了注册表的shell,或又是输入法的权限。还是非常有意义的。

posted @ 2019-04-07 16:29  许愿神王  阅读(191)  评论(0编辑  收藏  举报