2019-2020-2 20175230滕星《网络对抗技术》Exp4 恶意代码分析

一、实践目标

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

二、实践内容

1.系统运行监控

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

2.恶意软件分析

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

三、实践步骤

任务一 系统运行监控

(一)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。

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

命令解释:
TN netstat5230:说明计划任务名
sc MINUTE:表示已分钟为单位的计时方式
TR "cmd /c netstat -bn:cmd运行指令"netstat -bn",b会显示可执行文件名

  • 2.在C:盘下创建内容如下的批处理文件(可以先创建.txt文件然后修改后缀名为.bat)
date /t >> c:\netstat5230.txt
 time /t >> c:\netstat5230.txt
 netstat -bn >> c:\netstat5230.txt
  • 3.修改计划任务

  • 在开始处右击打开计算机管理->任务计划程序,找到上述创建的任务

    • 打开任务,操作->编辑->程序脚本,替换为上述创建的批处理文件netstat5230.bat,添加参数为空,并在常规选项卡中勾选使用最高权限运行
  • 4.对该任务右键点击运行,可在netstat5230.bat目录下看到netstat5230.txt,打开就可看到每隔一分钟被输到这里的联网数据

  • 5.一段时间后,打开Excel表格,选择数据->导入数据->选择数据源,点击确定

  • 6.在原始数据类型中选择分隔符号,勾选所有分隔符号

  • 7.选择插入->数据透视图,选择我们要分析的那一列,并默认位置新表格,点击确定,在字段中去除不需要的字段,该字段拖动到下方的轴和值两个区域中,最后,得到我们需要的联网信息统计图

从图中可知:1.使用最多的是WPS.exe,我此时用的正是WPS
2.接下来是QQ浏览器,正在写博客
3.然后是dgservice.exe dgservice.exe服务是驱动精灵的服务,可以安全结束进程,可以在服务里将其设为手动。当你下次打开驱动精灵时,此服务也会一起打开

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

  • 1.首先根据实验提供的链接,编写配置文件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>
- exclude相当于白名单,不用记录;include相当于黑名单
- Image condition根据自己使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,写在exclude中就是不记录由谷歌浏览器创建的进程
- 进程创建时间类似,也是不创建浏览器创建进程的时间
- 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1(localhost)的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态)
- 远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
- explorer.exe是Windows程序管理器或者文件资源管理器
- svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称
- winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出
- powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
  • 2.下载Sysmon

  • 3.输入命令Sysmon.exe -i 5230sysmoncfig.xml启动Sysmon

  • 4.进入事件查看器里查看日志,点击事件查看器,在应用程序和服务日志->Microsoft->Windows->Sysmon->Operational可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别等

    • 用Sysmon分析事件,可以看到显示得有具体时间、运行的程序、使用的协议、源IP、目的IP等等

任务二、恶意软件分析

(一)静态分析工具

  • 1.使用VirusTotal分析恶意软件,将实验三一个加壳的后门程序放入virusTotal中分析
    可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,TRiD文件类型、加壳情况、算法库支持

  • 2.使用PE explorer进行外壳检测

    • 查看静态数据目录、节头信息

    • 通过工具可以进行反汇编

    • 点击上方菜单的红箭头可以查看dll库

msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件
kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理,是必需的
advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,会受到病毒的侵扰及篡改,导致系统文件丢失、损坏
wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序,是一个对系统很关键或很可疑的文件,易遭受木马病毒(如“犇牛”病毒)破坏导致系统找不到此文件,出现错误提示框。
ws2_32.dll是Windows Sockets应用程序接口。一些病毒会在杀毒软件目录中建立伪"ws2_32.dll"的文件或文件夹,在杀毒软件看来这是程序运行需要的文件而调用,这个所谓的“文件”又不具备系统"ws2_32.dll"文件的功能,所以杀毒软件等就无法运行了而提示:应用程序正常初始化失败

(二)动态分析工具

  • 1.抓包工具运用(wireshark)

    • 反弹链接时进行捕包,其中找到了win7与kail之间三次握手的建立,同时连接后可以看到捕获到大量的TCP传输

    • 输入其他命令如dir,Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包。说明两者之间产生了数据传输

  • 2.快照比对(SysTracer)

    • 安装时进入选择第二个,下一步后设置端口为后门的反弹端口5230

    • 打开后门前先点击take snapshot(创建快照),接着Start,命名为Snapshot #1

    • 开启后门程序回连创建第二个快照Snapshot #2(方法和创建Snapshot #1一样)

    • 然后kali中输入ls命令创建第三个快照Snapshot #3

    • 输入screenshot命令创建第四个快照Snapshot #4

    • 结束链接创建第五个快照Snapshot #5

    • 按住Ctrl任选两个截取的快照,点击compare就可以进行比较两者之间的区别

    • 比较#1和#2可以看到增加5230端口及两个地址

- 比较#2和#3也有增加的操作


- 比较#3和#4可以看到关闭了一些东西但是也出现了一个新的调用SysTracer.exe有了改变

- 最后#4和#5因为关闭了链接,所以对应端口和大量的dll文件都被删除,关闭或改变

四、基础问题回答

  • (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    使用Sysmon,编写配置文件,记录有关的系统日志
    使用systracer,对比不同快照,查看是否有可疑行为
  • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    首先利用静态分析工具如:PEID、ExeinfoPE等工具看看有没壳在保护,然后可以利用wireshack等工具查看此程序有没有异常的连接,然后利用systracer,对比进程运行前后有没有可疑端口、注册表或可疑的变化

五、实践体会

本次实践与以往的实践相比较为简单,只是需要安装的软件有些多,我个人认为,本次实践可以让我们的电脑更加安全,木马病毒我们很少会用到,但是防范木马病毒、查找电脑中的木马病毒显得更为有用,虽然本次实践只是初步学会了分析恶意软件的方法,但在以后的日子里,我们会对于这种分析会越来越熟练。

posted @ 2020-04-17 17:08  20175230滕星  阅读(298)  评论(0编辑  收藏  举报