木马程序工作原理和防范(深入分析一个新捕获的恶意文件)
木马程序工作原理和防范(深入分析一个新捕获的恶意文件)
2024-11-22 02:57:56  作者:莫小白  网址:https://m.xinb2b.cn/tech/ahk235187.html


近日,FortiGuard威胁研究与响应实验室捕获到了一个检出率极低的恶意文件。分析表明,该文件旨在同时传播两种远控木马(RAT)——Revenge和WSH。


图1.仅有少数几款杀毒软件将该文件检测为“恶意”

第一阶段—Launcher/Dropper

在文本编辑器中打开包含JavaScript代码的恶意文件,我们可以看到它包含url编码的数据。解码之后,就能够看到vbscript代码。

该恶意文件的制作者在调用函数“Chr()”时使用了简单的字符替换,试图隐藏实际的字符串(“Shell.application”和“cmd /c cd %temp%”)。


图2 .VBScript代码

VBScript代码将执行如下操作:

创建一个新的Shell.Application对象;调用函数“ShellExecute()”,最终生成一个文件名为“A6p.VBS”的脚本文件;执行新创建的脚本文件A6p.vbs;暂停CMD命令执行13秒(通过调用timeout.exe程序);删除脚本文件A6p.vbs;执行下载的脚本文件“Microsoft.vbs”;关闭当前/活动窗口。


图3.第一阶段Launcher/Dropper执行

第二阶段—Downloader

A6p.vbs被用于从外部网站获取资源(另一段VBScript代码),该代码包含经过混淆处理的字符串,大概是为了逃避检测。

然后,恶意文件制作者使用了一个函数(H9a)来显示这些字符串,一是用于创建对象(MSXML2.XMLHTTP和ADODB.STREAM),二是用于获取常规字符串(如MICROSOFT.VBS)。

脚本分析(Microsoft.vbs)

一旦“A6p.vbs”执行,它便会从远程服务器下载脚本文件“Microsoft.vbs”。


图4.下载脚本(A6p.vbs)

下载的文件将被保存在%TEMP%文件夹下,其代码由一个名为“th3m41n”的主类以三个Method类(“dugh41r”、“t01l3t”和“b3st1n”)组成。

Microsoft.vbs的最终目的是通过调用一个名为“ExecuteGlobal()”的函数来执行base64编码的数据。


图5. MICROSOFT.VBS及其解码的Base64数据

脚本分析(Microsoft.vbs—解码的Base64数据)

该脚本利用了两个函数:

writeBytes()—创建一个ADODB.Stream对象,以将二进制数据写入指定文件中任意数量的字节;decodebase64()—创建一个 Microsoft.XMLDOM对象,以创建一个临时XML元素来存储base64编码的数据,然后对其进行解码。


图6. 函数“writeBytes()”和“decodebase64()”

一旦脚本执行,它将创建一个新的WScript.Shell对象并收集操作系统环境和硬编码数据,最终通过使用“//B”调用VBScript解释器来运行新创建的脚本(GXxdZDvzyH.vbs)。


图7.GXxdZDvzyH.vbs的生成和执行

在脚本执行期间,一个名为“Microsoft”的值将被添加到Windows注册表(HKCU\Microsoft \Software\Microsoft)中,用于存储base64编码的数据。稍后将使用PowerShell命令修复这些数据,脚本的执行将以“0”替换“@”结束。


图8.base64编码数据

该脚本能够正确调用多个PowerShell命令的组合,以绕过解释器的执行策略并隐藏其自身存在,从而绕过“-ExecutionPolicy Bypass -windowstyle hidden -noexit -Command”参数。

下图展示了脚本执行期间传递给PowerShell解释器的命令行参数,以及每个参数的用途。


图9.传递给PowerShell解释器的命令行参数

连接到C&C服务器

在执行期间,脚本还会创建一个新线程,加载并执行一个.NET程序集。

通过将它从Windows注册表转储到可执行文件(e3edfe91e99ba731e58fc2ad33f2fd11)中,我们可以更好地对其进行分析。

可执行文件的基本信息如下所示:


图10.可执行文件的基本信息

一旦可执行文件执行,它将连接到两个C&C服务器,其IP地址和端口在主类的构造函数中分配。IP地址分别为“193.56.28.134”和“185.84.181.102”,端口号均为“5478”。


图11.C&C服务器的IP地址和端口号

遗憾的是,目前两个C&C服务器均已关闭。为了对恶意软件继续进行分析,FortiGuard将C&C服务器IP地址修改为了“127.0.0.1”。


图12.更改后的C&C服务器IP地址

恶意软件收集的信息

在与C&C服务器建立连接后,恶意软件将从受感染系统收集信息,并将其发送到C&C服务器。

数据包被分隔符分为15个块,且大多数都经过base64编码。

Information—命令的magic字符串;SG91c2U—解码为“House”;XzU4MUYxMDkz—解码为“_581F1093”,这是音量信息;10.0.2.15 —受感染计算机的IP地址;TTBZVEVTMEVOVi1QQyAvIE0wWVRlczBFbnY—解码为“M0YTES0ENV-PC / M0YTes0Env”,这是受感染计算机的计算机名和用户名;No—代表受感染计算机是否有网络摄像头;TWljcm9zb2Z0IFdpbmRvd3MgNyBVbHRpbWF0ZSAgMzI—被解码为“Microsoft Windows 7 Ultimate 32”,这是受害者的Windows系统信息;SW50ZWwoUikgQ29yZShUTSkgaTctNjcwMCBDUFUgQCAzLjQwR0h6—被解码为“Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz”,这是CPU信息;3757629440—这是受感染计算机的物理内存大小;TWljcm9zb2Z0IFNlY3VyaXR5IEVzc2VudGlhbHM—被解码为“Microsoft Security Essentials”,应该是已安装的防病毒产品;Ti9B—被解码为“N/A”,它应该是已安装的防火墙产品;5478—C&C服务器的端口号;ZG5TcHkgdjYuMC40ICgzMi1iaXQsIC5ORVQgQ29yZSwgRGVidWdnaW5nKQ—被解码为“dnSpy v6.0.4 (32-bit, .NET Core, Debugging)”,这是最顶部窗口的标题;ZW4tVVM—被解码为“en-US”,这是受感染计算机配置的语言;False—一个硬编码的值。

命令与控制

在.Net代码中,一个名为“this.data()”的线程函数负责处理所有接收到的C&C命令。

PNC—类似于心跳包(heartbeat),恶意软件只发送回“PNC”;P—要求恶意软件收集受感染计算机最顶部的窗口标题;IE和LP—要求恶意软件使用数据包中的指定值在系统注册表中进行操作;UNV—包含一个base64编码的gzip流,它是从恶意的ASM代码段压缩而来的。通过这个命令,攻击者可以向恶意软件发送恶意的ASM代码,并在内存中执行代码。


图13.负责处理“UNV”命令的代码片段

脚本分析(GXxdZDvzyH.VBS)

在感染链的第二阶段,另一个该脚本也将被执行,恶意文件制作者使用了与MICROSOFT.VBS相同的代码,只是base64编码数据中的有效载荷不同而已。


图14.Microsoft.vbs和GXxdZDvzyH.vbs脚本之间的差异

脚本分析(GXxdZDvzyH.VBS—解码的Base64数据)

这里的脚本是WSH RAT的1.6版本,总有29个函数,分别负责执行不同的任务,从实现长久驻留、数据处理,到窃取和渗透。

脚本执行后,它将通过函数调用执行安全性检查,以验证当前用户的权限,以判定是否需要提权。


图15. 安全检查代码

WSH RAT 1.6能够从一些软件(如FoxMail)和一些主流浏览器(Chrome和Mozilla Firefox)中窃取信息。

脚本首先会生成一个HTTP请求,该请求包含与受感染计算机有关的信息(通过执行函数“information()”获取),并使用“User-Agent:”标头来上传到C&C服务器。


图16.HTTP POST请求和用户代理数据

下图展示了User-Agent标头中使用的数据格式,并描述了脚本如何收集数据。


图17. User-Agent标头数据格式

为了实现长久驻留,WSH RAT会将一些新数据添加到Windows注册表中,并在Windows Startup(“%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup”)文件夹中创建自身副本。


图18.添加的值

WSH RAT支持26个命令,它们对应的功能不言而喻:

disconnect、reboot、shutdown、excecute、install-sdk、get-pass、get-pass-offline、update、uninstall、up-n-exec、bring-log、down-n-exec、filemanager、rdp、keylogger、offline-keylogger、browse-logs、cmd-shell、get-processes、disable-uac、check-eligible、force-eligible、elevate、if-elevate、kill-process和sleep。

  • 拿蛇皮袋装东西去学校丢人吗(背蛇皮袋就不能上清华)
  • 2024-11-22背蛇皮袋就不能上清华由于部分地区的疫情反复,还是有很多地区的同学经历着反复“开学、停课,开学、停课”的煎熬当然,也有一部分同学,已经很久很久没开学了比如东油大的大学生们,已经因为超过半年不开学的事在各大社交平台唉声叹气了。
  • 比熊和泰迪有什么区别哪个好养(泰迪和比熊到底养哪一种好)
  • 2024-11-22泰迪和比熊到底养哪一种好想养狗的朋友一般都会纠结几个问题,狗的体型、毛发长度、性格是否适应家庭等今天就来讲讲大家普遍容易纠结的两种品种泰迪和比熊,两种长相相似却截然不同的两种狗狗首先,两种狗狗都是卷毛,卷毛有一个好处,毛发不。
  • 西宁会成为中心城市吗(西宁一座三高一低)
  • 2024-11-22西宁一座三高一低爱美食、爱生活,喜欢旅游和随手拍,关注我,带你了解各地有趣的知识!时间过得真快,就如流水一般,不知不觉我们已经告别了2021年,迎来了崭新的2022年过去的一年里,我想我们每一个人都有所成长、有所收获。
  • ph测试仪参数(西脉科司ZIMEX德国MNpH-Fix系列pH测试条)
  • 2024-11-22西脉科司ZIMEX德国MNpH-Fix系列pH测试条无与伦比的PH测试条:多年来,许多用户一直使用简单的pH测试条来检测pH值德国MN,pH-Fix系列pH测试条,将测试区域固定在防渗漏条上这种专利技术可以防止溶液的渗出,因此在高酸碱性溶液的测试中也能。
  • 六斤鲅鱼正确做法
  • 2024-11-22六斤鲅鱼正确做法主料鲅鱼调料甜面酱、糖、酱油、料酒、大蒜、葱、花生油、香油做法1.鲅鱼处理干净,改刀成1厘米的直刀2.锅中加酱,鲅鱼煎一下3.加大蒜、甜面酱炒香,加水,调味,放入鲅鱼,慢火煨透4.急火收汁,加香油即成。
  • 我的世界电脑版下载到手机游戏(我的世界PC版手机能运行吗)
  • 2024-11-22我的世界PC版手机能运行吗打开浏览器点击搜索框进入搜索界面输入我的世界电脑版并进行搜索找到第一个搜索选项进入将安全下载或高速下载前面的勾划掉,并点击普通下载或本地下载下载好后拷贝到电脑中点击安装即可我的世界电脑版不支持在手机中。
  • 蜀山初章剑仙怎么加潜力(仙侠大神卖报小郎君晋级白金)
  • 2024-11-22仙侠大神卖报小郎君晋级白金2022年起点最新的大神名单到现在都还没有公布,很多读者等得也是心焦毕竟往年四月中下旬的时候,最新的名单就公布了哪怕是去年因为疫情问题有所延迟,也赶在了515起点周年庆的活动之前公布了没成想起点成立二。
  • 矮蒲苇的正确分株方法 矮蒲苇的种植方法
  • 2024-11-22矮蒲苇的正确分株方法 矮蒲苇的种植方法矮蒲苇的大多树叶子都是生长在它的茎和根交叉在一起的地方,用生物学上的名词来说的话,就是形态学下端,其他的生物学上都是有专业用语的,我们可以多去看一下,了解一下放宽自己的知识面是有好处的我们在生活中是不。
  • 坎公骑冠剑1-7详细攻略(坎公骑冠剑怎么突破武器)
  • 2024-11-22坎公骑冠剑怎么突破武器坎公骑冠剑怎么突破武器1、专属武器突破不了是因为等级不够,要继续提升武器等级当武器等级到一定的等级后,就无法升级,需要突破才能升级坎公骑冠剑中武器突破得用到同名武器作为强化材料,或者是用突破锤作为素材。
  • 不锈钢跟碳钢怎么区分(不锈钢与碳钢的区别与联系)
  • 2024-11-22不锈钢与碳钢的区别与联系抗菌不锈钢  除C外,而没有人为加入其它合金元素的钢,是碳钢一般不具有什么耐腐蚀的能力硬度比纯铁大当然C也是控制在一定的程度  不锈钢的种类很多,指含Cr量大于等于13%,在大气中不锈的合金钢有奥氏体。
  • 汤圆怎么煮好吃
  • 2024-11-22汤圆怎么煮好吃步骤/方式1汤圆开水下锅,先大火煮滚两分钟,然后小火五分钟,就能熟了步骤/方式2熟了捞出来就好啦步骤/方式3这样煮出来的汤圆好吃又不破皮哦。
  • 吃一顿大餐的英文怎么说(吃大餐吃货的英文该怎么说呢)
  • 2024-11-22吃大餐吃货的英文该怎么说呢吃吃喝喝,玩玩乐乐,貌似这些都是大家休息日的标配,应该每周辛苦工作五天,好不容易熬到了周末,当然得好好犒劳犒劳自己啦!小伙伴们,你们周末都会干些什么呢?是邀三两好友逛街购物,还是有人请吃大餐啊,大白更。