Crystal-Kit:CS的IATHook免杀实验"

admin 2026-10-17 07:43:11 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

Crystal-Kit:CS的IAT Hook免杀实验

原创

赛博57库
赛博57库

赛博57库

2026年7月2日 05:00
广东

在小说阅读器读本章

去阅读

攻防技术 · 红队工具深度解析 Crystal-Kit:用 IAT Hook 替代 Cobalt Strike 的 Sleepmask 与 BeaconGate rasta-mouse · Cobalt Strike 4.12 · IAT Hook · Crystal Palace PICO · YARA 检测
知名红队研究员 rasta-mouse 发布 Crystal-Kit,以 IAT Hook + 位置无关代码对象(PICO) 替代 Cobalt Strike 内置的 Sleepmask 和 BeaconGate,首次将运行时免杀覆盖延伸至 postex DLL。仓库随附 YARA 检测规则,攻防两端均可参考。
01 · BeaconGate 与 Sleepmask 的局限
Cobalt Strike 提供了两种运行时免杀原语:Sleepmask 在 Beacon sleep 期间对内存加解密,降低内存扫描检出率;BeaconGate 拦截 Beacon 的 Win32 API 调用,在每次调用前后注入免杀逻辑(如调用栈欺骗)。 两者存在一个共同的关键缺陷:BeaconGate 仅支持有限的 API 白名单,CreateProcessA 不在列,导致 shell、run、powerpick 在面对调用栈分析防御时完全失去保护。更重要的是,Sleepmask 对 postex DLL(键盘记录、截图等第三方后渗透模块)根本不起效。
问题核心 postex DLL 没有等效的 Sleepmask 机制,调用栈分析在此场景下完全暴露了攻击者的操作。
02 · IAT Hook — Crystal-Kit 的核心思路
Crystal-Kit 将 IAT Hook(导入地址表钩子)作为核心方案,核心流程: ① 注入 PIC blob:将一段位置无关代码注入到进程内存 ② Hook IAT:在 DLL 加载时修改其导入地址表,将目标 API 重定向至 PIC stub ③ 执行免杀逻辑:stub 在调用真实 API 前后执行调用栈欺骗等免杀技术 此思路借鉴自 TitanLdr、AceLdr 等反射加载器,但被泛化为可 Hook 任意 API 的通用框架——既无白名单限制,又天然覆盖 postex DLL。
03 · 四大组件架构
组件 功能说明
Prepended Reflective Loader 使 Beacon/postex DLL 以位置无关方式加载执行
PIC Stub(源自 Draugr) 实现调用栈欺骗,掩盖真实调用链
PICO(位置无关代码对象) Hook DLL 的 IAT,将 API 调用重定向到 PIC stub
Aggressor Script(crystalkit.cna) 在 Cobalt Strike 中注册 hook,整合进攻击流程

▲ IAT Hook 流程:DLL 导入表 → PICO → PIC Stub(调用栈欺骗)→ Win32 API
04 · Crystal Palace PICO 生态
Crystal-Kit 构建于 Crystal Palace 工具生态之上。PICO(Position Independent Code Object)是其核心抽象,具备以下特性: ▸ 数据段与代码段无需相邻(弹性内存布局,规避连续内存特征) ▸ 以 mingw32 编译为 object file,支持 x86/x64 双架构 ▸ 内嵌 data stub,辅助 loader 精确定位代码段与数据段边界 ▸ spec 文件声明式构建,piclink 工具处理后生成可执行 blob ▸ PicoLoad 函数实现跨 PICO 调用,支持模块化组合
关键优势:Hook LoadLibrary 可阻断对 System.Management.Automation.dll、clr.dll 等敏感模块加载的检测,是 BeaconGate 完全无法实现的能力。
05 · Crystal Mask:XOR 内存加密进化
Crystal-Kit 之后,rasta-mouse 发布了 Crystal Mask,进一步演进了内存混淆策略: XOR 内存加密覆盖两个维度: ▸ Beacon 内存:利用 loader 提供的 BEACON_INFO 结构定位并加解密 Beacon 内存分配 ▸ 堆内存:遍历 Beacon 的 heap_records 数组,对所有堆分配逐一加解密 架构改进:不再禁用 Beacon 的内置软件契约(BeaconInfo / FunctionCall 结构),改为通过 link-time spec 文件注入免杀逻辑,从而支持组件与其他 loader 互换——修复了 Crystal-Kit sleepmask PICO 与自身 loader 强耦合的设计问题。
06 · 生态扩展:移植到其他 C2 框架
项目 说明
CrystalSliver Crystal-Kit 到 Sliver C2 的首个公开移植
Crystal-Kit-Xenon 适配 Mythic Xenon Agent 的移植版本
CrystalC2 rasta-mouse 自研 C2 框架,以 Crystal Palace 构建完整 agent
07 · 防守方视角:随附 YARA 检测规则
Crystal-Kit 仓库内置 crystalkit.yar,包含两条由 Crystal Palace 自动生成的检测规则(TCG\_7eee7002 与 TCG\_31614b2a): ▸ 目标:x64 Windows(文件扫描与内存扫描) ▸ 特征集:内存清理例程、CFG bypass 字节序列、VirtualAlloc 调用模式、哈希值 API 解析(特征值 0x6A4ABC5B、0x7C0DFCAA) ▸ 触发条件:匹配特征集中 5 条及以上方触发

▲ 蓝队可将仓库随附 YARA 规则直接用于 EDR/内存扫描引擎
08 · 配置要点
使用前需在 Malleable C2 profile 中关闭内置原语:
# Malleable C2 关键配置 set sleep\_mask \"false\";  # 禁用内置 Sleepmask stage { set cleanup \"true\"; }  # 启用 stage 清理模式 # 然后将 crystalpalace.jar 复制至 CS 客户端目录 # 加载 crystalkit.cna 脚本
注意:Crystal-Kit 的 Sleepmask PICO 与其自身的反射 loader 强耦合,不支持与第三方 loader 混搭。若需要跨 loader 兼容性,参考 Crystal Mask 的架构改进方案。
总结
Crystal-Kit 代表了 C2 框架运行时免杀演进的重要方向:从\"修补内置原语\"到\"以更灵活的 PIC/PICO 架构完全替换\"。 红队意义:首次将运行时保护延伸至 postex DLL,覆盖 BeaconGate 无法触及的盲区;任意 API hook 打破白名单限制。 蓝队意义:仓库随附 YARA 规则可直接落地;重点关注内存中的哈希值 API 解析模式(0x6A4ABC5B)与无签名 PIC blob 特征。
技术内容仅供学习与安全研究,请勿用于未授权场景。

Crystal-Kit:CS的IATHook免杀实验" 网络安全文章

Crystal-Kit:CS的IATHook免杀实验"

本文深度解析Crystal-Kit工具,其通过IATHook与PICO替代CobaltStrike的Sleepmask和BeaconGate,解决了原方案不支持postexDLL及API白名单受限的痛点,实现全场景运行时免杀。文章剖析了其核心架构及CrystalMask在内存加密与解耦上的演进。红队需禁用内置原语并加载脚本进行部署;蓝队应利用随附的YARA规则,重点监测内存中的哈希API解析特征值及无签名PIC代码块以实现有效拦截。
你的服务器正在被爆破!这个开源项目让全球攻击来源一目了然" 网络安全文章

你的服务器正在被爆破!这个开源项目让全球攻击来源一目了然"

AttackFlow是一个开源SSH攻击实时监控与飞线图可视化系统,通过解析auth.log日志、IP地理定位和Redis缓存,在ECharts世界地图上实时展示攻击来源、路径和频率。它支持多服务器监控、ClickHouse持久化存储、WebSocket推送和告警引擎,并提供DockerCompose一键部署。该项目将枯燥日志转化为动态可视化,帮助运维人员直观追踪SSH暴力破解攻击。
产教融合聚力,共研网安育人新模式--网安专业一流课程建设研讨会顺利举办" 网络安全文章

产教融合聚力,共研网安育人新模式--网安专业一流课程建设研讨会顺利举办"

广东警官学院与锦行科技联合举办AI时代网安课程建设研讨会。会议指出高校网安教学面临实战匮乏与AI内容脱节等挑战,广警分享了Web渗透测试教战一体化经验,锦行科技提出技术思维实战三位一体培养体系并展示天穹靶场平台,强调校企合作对培养复合型网安人才的作用。
评论:0   参与:  0