Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >强对抗的SquidLoader针对中国企业发起攻击

强对抗的SquidLoader针对中国企业发起攻击

作者头像
FB客服
发布于 2024-07-10 08:18:01
发布于 2024-07-10 08:18:01
18000
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行
研究人员近期发现了一种高对抗强度的 Loader,其通过钓鱼邮件附件传递给受害者。根据恶意软件所具备的引诱和规避行为,研究人员将其命名为 SquidLoader。SquidLoader 最早在 2024 年 4 月下旬被发现,但研究人员认为其至少已经活跃了一个月以上。

SquidLoader 后续投递的是 Cobalt Strike,也都经过加强以对抗静态分析。根据 SquidLoader 的配置信息,研究人员发现过去两年中主要在针对讲中文的受害者进行攻击。攻击者的攻击技术与攻击策略有可能会被他人模仿,在不久的将来被其他攻击者应用到攻击其他受害者。

Loader 分析

2024 年 4 月下旬,研究人员观察到一些特别的钓鱼邮件附件,文件名为「华为工业级路由器相关产品介绍和优秀客户案例」。顺藤摸瓜发现一系列以中国企业/组织名称命名的恶意附件,如「中国移动集团XX分公司」、「嘉X智能科技」与「XX水利技术学院」。所有样本都使用 Word 文档的图标,吸引受害者打开这些文档文件,但实际上执行的是二进制文件。

这些 Loader 具备强大的引诱和规避能力,帮助恶意样本保持不被发现,也阻止分析人员进行分析。下载的 Shellcode 也加载进同一 Loader 中,不写入磁盘也降低了被发现的风险。

发现的大多数样本文件都使用合法的过期证书,使样本文件看起来很正常。使用证书之一是颁发给杭州瑛格科技有限公司的,在 2021 年 7 月 15 日到期。证书的指纹为 3F984B8706702DB13F26AE73BD4C591C5936344F,序列号为 02 0E B5 27 BA C0 10 99 59 3E 2E A9 02 E3 97 CB。当然,这并不是唯一的无效证书。

SquidLoader 使用的 C&C 服务器采用自签名证书,其签发者和主体都包含:

  • Common Name: localhost
  • Organizational Unit: group
  • Organization: Company
  • Locality: Nanjing
  • State/Province: Jiangsu
  • Country: CN

首次执行时,SquidLoader 会复制到特定位置(C:\BakFiles\install.exe),再从新位置重新启动。这可能是攻击者故意的,想通过不可疑的名称执行,因为 SquidLoader 并不具备任何持久化机制。只是后续投递的 Cobalt Strike 能够创建服务并修改注册表,可以实现攻击者的持久化目标。

Shellcode 通过 5 字节的异或密钥进行加密,密钥使用小端存储硬编码为 DE FF CC 8F 9A。

异或解码

尽管文件名和图片都模拟 Word 文档文件,但样本文件中包含大量引用微信或 mingw-gcc 等软件的代码,以此来误导研究人员。文件的元数据中也是如此,想让受害者相信恶意文件只是这些软件的合法组件。当然,这些代码永远不会被执行。

其他代码

所有观察到的可执行文件都有类似于 Microsoft Office Word 的文档图标,样本文件还会弹出中文告警信息:

告警信息

检测规避技术

SquidLoader 使用了大量的检测规避技术,此处简单列举几个:

使用无意义/模糊的指令

文件中包含模糊且无意义的 x86 指令,例如 pause、mfence 或 lfence。某些函数还包含填充指令,例如根本不使用的随机算术计算。这可能是攻击者想要破坏或者绕过反病毒模拟器的尝试,这些检测手段可能并未实现不太常见的指令,或者可能只能运行模拟指令。

加密代码段

恶意软件开始执行后立即加载内嵌的加密 Shellcode,在动态分配的内存段中进行解密,赋予该段执行权限并调用。加密算法是固定位移的单字节异或加密,如下所示。解密过程中还包括诱饵指令,进一步混淆代码,但没有实际用途。

异或解密

栈内加密字符串

加密 Shellcode 中的敏感字符串都被异或加密作为局部变量嵌入函数体中,甚至会使用多字节异或密钥进行字符串解密。将字符串存储在栈中可以更轻松地隐藏特定信息,当栈更新时其内容将从内存中被删除。如下所示,恶意软件解密字符串获得 NtWriteVirtualMemory 后调用其 API

加密变量

跳转指令

某些函数包含 call 或 jmp 指令,跳转到另一个函数内的地址,这使得反汇编程序对函数体产生错误的汇编。

如下所示。用 IDA 查看 14000770E+2 处无法得到正确的汇编输出。

调用跳转

该地址被 IDA 认为在不同函数中间,140007710 甚至不会出现。

解析错误

手动标记函数起始位置后,IDA 才能够正确进行反汇编。

修正解析结果

反汇编的隐藏函数位于 __scrt_common_main_seh函数中,调用的目标是解密和执行内嵌加载程序 Shellcode 的代码。但该函数是标准 C 编译器生成的,旨在启动 WinMain/main 函数。换句话说,此处不应该出现自定义代码。从 WinMain 开始的程序流程就完全被改变了。

返回地址混淆

负责加载和执行此前提到的 Shellcode 的代码也通过栈操作执行返回地址混淆。如下所示,代码中可以看到返回地址如何指向 __scrt_common_main_seh+14。在最后一个函数调用后,通过不正确的指令操作栈。这会使函数到达 retn 指令时,栈指向解密 Shellcode 地址作为返回地址,这种技术主要阻止分析人员进行分析。

原始返回地址

实际返回地址

控制流图混淆

Shellcode 函数还使用了控制流图混淆,在无限循环中包含大量 Switch 语句。Switch 语句由变量进行控制,看似随机的值来选择下面要执行的分支。这种混淆方式使得不进行动态分析就不可能知道 Switch 语句是否会被执行。

控制流图混淆如下所示:

控制流图混淆

调试器检测

Loader 使用了三种方法检测调试器,一旦发现就会执行非法指令触发崩溃。

  • 检查已知调试器进程名称列表。通过 SystemProcessInformation (0x5) 调用 NtQuerySystemInformation 获取正在运行的进程列表。检查的进程包括:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Ida64.exe
Ida.exe
DbgX.Shell
Windbg.exe
X32dbg.exe
X64dbg.exe
Olldbg.exe


进程检查

  • 调用 NtQueryInformationProcess 并使用未记录的 0x1e 作为 ProcessInformationClass 参数的值来查找附加到正在运行进程的调试器。 如果存在会返回调试对象:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NtQueryInformationProcess (in: ProcessHandle=0xffffffffffffffff, ProcessInformationClass=0x1e, ProcessInformation=0x26ce8ff788, ProcessInformationLength=0x8, ReturnLength=0x26ce8ff788 | out: ProcessInformation=0x26ce8ff788, ReturnLength=0x26ce8ff788) returned 0xc0000353

  • 通过使用 SystemKernelDebuggerInformation (0x23) 系统信息类调用 NtQuerySystemInformation 来查找内核调试器的存在:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NtQuerySystemInformation (in: SystemInformationClass=0x23, SystemInformation=0x26ce8ff388, Length=0x2, ResultLength=0x0 | out: SystemInformation=0x26ce8ff388, ResultLength=0x0) returned 0x0
代码语言:javascript
代码运行次数:0
运行
复制

一旦检测到调试器,不仅触发自身程序崩溃,还会将 WinHttpConnect 替换为自己代码的入口点。这样 Loader 就不能正常加载库文件,也就不能正常连接 C&C 服务器,避免暴露。

代码变更

文件检查

Loader 检测以下几个文件是否存在,存在文件的话即会退出:

  • C:\temp\diskpartScript.txt
  • C:\Users\Admin\My Pictures\My Wallpaper.jpg
  • C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

执行直接系统调用

攻击者尽量避免调用 Windows NT API,直接执行自己实现的系统调用。攻击者创建了多个 NT API 的 Wrapper,每个 NT API 都对应一个 Wrapper。如下所示,为具有四个参数的 NT API Wrapper:

NT API Wrapper

Wrapper 解析 NtQuerySystemInformation,后续通过 jump_to_syscall 指令将给定的系统调用号移动到 EAX 并执行跳转 NtQuerySystemInformation+12。这样完全避免使用 NT API,也就绕过了很多检测 Hook 点位,也就不会在执行日志中现形。

jump_to_syscall 函数体

jmp 指令跳转 syscall 指令

Payload

分析人员只观察到了使用相同 CFG 混淆的 Cobalt Strike,很可能是出自相同攻击者之手。但其中并不包含反调试和反虚拟机技术,可能攻击者认为 Loader 已经确认过。

恶意样本模拟 Kubernetes 流量,向 /api/v1/pods 发起 GET 请求。如果 C&C 服务器没有响应或者不是预期响应,Payload 就会无限循环 ping C&C 服务器。

C&C 请求

头字段 X-Method 有三个可能值:

  • con:回连上线
  • snd:回传信息
  • rcv:接收任务

Cobalt Strike 读取 C&C 服务器的响应信息,进行检查:

  • HTTP 响应代码 200
  • 存在 X-Session

满足条件时,恶意软件收集失陷主机信息并通过 /api/v1/pods 的 POST 请求回传 C&C 服务器。收集的信息很多,例如用户名、计算机名称、ACP、OEMCP 与网络接口 IP 地址等。

收集信息

窃取的信息会加密发送:

失陷主机信息

窃取系统信息后,向 C&C 服务器发送的 HTTP GET 请求再执行任务。通过 C&C 信道以加密形式发送要执行的指令,加密算法存在大量的位运算。

加密方式

Win32 API 混淆

因为 Payload 需要与位置无关,因此 Win API 导入需要动态解析。恶意软件在内存中创建包含所需的所有 API 函数地址的表,并不存储函数的直接地址,而是存储 ~(_DWORD) api_addr & 0xCAFECAFE | api_addr & 0xFFFFFFFF35013501 的结果值。

存储地址

调用 API 前要撤销此操作,API 调用如下所示:

展开并调用

结论

SquidLoader 明显具备很强的对抗检测能力,两年多一直使用相似的攻击手段针对讲中文的受害者。

https://cybersecurity.att.com/blogs/labs-research/highly-evasive-squidloader-targets-chinese-organizations

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
级联阴影:一种逃避检测并复杂化分析的攻击链方法
该攻击链采用独特的多层级阶段来传播类似 Agent Tesla 变种、Remcos RAT 或 XLoader 的恶意软件。攻击者越来越依赖这种复杂的传播机制来逃避检测、绕过传统沙盒,并确保成功传播和执行有效载荷。我们分析的网络钓鱼活动使用伪装成订单发布请求的欺骗性电子邮件来传播恶意附件。
Khan安全团队
2025/05/06
1290
级联阴影:一种逃避检测并复杂化分析的攻击链方法
攻击者正在向云端转移
最近研究Legion Loader恶意软件时,研究人员偶然发现了一个下载装置,从云服务下载执行恶意有效负载。在寻找其他类似的样本发现:8,000个URL,10,000个样本,Nanocore,Lokibot,Remcos,Pony Stealer等。可以看出云服务是整个黑客产业的新方向,可取代打包程序和加密程序。如果恶意软件网络活动只与云通联,就很有可能逃过系统检测,研究人员也无法快速分辨恶意软件。
FB客服
2020/05/25
1.1K0
攻击者正在向云端转移
Maze勒索软件分析
在过去的一年中,Maze勒索软件已成为企业和大型组织严重威胁之一。数十个组织已成为该恶意软件的受害者,包括LG,Southwire和Pensacola。该勒索软件始于2019年上半年,当时没有任何明显的特有标记,勒索中常包含标题0010 System Failure 0010'',研究人员命名为ChaCha勒索软件’’。
FB客服
2020/11/23
1.2K0
Maze勒索软件分析
海莲花组织针对中国APT攻击的最新样本分析
安天CERT(安全研究与应急处理中心)在2018年12月至今,捕获多例针对中国用户的恶意宏文档攻击样本。这些恶意文档通过在模糊的文字背景上伪装出杀毒软件的安全检测结果,诱导受害者启用恶意宏代码,向Word进程自身注入Shellcode,最终在内存中解密和运行后门程序。根据对该后门的深入分析,我们发现该样本来自海莲花组织。
FB客服
2019/05/09
1.3K0
海莲花组织针对中国APT攻击的最新样本分析
解包分析攻击越南机场和其它组织机构的间谍程序
根据我们接触到了前期入侵越南组织机构的间谍程序捕获样本,入侵活动涉及7月底对越南两大机场的攻击事件,攻击中使用的恶意软件用于窃取越南航空公司40万会员信息。 这些入侵活动中使用的攻击载荷是伪装成杀毒软件McAfee的Korplug RAT变种。本文描述了从隐藏软件中提取最终攻击载荷的过程。 1 分析样本 884d46c01c762ad6ddd2759fd921bf71 – McAfee.exe c52464e9df8b3d08fc612a0f11fe53b2 - McUtil.dll(she
FB客服
2018/02/08
1K0
解包分析攻击越南机场和其它组织机构的间谍程序
红队基本操作:通用Shellcode加载器
Shellcode加载器是一种基本的规避技术。尽管shellcode加载器通常可以促进payload的初始执行,但是启发式检测方法仍可以标记payload的其他方面和行为。例如,很多安全产品可能会在内存中时对其进行检测,或者将特定的网络流量检测为恶意。我们将研究一些适合与加载器结合使用的后期开发框架,并研究如何嵌入其他类型的二进制文件(例如.NET和已编译的PE二进制文件)。
FB客服
2020/03/19
3K0
APT团伙(APT-C-01)新利用漏洞样本分析及关联挖掘
APT-C-01组织是一个长期针对国内国防、政府、科技和教育领域的重要机构实施网络间谍攻击活动的APT团伙,其最早的攻击活动可以追溯到2007年,360威胁情报中心对该团伙的活动一直保持着持续的跟踪。团伙擅长对目标实施鱼叉攻击和水坑攻击,植入修改后的ZXShell、Poison Ivy、XRAT商业木马,并使用动态域名作为其控制基础设施。
FB客服
2018/07/30
2K0
APT团伙(APT-C-01)新利用漏洞样本分析及关联挖掘
详解 RisePro 信息窃密木马
RisePro 不依赖特定的感染媒介,可以通过多种方式植入失陷主机,通常使用恶意链接和其他诱饵获得立足点。曾经 RisePro 与 PrivateLoader 联合投递,通过 PrivateLoader 将 RisePro 投递到失陷主机。研究人员发现 RisePro 与 PrivateLoader 共享大量代码,这表明两者之间存在联系。
FB客服
2024/07/10
2960
详解 RisePro 信息窃密木马
WSP ( CVE-2022-24934 ) APT
我们最近发现了一个APT我们正在调用的活动Operation Dragon Castling。该活动的目标是似乎在投注的公司South East Asia,更具体地说是位于Taiwan、Philippines和的公司Hong Kong。有了适度的信心,我们可以将活动归因于一个Chinese speaking APT group,但不幸的是不能将攻击归因于特定的群体,并且不确定攻击者的目标是什么。
Khan安全团队
2022/03/25
4.8K1
Metasploit 的 payload 特征
Metasploit 正是其中后渗透工具的翘楚。说起 Metasploit 这个词,可能大多数普通人不太了解,但对于搞渗透测试的人来说,它就犹如地之于豹,水之于鱼,天之于鹰,是当今安全专业人员免费提供的最有用的审计工具之一,同样地,黑客对其也是爱不释手。
字节脉搏实验室
2021/04/20
1.4K0
Metasploit 的 payload 特征
如何使用REW-sploit模拟和分析MSF以及其他类型的攻击
REW-sploit是一款功能强大的攻击分析工具,它可以帮助我们分析Windows Shellcode或其他来自Metasploit/Cobalt Strike的攻击活动。
FB客服
2021/10/11
7740
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
2023年11月28号,悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org)监测到两起伪装成http和socks5代理SDK的开源组件投毒事件。python开发者一旦下载安装这些投毒Py包(libproxy、libsocks5),会触发执行Py包中的恶意代码,最终将导致开发者系统被投毒者植入恶意后门。
OpenSCA社区
2023/12/01
4630
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
利用COVID-19发起的网络攻击分析
Check Point发现了针对蒙古公共部门的网络攻击活动,该组织利用了冠状病毒恐慌情绪向目标发送恶意软件。研究发现其与可与在2016年进行的其他网络活动联系起来。多年来,这些行动的目标是多个国家/地区的不同部门,例如乌克兰,俄罗斯, 和白俄罗斯。
FB客服
2020/04/14
7210
利用COVID-19发起的网络攻击分析
红蓝对抗之如何利用Shellcode来躲避安全检测
对于红队安全研究团队来说,一次成功的渗透测试必须是不被目标系统发现的,随着现代终端检测和响应(EDR)产品日趋成熟,红队也必须随之每日俱进。在这篇文章中,我们将跟大家介绍FireEye Mandiant红队研究人员如何通过构造特殊Payload来绕过现代EDR产品,并获取到目标系统的完整命令控制访问权。
FB客服
2019/11/07
1.4K0
[译] APT分析报告:04.Kraken新型无文件APT攻击利用Windows错误报告服务逃避检测
这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助。前文分享了APT组织Fin7 / Carbanak的Tirion恶意软件,包括OpBlueRaven行动。这篇文章将介绍一种新型无文件APT攻击Kraken,它会利用Windows错误报告服务逃避检测。其中,DllMain函数反分析检查,以确保它不在分析/沙箱环境或调试器中运行非常值得我们学习。
Eastmount
2021/12/03
1.1K0
[译] APT分析报告:04.Kraken新型无文件APT攻击利用Windows错误报告服务逃避检测
威胁情报 | 海莲花 APT 组织模仿 APT29 攻击活动分析
2023年11月,知道创宇404高级威胁情报团队成功捕获到海莲花组织最新的攻击样本。该样本以购买BMW汽车为主题,诱导攻击目标执行恶意文件。与此同时,该攻击与今年APT29的诱导主题和木马加载流程有相似之处,初步分析表明这可能是攻击者故意模仿的结果。
Seebug漏洞平台
2023/12/04
8840
威胁情报 | 海莲花 APT 组织模仿 APT29 攻击活动分析
利用 Microsoft Teams 维权并掩盖 Cobalt Strike 流量
在最近的一次操作中,我们获得了工作站的本地管理员权限,但是在该工作站上发现了 EDR 解决方案。
黑白天安全
2021/10/18
1.2K0
利用 Microsoft Teams 维权并掩盖 Cobalt Strike 流量
Adobe Flash零日漏洞(CVE-2018-4878)在野攻击完全分析报告
背景 2018年1月31日,韩国计算机应急响应小组发布了一则关于Adobe Flash Player的 0day 漏洞警告,并称早在2017年11月中旬,就有黑客利用该漏洞实施有针对性的攻击。 2018年2月1日, Adobe官方发布了Adobe Flash Player系列产品的安全通告(APSA18-01),一个最新的AdobeFlash零日漏洞被发现针对韩国地区的人员发起攻击,该0day漏洞编号为CVE-2018-4878。 2018年2月5日,Adobe官方发布漏洞补丁,修复CVE-2018-487
FB客服
2018/02/23
1.3K0
Adobe Flash零日漏洞(CVE-2018-4878)在野攻击完全分析报告
NSA 攻击工具再遭利用,Windows、Linux服务器沦为挖矿工具
F5研究员发现了一种新型Apache Struts 漏洞利用。这种恶意行动利用NSA EternalBlue 和 EternalSynergy两种漏洞,运行于多个平台,目标为内部网络。 研究人员将其命名为“Zealot”,因为其zip文件中包含有NSA所发布的python脚本。随着研究的深入,此文章会进一步更新,目前我们所知道的有: 新型Apache Struts 目标为Windows和Linux系统 Zealot的攻击复杂,多平台,且及其模糊 Zealot利用的服务器均有以下两种漏洞 CVE-2017
企鹅号小编
2018/02/09
2.7K0
NSA 攻击工具再遭利用,Windows、Linux服务器沦为挖矿工具
针对哈萨克斯坦的基于多阶段 PowerShell 的攻击
11 月 10 日,我们发现了一次多阶段 PowerShell 攻击,该攻击使用冒充哈萨克斯坦卫生部的文件诱饵,目标是哈萨克斯坦。
黑白天安全
2021/11/25
1.1K0
针对哈萨克斯坦的基于多阶段 PowerShell 的攻击
推荐阅读
相关推荐
级联阴影:一种逃避检测并复杂化分析的攻击链方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验