20184328yh《网络对抗技术》实验四:恶意代码分析

《网络对抗技术》实验四:恶意代码分析

20184328yh

目录


1.实践目标

1.1监控系统运行状态,看有没有可疑程序在运行

1.2分析一个恶意软件(Exp2或Exp3中生成后门软件),分析工具尽量使用原生指令或sysinternals,systracer套件。

1.3先用系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。


 

2.实验内容及步骤

2.1系统运行监控

2.1.1使用schtasks指令监控系统

  • Windows计划任务schtasks监控程序联网状态,并将日志信息导出到txt文本中
  • 每1分钟记录一下有哪些程序在连接网络。
  • 可使用指令:
C:\Users\11768>schtasks /create /TN 20184328netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt" 

  • 为了显示日期和时间,可以通过bat批处理文件来实现。首先创建bat文件,在C盘下建一个txt文件,内容输入如下,再修改文件后缀名为bat即可
date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt

 

 

  •  打开任务计划的图形界面,找到刚刚建立的任务

  •  点击操作-属性

  •  点击操作选项卡,点击启动程序选项

  • 把cmd改为 C:\Users\11768\Desktop\schtasks4328.bat 

 

 

  •  设置最高权限运行,保证运行流畅

  •  运行这个事件

  •  这样运行之后等一段时间,可以做一些其他的事情,积累一些数据,之后结束此任务,再右键netstatlog.bat,以管理员的身份运行

 

  •  打开生成的txt文件,可以看到相应的信息了

  • 接下来要对数据进行分析,先用word整理一下
  • 使用“替换”这一功能,输入查找^s(连续不间断空格),替换成^t(制表符)为数据分列做准备

  •  让所有TCP打头的数据都处在一行里面,用类似下面的方法

  •  处理后数据如下

  • 接下来需要把数据导入excel表里进行分析处理,打开excel,右键粘贴,选择匹配目标格式即可

  •  为第一行加上标题

  • 把“应用”这一列复制到新的工作表中,统计每一个出现了多少次

  • 全选上,按照单元格值排序,排完序后,点右上角的“分类汇总”

  •  得到各个应用的联网次数

  •  删除重复值,简单整理一下,做个图表

 

  •  可以直观的看到百度云、网易云音乐、火狐浏览器、QQ、微信、YYnote、Wpnservice等应用连接互联网的次数,都是比较正常的活动,没有发现可疑的问题。

2.1.2使用sysmon工具监控系统

Sysmon是微软Sysinternals套件中的一个工具

可以监控几乎所有的重要操作

  • 配置文件sysmon20184328.txt,配置文件是xml文件,我为了简单编辑就直接命令为.txt,用写字本打开,输入以下内容后直接重命名为xml文件
<Sysmon schemaversion="13.02">(这里的版本号按照实际情况修改,我本次使用的版本是13.02)
  <!-- 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">firefox.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>

    <NetworkConnect onmatch="include">
      <DestinationPort condition="is">4328</DestinationPort>    
      <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
  • 建议在官网下载最新的版本 链接:sysmon13.02 下载 (此软件不断在更新,如果打不开可自行百度进入官网修改)

  • 以管理员身份运行Windows Powershell,使用指令 .\Sysmon64.exe -i  安装sysmon,出现弹窗点击I Agree

  • 安装成功

  • 再使用 .\Sysmon64.exe -c sysmon20184328.xml 配置文件

 

  • 修改配置文件,增加对端口4328
  •  面开始查看日志,在任务管理器中搜索并打开事件, Microsoft->Windows->Sysmon->Operational 

  •  运行一个后门文件,进行回连,时间为2021-4-8 22:06:15

  • 根据回连时间可以查找到这个事件

  •  可以看到回连成功后显示程序为20184328_attackdoor48.exe,协议为tcp协议,ip源地址为192.168.184.1,目标地址为192.168,184.149,目的端口为4328

 


 

 2.2恶意软件分析

    • 静态分析
      • 2.2.1使用VirusTotal分析恶意软件

 

  • 把实验三中生成的20184328shellcode_upxed.exe用VirusTotal进行分析

 

 


 

 2.2.2使用PEiD分析恶意软件

  PEiD(PE Identifier) 是一款著名的查壳工具,几乎可以侦测出所有的壳,下载地址:PEiD

  • 先用实验三生成的,没有加壳的木马YU_MSF.exe进行检测,没有找到壳

  • 然后对加完壳之后20184328_upx.exe进行检测,成功检测出加壳的相关信息

  •  再对加密壳的20184328_Hyperion.exe进行检测,检测不到壳


 

 2.2.3使用PE Explorer分析恶意软件

  • 用PE Explorer打开后门程序

  •  点击视图-引入,出现5个dll

  • DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。
  • 1. msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能。
    2. kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
    3. advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关。
    4. wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。
    5. ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。
  • 通过反汇编得到文件的反汇编信息


 

动态分析

2.2.4使用WireShark抓包分析恶意软件

 查看IP地址和网络连接

  • 把实验三中生成的木马程序放在物理机上,kali打开msf监听,物理机运行木马程序,尝试进行一次反弹连接
  • Kali监听到IP地址为172.30.3.17,在物理机“网络连接”中查看该IP地址

 

  • 关闭此次反弹连接和侦听,启动wireshark, 使用wireshark对kali回连及截屏、提权、获取击键操作的过程分别进行抓包分析。 

  • 在【VMware Netwoer Adapter VWnet8】中捕包
  • 启动木马并回连成功,输入dir指令

 

 

  •  可在wieshark中看到数据包

 

 

  •  后门程序使用TCP传输,传输端口为4328,还可看到源地址、目标地址等等信息

 


 

2.2.5使用systracer分析恶意软件

  • 安装软件,选择中间的选项,设置端口为4328

 

 

  •  用Systracer进行快照,take snapshot,选项目默认,得到Snapshort#1

  •  Kali开始监听,Windows运行后门后,回连成功后拍摄快照,完成后显示Snapshop #2

  •  对比#1和#2,在Applications里的Running Processes里可以发现后门程序的添加

 

  •  可看到后门程序的入侵从过程

  •  可查看回连地址以及端口号

  • 查看注册表的变化,因为正版软件要查看更具体的注册表需要购买注册码,这里就简单的看一下前后变化

    • HKEY_CLASSES_ROOT:包含所有的文件类型,文件关系,图标文件名,com对象等信息。
    • HKEY_USERS:所有WINDOWS用户的文件的记录,每个用户有自己的项以保存个人设置。
    • HKEY_CURRENT_USER:保存了目前登陆的用户文件,以及个性化的设置,如桌面外观,软件设置,开始菜单等。会随着登陆的用户不同而有所改变。
    • HKEY_LOCAL_MACHINE:这个项保存了绝大部分的系统信息,包括硬件配置,网络设置,以及你所安装的软件等,是注册表里最重要也最庞大的项,当你用设备管理器更改了硬件的设置时,这个项里的文件也会跟着变动。
    • HKEY_CURRENT_CONFIG :此项主要记录PNP设备及硬件的设置

3.思考题

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

1.使用一些工具帮助自己监测系统,可以实时监控电脑上的端口信息,如果某个进程启动的时候连接了一些看起来很可疑的端口,就可以进一步进行分析
2.使用windows自带的schtasks指令设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录,如果自己的电脑没有联网的情况下出现了ip访问记录就可以进一步分析了
3.通过sysmon监控计算机中的重要操作,可以在事件查看器中找到相关日志进行查看

4.使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输

5.使用Systracer拍摄不同时间点的快照进行比对,查看是否有可疑的安装、增删注册表、启动项的行为

6.使用杀毒软件进行检测

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

1.利用wireshark动态分析程序动向,监视其与主机进行的通信过程
2.利用systracer工具对比快照分析恶意软件做了做了什么事情
3.利用PE explorer工具对程序调用库等信息进行分析查看,还可以对其反汇编

4.命令行中使用netstat查看外部的iP地址和端口


 4.实验心得和总结

本次我学习了如何监测自己系统的运行状态,并试图寻找可疑程序,并在程序出现时如何分析恶意代码为未来的防护做准备,而且结果的分析阶段还考验到了信息处理能力,相比之前的实验要简单一些,唯一遇到的问题是sysmon的安装,因为我直接用安装+配置的指令无弹窗,只要分布先-i安装再-c配置文件即可。

本次实验所需要使用的工具相比前几次更丰富,恶意代码的分析方法主要分为静态分析方法和动态分析方法。这两种方法在本次实验中都有所涉及。静态分析方法是指在不执行程序的条件下进行分析,如反汇编分析等;而动态分析方法是指在恶意代码执行的情况下,利用调试工具对恶意代码实施跟踪和观察,比如抓包等等,确定恶意代码的工作过程,以便作进一步分析。但是在分析的过程中由于自己知识水平的限制,对比结果虽然明显看到有很多不同,但是分析是又不知道该从何下手,不太清楚每一项具体代表什么含义,只能通过查阅资料,特别是在抓包和快照的时候,导致最后分析的结果也不是很全面详细,希望在之后的学习中能够对其有更加深入的了解。

 

posted @ 2021-04-12 07:53  20184328  阅读(118)  评论(0编辑  收藏  举报