恶意文件名称:
未知
威胁类型:
RAT
简单描述:
银狐组织通过微信或其它通讯软件以公司名单为诱饵传播给用户,经用户解压并运行exe文件后,即开始与攻击者控制的C2通信。
事件描述
近期,深盾终端实验室在运营工作中发现了一起利用微信等其它IM软件钓鱼的相关样本,攻击者通过“公司名单”等作为切入口,诱导用户自行解压缩并点击运行恶意文件。
此样本攻击流程复杂度高,攻击者C2隐藏于云服务器且具有多段载荷加载的能力。样本层层隐藏,在用户点击运行后,攻击者可以通过该样本向受害者主机投送后续恶意文件或者执行ShellCode,获取用户主机的任意数据并能操控用户主机。
经分析,此样本与近期疯狂扩散的通过微信群聊传播的名称为“金稅四期(电脑版)-uninstall.msi”样本有所不同,此次发现的样本编译时间更新,部分 C2 截止样本分析时仍然存活,所应用的技术手法也有较大差别。
不同之处具体表现为:
从ATTCK的角度来看,以往大多数的银狐样本都会通过计划任务、服务、注册表或启动目录来实现持久化项,但此类持久化行为容易被安全软件检测,本次发现的样本并未发现持久化项驻留。虽然本次发现的样本应用了 UACMe 的代码但在样本前期的执行阶段并未发现调用,通过注册表禁用 UAC 这种易被发现的危险操作也并未执行。
从样本最后应用的木马来看,以往银狐样本通常是 gh0st 木马远控变种或 winos 远控,此次发现的远控组件中并未发现 gh0st 木马常见的键盘输入窃取等功能。
从技术手法上看,以往银狐样本常使用 TrueUpdate 程序白利用、BYOVD 自保护等手法,随着安全软件的逐步迭代,也推动着银狐组织逐步探索、使用其它更难被检测的技术。
下图是对12个不同时期银狐样本所使用到的 ATTCK 的标注,从中可以一窥银狐组织的技术演化过程。
恶意文件分析
本次捕获的银狐样本在攻击技术上相对以前有较大的变化,主要包括:技术应用上更新、技术组合上更多、隐蔽性更强等,给传统安全软件带来了更大挑战。
1. 入口文件作为 Loader 远程加载 ShellCode 可以有效降低被静态扫描检出的几率且此样本大量使用反射加载,嵌套式的加载给动态分析增加了很多难度。
2. 增加的对文件名称的检测可以在一定程度上绕过沙箱。
3. 代码中复用了 Github 项目 UACMe 的代码用于提权。
4. NT Stub 函数的利用有效避免了被安全软件动态检出。
5. 2023 年 BlackHat 中披露的 PoolParty 技术的应用也标志着银狐在不断“进化”,正在积极应用新型技术手段躲避安全软件的检出。
样本执行流程图如下所示:
入口文件exe基本信息如下:
hash |
b4c591c844a5909be98e596c52b658bd |
文件类型 |
x64, peExe |
编译时间 |
2024-11-18 10:53:41 |
编译器 |
Microsoft Visual C/C++(19.29.30156)[C++] |
链接程序 |
Microsoft Linker(14.29.30156) |
攻击者剥离合法文件的数字签名数据并将数据附加在样本后段,达到伪造签名的目的。此种方法在一定程度上可以绕过部分杀毒软件的静态检测。
样本本身作为一个 Loader 并未大幅度运用混淆和反调试技巧。使用Event对象的等待机制结合rdtsc指令,刻意让样本在等待60s后再执行,达到反沙箱的目的。
检测当前系统是否存在虚拟内存,并限制当前系统内存大小必须不小于4GB,否则样本退出执行。
对外连URL做拼接时,每4字节作为一块数据并以x00作为终止,分别将每块数据的首地址入栈,将拼接后的数据写入申请的小块内存中,最终得到URL:
hxxps://kjdhz.oss-cn-shenzhen.aliyuncs.com/360.dat
从URL指向的服务器获取数据,去除末尾0x10字节的数据后,将数据移动到新申请的内存中,使用0xF解密获取到的数据。
通过 TEB -> PEB -> Ldr 获取到 ntdll 的基址,从 ntdll 基址定位到导出表,轮计算 ntdll 导出表中每个函数名称的 ROR4 值,对比攻击者传入的值,匹配则返回该函数在SSDT表中的 Index。随后攻击者通过自行实现的Nt存根函数直接调用系统函数。
基于以上方式,样本依次调用 NtAllocateVirtualMemory、ZwWriteVirtualMemory 将数据写申请的可执行空间中,随后调用 NtCreateThreadEx 执行。主线程在新线程结束运行后会自行退出,此后程序终止。
在新线程执行 ShellCode 阶段,通过 PEB -> Ldr 获取当前进程的 BaseName,即文件名称。定位到 Kernel32.dll 的基址,随后同样通过函数名称 hash 的方式获取导出函数,动态加载所需要的函数。
反射加载 ShellCode 中存在的 PE 文件。IAT 重建后先执行 TLS ,若无跳转至 OEP 执行。该反射加载的 Loader 疑似使用了第三方组件。
反射加载的 DLL 的基本信息如下:
Hash |
9557f6c29dd69a1cf67d91810fffc536 |
文件类型 |
x64, peDLL |
编译时间 |
2023-04-23 09:30:56 |
编译器 |
Microsoft Visual C/C++(19.29.30148)[LTCG/C] |
链接程序 |
Microsoft Linker(14.29.30148) |
依赖项目 |
UACMev3.6.4 [hxxps://github.com/hfiref0x/UACME/blob/v3.6.4] |
反射加载的DLL使用了 Github 的项目 UACMe,该项目旨在利用 Windows 机制进行 UAC Bypass。样本在会判定当前系统的主版本号,以Win10作分界线执行不同的动作。
下面将分两种情况进行分析:
1.系统版本低于Win10
样本会枚举当前系统中的所有进程。若枚举失败或当前系统中不存在 360Tray.exe,则会检测当前文件名称中是否存在123、[6001-6010、6012、6014.....] 等字符串,若不存在则程序退出。同时还会在注册表 HKEY_CURRENT_USERConsolehuorong[随机6个字符] 路径下写入 ShellCode 代码并释放文件 C:\Users\Public\Downloads\ bb.jp。
随后再次执行内存中的反射加载代码,加载一个新的 DLL。PE 文件和反射加载代码在同一块内存中。该 DLL 与后面 Win10 及以上版本反射加载的 DLL 相同,hash 均为 c7e2f05d4af536270ea0559ea155b46d,后面会分析此 DLL,此处暂时忽略。
若获取的值为 0x3000,即 SECURITY_MANDATORY_HIGH_RID(Administrator) 时,同样会将 ShellCode 写入上述注册表键下、释放C:\Users\Public\Downloads\bb.jpg文件、检测当前进程的文件名称。随后在C:\Users\Public\Downloads 目录下释放 QMPlayer.exe(带签名的白程序),通过 ShellExecuteW 拉起执行。若通过进程枚举发现成功拉起该进程,则会通过 Restart Manager API 关闭路径为C:\Program Files (x86)\360\360Safe\safemon\360tray.exe 的进程。执行完毕后,同样会执行 1 中的 DLL 反射加载,这里不再赘述。
QMPlayer.exe 基本信息如下:
Hash |
d31fffb42b84f5ac31aa744df8a23888 [白文件 Signed QMPlayer] |
文件类型 |
x64, peExe |
编译时间 |
2017-12-01 17:05:34 |
编译器 |
Microsoft Visual C/C++(19.00.24215)[LTCG/C++] |
链接程序 |
Microsoft Linker(5.10.7303) |
2.系统版本不低于 Win10
同样会在注册表 HKEY_CURRENT_USERConsolehuorong[随机6个字符] 路径下写入 ShellCode 代码并释放文件 C:\Users\Public\Downloads\ bb.jpg,检测当前进程的文件名称。随后枚举当前系统正在运行的所有进程,找到 explorer.exe 后通过2023年 Black Hat 披露的 PoolParty 技术,将代码注入到 explorer.exe 进程中。注入方式与传统的远程线程创建注入的方式主要区别在于PoolParty 通过线程池注入其它进程,这在一定程度上能绕过传统杀毒引擎对进程注入的检测。这里不赘述 PoolParty 的技术细节。
注入的代码同样也包含反射加载的 Loader 和同一内存块的 PE 文件。
注入后的 explorer.exe 被断住后,如下图所示:
反射加载的 DLL 的基本信息如下:
Hash |
c7e2f05d4af536270ea0559ea155b46d |
文件类型 |
x64, peDLL |
编译时间 |
2024-09-19 19:59:01 |
编译器 |
PureBasic |
链接程序 |
Microsoft Linker(10.00.30319) |
该 DLL 会读取C:\Users\Public\Downloads\bb.jpg文件的数据,若读取失败则从注册表路径HKEY_CURRENT_USERConsolehuorong[随机6个字符] 下读取已写入的 ShellCode。二者数据一致,注册表中的数据是 bb.jpg 数据的备份。
将读取的所有数据用于注入 C:\Windows\explorer.exe,随后修改 OEP 改变执行流。此后,Loader 程序结束运行,所有的恶意行为将由进程主体 Explorer.exe 发起。
被注入的 explorer.exe 进程会进行 IAT 重构,随后外连 173.214.107.46。
从该地址接收数据,大小为固定的 0x7D00E,通过 XOR 解密。解密完成后即会调用执行,执行完成后主程序会进入死循环,不再进行任何操作。
解密后的数据如下所示,实际也是反射加载的 Loader 和 PE 文件混合在一起的数据。
反射加载的 DLL 基本信息如下:
Hash |
f8d0ce212096ad1ee5f63c821c6c3fe2 |
文件类型 |
x64, peDLL |
编译时间 |
2024-08-19 09:42:06 |
编译器 |
PureBasic |
链接程序 |
Microsoft Linker(10.00.30319) |
依赖项目 |
UACMev3.6.4 [hxxps://github.com/hfiref0x/UACME/blob/v3.6.4] |
导出函数如下所示,四个导出函数共同点是,都会执行同一个函数。
分析时由于攻击者疑似已经更改并停止使用该组件,if 判断不通过后会退出执行。
静态分析发现该组件具备与远端持续通信的能力,支持 TCP 和 UDP。同时还具有获取屏幕截图的功能,截图的文件会存储在 C:\ProgramData\baiduScreenShot 目录下。当服务器下发 ShellCode 执行指令时,会将 ShellCode 存储在HKEY_LOCAL_MACHINESOFTWAREIpDates_info 键下。通过注入[系统安装目录]:\Windows\System32\tracerpt.exe,随后修改 OEP 实现 ShellCode 执行。
IOCs
c7e2f05d4af536270ea0559ea155b46d
b4c591c844a5909be98e596c52b658bd
f8d0ce212096ad1ee5f63c821c6c3fe2
9557f6c29dd69a1cf67d91810fffc536
hxxps://kjdhz.oss-cn-shenzhen.aliyuncs.com/360.dat
173.214.107.46
解决方案
防范建议
1. 避免打开可疑或来历不明的邮件或微信群聊中的文件,尤其是其中的链接和附件等,如一定要打开未知文件,请先使用杀毒软件进行扫描。
2. 安装信誉良好的防病毒/反间谍软件,定期进行系统全盘扫描,并删除检测到的威胁,按时升级打补丁。
3. 检查是否存在 C:\Users\Public\Downloads\bb.jpg 文件。
4. 检查注册表HKEY_CURRENT_USERConsolehuorong[随机6个字符] 键下是否存在 ShellCode 代码。
深信服解决方案
【深信服云网端安全解决方案】 以AI加持,为安全效果而生,云地协同、联动闭环,云端安全专家7*24小时守护并及时发现、研判、响应事件,为安全事件做全流程的响应和兜底。云网端安全解决方案以简单、有效、可生长的价值,保障客户业务连续性,提供可承诺可兜底的安全效果。方案基于用户现有的建设基础,体系化规划网络安全建设。目前,深信服云网端安全解决方案可抵御银狐木马威胁。
【轻量版病毒查杀工具—MRK_银狐专杀】如果您不是深信服用户,也不用担心,深信服免费开放【轻量版病毒查杀工具—MRK_银狐专杀】供您使用,此工具可以检测并查杀最新的银狐变种,有效预防和查杀病毒,解您燃眉之急。
扫描下方二维码,体验深信服云网端安全解决方案、安全体检服务,免费获取病毒查杀工具。
← 扫描此处二维码
原文始发于微信公众号(深信服千里目安全技术中心):“银狐”又又又变种了!新“银狐”木马样本分析在此
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论