--2 《网络对抗技术》Exp4:恶意代码分析

时间:2024-04-16 08:31:23

实验目的

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

实验内容

  • 系统运行监控
    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
    • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
  • 恶意软件分析
    分析该软件在以下操作时的行为:
    • 启动回连
    • 安装到目标机
    • 及其他任意操作时
    • 该后门软件
      • 读取、添加、删除了哪些注册表项
      • 读取、添加、删除了哪些文件
      • 连接了哪些外部IP,传输了什么数据(抓包分析)

实验步骤

(一)系统运行监控

根据netstat的结果分析程序连接

  • 在c盘创建netstatlog.txt,用命令行创建计划任务C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"显示创建成功,
  • 在c盘的根目录下创建批处理文件netstatlog.bat,内容为
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
  • 将任务中的脚本文件改为自己创建的netstatlog.bat
  • 点击创建的任务属性,使用最高权限运行该任务,运行之后就会每5分钟触发一次了。
  • 昨天电脑开了整整一天,应该已经收集到很多信息了。今天我又打开上个实验的后门,希望能捕捉到我的后门程序
  • 将信息导入Excel,使用透视表和图表进行分析。
  • 我使用的是饼状图,可以看到有两个软件运行的最多,是QyFragment.exefirefox.exe
  • 查找了一下发现QyFragment.exe是奇艺影音辅助程序

Our database contains 13 variants of the file "qyfragment.exe" with final rating Safe and zero variants with final rating Threat . (13个杀软都检测是安全的,0个杀软检测是有威胁的)

  • 检测是安全的,继续查看信息。突然发现我捕捉的信息中有4个爱奇艺的软件,出现的频率都很高,上网查之后发现除QyPlayer.exe以外,另外3个软件都是流氓软件。反正也不大需要,就直接把爱奇艺卸载了。
  • 将这四个软件筛选出去,出现最多的是svchost.exe,官方解释是:

Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个进程。

  • 看来是正常的,继续排查。接下来的WpnService是个系统服务,但是wpn是什么没查到,可能是vpn。
  • OneSyncSvc是个开机启动项,会频繁读取磁盘。这两个服务奇奇怪怪的,网上也查不到什么,继续看看有没有可疑的软件
  • dosvc也是一个系统程序

此程序可以一次点击简单删除启动程序、浏览器辅助对象、工具栏、服务等。可以容易删除恶意广告软件、恶意代码、恶意软件、恶性程序、垃圾程序、特洛伊木马下载等。

  • backgroundTaskHost进程属于照片应用的进程,modulecoreservice.exe是网络核心模块服务,除此之外,其他进程在三天的时间里联网的次数都小于3。
  • 对剩下软件一个个查找,发现一个可疑的HxTsr.exe,查找了一下是outlook的一个进程。大部分网友认为其被伪装成病毒是因为它不断启动并随后消失,但是就我捕捉到的信息来看,它的联网次数只有2,应该是正常的插件。
  • 综合来看联网比较多的大多是系统程序,但由于刚刚重装系统,系统里面应该不会有问题。查找了一下大多数电脑都会有这些自动运行的程序,但不排除病毒的可能性。
  • 对连接数大于10的IP地址进行批量查询
  • 手动分析完接下来就借助工具了。

使用sysmon监控系统运行

  • 之前已经配置文件并启动sysmon,修改配置文件,添加检测HxTsr.exe的语句。
  • sysmon -c c:/Sysmoncfg.xml使配置生效
  • 进入事件管理器查看sysmon中的operational,可以看到事件5是关闭进程。查看的backgroundTaskHost进程,是照片应用进程。
  • 事件1是创建进程,截取进程是svchost.exe,点击system显示它的parentImage是mmc.exe

mmc.exe是系统管理程序的一个框架程序,全称是Microsoft Management Console,它提供给扩展名为msc的管理程序一个运行的平台,比如组策略,系统清单,任务管理器,以及打印管理、本地安全策略等等,另外本进程也可能同时运行两个或更多个。

(二)恶意软件分析

恶意软件是通过读取、添加、删除注册表项或文件实现对靶机的控制的。

  • 本次实验分析的是用vs c+shellcode直接生成的可执行文件,没有任何伪装。

virscan分析文件

  • 使用virscan查看行为分析
  • 文件信息
  • 查看行为信息,其网络行为描述的套接字的连接就是我kali的IP地址

使用systracer分析恶意软件

安装到目标机时
  • 注册表修改了HKEY_CURRENT_USER的键值
  • 注册表在键值中增加了VirtualDesktop
  • 注册表删除了HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters的键值
  • 新增了我的后门软件
  • 删除了我的系统文件
  • 新增了系统控制文件
  • 连接外部ip
启动回连时
  • 注册表新增了HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\HomeGroup\UIStatusCache的键值,新增了用户组中的用户信息
  • 注册表更改了UI的状态
  • 注册表删除本地计算机中的一些用户策略了
  • 更改了一些系统文件
  • 删除了一些系统批处理文件
  • 添加了一些trn文件
  • 看到我的虚拟机和主机之间的通信
使用shell命令查看靶机系统信息
  • 注册表新增了系统用户信息
  • 注册表修改了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\UserSettings的键值
  • 删除了旧的控制台信息
  • 新增了控制台的配置文件
  • 查看控制机和靶机之间的通信

实验中遇到的问题

  • 一开始创建计划任务的时候命令行显示创建成功,但是打开任务计划显示错误代码为1,分析了一下应该是因为c盘中没有netstatlog.txt
  • 运行计划任务时导出的文件中显示请求的操作需要提升,判断是权限不够造成的,选用最高权限运行

实验后问题回答

  • 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    • 想监控的操作主要有网络连接、端口使用、CPU占用情况。
    • 使用计划任务每隔一个固定时间运行一次控制台的netstat命令,对捕获到的信息进行批量分析。
    • 可以使用sysmon,通过修改配置文件来监控觉得可疑的端口、软件和事件。
    • 设置计划任务运行任务管理器查看cpu占用情况,监控可疑程序。
  • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 可以使用systracer拍摄快照,对程序或进程的可疑动作的前后进行对比,对比注册表、系统用户、系统文件的变化情况。
    • 使用wireshark抓包,检测是否连接可疑的外部IP地址。

实验总结

这次实验的关键在于分析恶意软件的动作,通过使用各种工具分析,我可以知道恶意软件都做了些什么,是怎么通过修改系统的注册表、文件等等来做到的。这次用到的工具能帮助更好的保护电脑,这样我就可以在怀疑有恶意代码的时候先做一下基础检查了。

参考资料