前期隐蔽基建
前期身份隐蔽(Pre-Engagement OPSEC)是红队行动成败的分水岭。无论你的目标是模拟 APT 还是做攻防演练,如果在前期就暴露了身份或被溯源到了真实资产,你后续的免杀、横向、ICS 渗透都可能前功尽弃。我们可以从APT案例研究+红队基建实践两个维度系统性切入,构建一个实用专题。
维度 | 目标 |
---|---|
战术目标 | 学会如何在网络空间构建无法溯源、可更换的前期基础设施(域名、服务器、邮箱、CDN等 |
技术目标 | 理解和复现 APT 行动中的前期伪装手法(域名注册、TLS证书、WHOIS欺骗、CDN混淆、C2隧道) |
工程目标 | 自建/复用可控的匿名跳板资产体系:如 VPS 链、隐匿注册的云服务、分布式域名/CDN中转 |
从APT研究案例为出发点-_-作为我们的参考材料与学习路线
APT29
===================
HAMMERTOSS_ 掷锤者行动 利用公共平台实现的C2美学
0x01 APT29 HAMMERTOSS案例分析
1.1 案例背景
威胁组织:APT29(俄罗斯政府背景)
发现时间:2015年
主要特征:极高的OPSEC纪律性和适应性
活动时区:UTC+3(莫斯科时间)
工作模式:俄罗斯假期停止活动,工作日活跃
1.2 HAMMERTOSS五阶段通信模型概要
C2运行完全通过合法网络服务 利用Twitter Github 以及肉鸡作为通信链
每天自动访问不同的 Twitter 句柄。
使用定时开始——在特定日期之后或仅在受害者的工作周内进行通信。
通过包含隐藏和加密数据的图像获取命令。
从肉鸡和云存储中上传的文件提取信息
阶段1:Twitter句柄生成算法
算法逻辑:
基名(如”Bob”) + CRC32(日期) → 1abBob52b
URL生成:https://twitter.com/1abBob52b
特点:每日自动生成不同句柄,大量虚假账户混淆
阶段2:推文中的加密参数传递
推文格式:Follow doctorhandbook.com #101docto
解析结果:
- URL:doctorhandbook.com(第二阶段C2地址)
- 偏移量:101字节
- 密钥片段:docto
GitHub/合法服务承载
利用GitHub页面托管恶意图片
通过IE COM对象访问,模拟正常浏览行为
多样化承载平台(GitHub、被攻陷网站、云存储)
关键特征分析
分层混淆策略
Layer 1: 算法生成的大量虚假Twitter账户
Layer 2: 合法社交媒体/代码托管平台中转
Layer 3: 图像隐写术隐藏真实载荷
Layer 4: 多重加密密钥分离存储
Layer 5: 云服务匿名化数据收集
适应性防御机制
平台切换:Twitter被封锁→切换到直连变种
账户轮换:发现算法后可快速删除历史痕迹
载荷多样化:图片大小/格式随机变化
时间规避:工作日激活,假期休眠
火眼:APT29 几乎总是使用反取证技术,他们监控受害者的补救工作以颠覆它们。同样,该组织似乎几乎只使用 CnC 的受感染服务器来增强其运营的安全性,并通过快速修改工具来破坏检测来维持其恶意软件的快速开发周期。这些方面使 APT29 成为我们跟踪的最有能力的 APT 组织之一。
1.3 HAMMERTOSS—C2基建的变体 详细阐述
APT29 可能使用 HAMMERTOSS 作为其两个主要后门的备份,以执行命令
它们为 APT29 提供了与恶意软件通信的替代方式。开发人员似乎将这些变体命名为 uploader 和 tDiscoverer。这两个变体都是用 C# 编程语言编写的 每个变体都使用不同的方法来获取 C2 指令,要么直接访问硬编码网站,要么作为中介访问 Twitter。
uploader已预配置为使用硬编码服务器作为其 C2中介。它转到特定 URL 以获取具有特定文件大小的图像。
tDiscoverer 使用额外的混淆层,首先访问 Twitter 获取 CnC URL,然后再访问该 URL 获取其目标图像。
我们将恶意软件通信过程分为五个阶段,以解释该工具如何运行、接收指令以及从受害者网络中提取信息。这些阶段包括有关 APT29 在受感染网络之外与 HAMMERTOSS 通信的信息,以及对该工具掩盖其活动的能力的简要评估。
HAMMERTOSS 后门每天生成并查找不同的 Twitter 句柄。它使用一种算法来生成每日句柄,例如“234Bob234”,然后再尝试访问相应的 Twitter 页面。如果威胁组织没有注册当天的句柄,HAMMERTOSS 将等到第二天再寻找不同的句柄。
HAMMERTOSS 访问关联的 Twitter 帐户并查找带有 URL 和主题标签的推文,该标签指示图像文件的位置和最小大小。
HAMMERTOSS 访问 URL 并获取图像。
图像看起来很正常,但实际上包含使用隐写术的隐藏和加密数据。
HAMMERTOSS 解密隐藏数据以获取命令。HAMMERTOSS 处理解密的命令,这些命令可能会指示恶意软件进行侦察、通过 PowerShell 执行命令或将数据上传到云存储服务。
第一阶段详解
- HAMMERTOSS 包含一种算法,可以生成 Twitter 句柄,告诉恶意软件在特定日期访问特定的 Twitter 句柄。
Twitter 句柄是与 Twitter 网站关联的用户 ID。例如,FireEye 的 Twitter 句柄 @FireEye 有一个 URL:https://www.twitter.com/ fireeye。HAMMERTOSS 算法使用一个基本名称,如“Bob”,并在前面附加和预加三个 CRC32
基于当前日期的值。例如,可以是 1abBob52b,其 URL 为:hxxps://www.twitter.com/1abBob52b。
- HAMMERTOSS 访问与其每日 Twitter 账号相关的 Twitter URL。例如,在 7 月 29 日,它可能会查找句柄 1abBob52b (hxxps://twitter.com/1abBob52b)
APT29 的运营者选择在预期通信之前使用相同的算法注册特定日期的 Twitter 句柄。
3.APT29 知道用于生成句柄的算法,并选择注册 Twitter 句柄,并在恶意软件尝试查询之前将混淆的指令发布到句柄的 URL。如果未注册特定日期的句柄,并且找不到该日期的 URL,则 HAMMERTOSS 将等到第二天尝试与另一个句柄通信。
4.APT29 通常将 HAMMERTOSS 配置为在某些限制内进行通信,例如仅在工作日或指定的开始日期之后检查 Twitter 句柄。这使得恶意软件能够在受害者的工作周期间融入“正常”流量,或者在激活之前保持休眠一段时间。
第二阶段详解
发布 URL、图像的最小文件大小和部分加密密钥
如图 是 HAMMERTOSS tDiscoverer 变体的示例,以及来自其生成的句柄之一的 Twitter 帐户页面的相应快照。在发布时,一个公开的 HAMMERTOSS 样本在 VirusTotal 中只有五个通用检测。该 Twitter 帐户处于活动状态,并包含指向网站的链接.
第三阶段详解
访问 GitHub 下载映像
APT29 的运营商注册了一个 GitHub 页面并上传了一张图片。
接下来的打法就很细节了

前面通过推文中指定的URL,继续访问并下载对应的隐写图像,那么这个时候通过HAMMERTOSS内部的解密函数加载命令,就能达成C2执行命令的效果
第四阶段详解
基本隐写术的实现
它的隐写术并非你所想象的单单通过加载下载过来的图像并解密那么简单
实际上HAMMERTOSS 将网站内容下载到 IE 的浏览器缓存中,并在缓存中搜索至少与第 2 阶段推文中指定的偏移量一样大的任何图像。
HAMMERTOSS 在第 2 阶段的推文中指定的偏移量处定位加密数据。它使用一个密钥来解密数据,该密钥由恶意软件二进制文件中的硬编码数据组成,并附加了推文中的字符。
也就是说 想要解密 本质上需要推文+图片本身同时存在的隐写算法,既保证了传输安全与隐蔽性的同时 作为攻击者的你可以随时删文销户优雅撤退,这里不得不感叹毛子在红队基建方面的优雅和实用主义
第 5 阶段详解
APT29 的运营商创建云存储帐户,可以从云存储服务中获取受害者的数据。
其实本质就是常规的走云上,毕竟大数据量文件的窃取很讲究网络传输的稳定性
结案