- 文档
- 教程
- 网络安全
【免费下载链接】Viper
Adversary simulation and Red teaming platform with AI
克隆目标网站的 SSL 证书,使 Viper 的 reverse_https 监听器复用真实网站的证书与密钥,可显著降低 C2 流量与握手特征被安全设备识别的概率,是红队模拟中常用的防御规避手段。本篇文章以 Viper 中的「克隆 HTTPS 证书」模块(DefenseEvasion_SubvertTrustControls_CloneSSLPem)为主线,讲解其操作步骤、证书与监听器的关联方式,并结合官方文档中关于证书配置、reverse_https 监听与国内云厂商流量监控的实战经验进行展开。
模块定位:Subvert Trust Controls 下的证书克隆
在 Viper 的模块体系中,「克隆 HTTPS 证书」归属于DefenseEvasion_SubvertTrustControls(破坏信任控制)分类,模块名中的CloneSSLPem直接点明其功能:将目标网站的 PEM 格式 SSL 证书克隆下来,供 reverse_https 类型的监听器使用。
从官方模块文档的定位来看:
克隆目标网站的 ssl 证书,可用于 reverse_https 类型的监听。
也就是说,该模块解决的核心问题是:当红队需要搭建一个 reverse_https 监听器时,如何获得一个"看起来正常"的 TLS 证书,而不是使用 Viper 默认的自签名证书(www.example.com.pem),从而降低网络侧检测设备通过证书指纹发现 C2 服务器的可能性。
操作步骤
1. 运行模块,输入目标网站
在 Viper 的模块列表中搜索「克隆HTTPS证书」(英文界面为 "Clone HTTPS Certificate")并运行,在模块输入框中填写目标网站的域名或地址。
2. 运行结束后查看结果
模块执行完毕后,可以在结果面板中查看克隆得到的证书内容。通常结果中会展示克隆到的证书文件(PEM 格式),包含公钥证书与私钥。
3. 在创建 reverse_https 监听时使用该证书
进入「监听载荷」->「新增监听」,选择reverse_https类型(例如windows/meterpreter/reverse_https),在证书配置处选择或上传刚才克隆得到的 PEM 文件,即可让监听器使用克隆证书完成 TLS 握手。
为什么要克隆证书:监听器证书的三种来源
在 Viper 的「监听载荷」(Handler and Payload)页面中,HTTPS 证书的配置有三种途径,官方文档 监听载荷 有明确说明:
- 使用 Viper 内置证书:Viper 默认内置一个 SSL 证书
www.example.com.pem,可直接用于 HTTPS 加密; - 自行上传 PEM 证书:用户可上传自己的 pem 格式证书,注意证书中必须包含公钥和私钥,具体格式可参考
www.example.com.pem文件; - 克隆任意网站证书:使用 克隆HTTPS证书模块 克隆任意网站的证书。
三种方式的差异在于证书的来源与可信程度:
| 证书来源 | 操作方式 | 典型场景 |
|---|---|---|
| 内置证书 | 直接使用www.example.com.pem | 快速测试、内网环境 |
| 自行上传 | 上传包含公钥+私钥的 pem 文件 | 拥有域名,可通过合法渠道获取证书 |
| 克隆证书 | 运行 CloneSSLPem 模块抓取目标网站证书 | 红队模拟中伪装可信站点、规避证书指纹检测 |
对于红队模拟场景而言,克隆证书的价值在于:C2 监听器与目标可信站点使用相同的证书与密钥,使 TLS 握手的证书指纹与正常业务站点一致,从而降低网络侧检测设备通过证书特征识别 C2 的可能性。
证书在 reverse_https 监听中的典型实战场景
场景一:绕过国内云厂商的流量监控
在 Viper 官方文档「第一滴血」与相关实战文章中明确指出,阿里云等国内云厂商存在流量监控设备,建议使用带加密的监听(reverse_https)来规避流量检测:
阿里云等国内云厂商有流量监控设备,请使用带加密的监听(reverse_https)。
而 reverse_https 监听器若搭配克隆自可信站点的证书,可进一步降低 TLS 流量被识别为 C2 的概率,这在 监听载荷 与 克隆HTTPS证书模块 的组合使用中得以体现。
场景二:直连免杀与载荷生成
Viper 提供了多种基于 reverse_https 的免杀与上线方案,其前置条件往往都是「先建立一个 reverse_https 监听」:
- Reverse_https直连免杀:新建 reverse_https 监听后,运行模块即可在文件管理中生成包含免杀 exe 载荷及对应 C++ 源码的 zip 文件;
- ExeSrc 与 LoaderDIY 等模块同样支持
windows/meterpreter/reverse_https类型的载荷。
在这些场景中,监听器创建时的证书配置(内置、上传或克隆)会直接影响载荷与 C2 之间的 TLS 通信形态。
场景三:使用合法证书建立 reverse_https 监听
在 监听配置合法的SSL证书 一文中,Viper 官方给出了使用 acme.sh 从 Let's Encrypt 获取合法证书并建立 reverse_https 监听的完整流程:
- 确认 Viper 正常运行,域名正确指向 Viper VPS 的 IP 地址;
- 安装 acme.sh:
curl https://get.acme.sh | sh -s email=my@example.com; - 生成证书(确保 80 端口未占用):
acme.sh --issue -d xg.xxx.website --standalone; - 将
.key和.cer文件内容合并到一个文件中; - 上传合并后的 pem 文件到 Viper;
- 使用上传的 pem 文件建立 reverse_https 监听;
- 访问监听链接,确认证书已是可信证书。
对比可见:克隆证书模块与上述合法证书方案解决的是同一类问题(让 reverse_https 监听器的证书"看起来可信"),区别在于证书来源——前者直接从目标站点克隆,后者通过权威 CA 签发。
使用克隆证书时的注意事项
- 证书必须包含公钥和私钥:Viper 的 HTTPS 监听器需要 PEM 文件中同时包含证书与私钥,若克隆得到的文件仅含公钥证书,则无法完成 TLS 握手;
- 监听与载荷的证书需保持一致:在 云函数上线 等文章中强调,载荷(Payload)配置中的证书需要与监听(Handler)中配置的一致,否则可能出现加载失败;
- 特定场景下需清空证书配置:例如在 云函数上线 场景中,监听与载荷的「LURI 和证书文件要为空」,且需要关闭验证证书选项;在 使用CDN上线meterpreter 场景中,则要求监听和载荷仅支持
meterpreter_reverse_http(s)类型; - 结合 LURI 配置降低暴露面:在 如何将MSF的meterpreter改造的像CS的beacon一样稳定 一文中提到,若 reverse_https 监听端口设为 443 等常用端口,会被大量扫描器扫描,产生无效网络连接,若未设置 LURI 还会产生大量假 Session。因此在使用克隆证书建立监听时,建议同时合理配置 LURI,减少无效连接干扰。
小结
「克隆 HTTPS 证书」(DefenseEvasion_SubvertTrustControls_CloneSSLPem)是 Viper 红队模拟能力中一项小而关键的防御规避手段:通过运行模块克隆目标网站的 PEM 证书,在建立 reverse_https 监听器时选用该证书,即可让 C2 的 TLS 握手呈现与可信站点一致的证书指纹。它与 Viper 的内置证书、用户上传证书共同构成了监听器 HTTPS 证书的三种配置途径,实际使用时需注意证书须包含公钥与私钥、监听与载荷证书一致性、以及结合 LURI 与防火墙等配置降低被扫描识别的风险。
使用 Viper 克隆 HTTPS 证书:为 reverse_https 监听伪装可信 TLS 指纹
克隆目标网站的 SSL 证书,让 Viper 的 reverse_https 监听器复用真实站点的证书与私钥,可在 TLS 握手阶段呈现与可信业务站点一致的证书指纹,是红队模拟中降低 C2 流量被网络侧设备识别概率的常用手段。本文以 Viper「克隆 HTTPS 证书」模块(DefenseEvasion_SubvertTrustControls_CloneSSLPem)为主线,完整讲解模块定位、操作步骤、证书在 reverse_https 监听中的三种来源与典型实战场景。
模块定位:破坏信任控制(Subvert Trust Controls)下的证书克隆
在 Viper 的模块体系中,「克隆 HTTPS 证书」归属于DefenseEvasion_SubvertTrustControls(破坏信任控制)分类,模块名中的CloneSSLPem直接点明其功能:将目标网站的 PEM 格式 SSL 证书克隆下来,供 reverse_https 类型的监听器使用。
官方模块文档对本模块的定位为:
克隆目标网站的 ssl 证书,可用于 reverse_https 类型的监听。
也就是说,该模块解决的核心问题是:当红队需要搭建一个 reverse_https 监听器时,如何获得一个"看起来正常"的 TLS 证书,而不是使用 Viper 默认的自签名证书(www.example.com.pem),从而降低检测设备通过证书指纹发现 C2 服务器的可能性。
操作方法
1. 运行模块,输入目标网站
在 Viper 的模块列表中使用搜索功能定位到「克隆HTTPS证书」模块(英文界面为 "Clone HTTPS Certificate"),运行模块后,在输入框中填写目标网站的域名或地址,例如需要伪装的目标业务站点。
2. 运行结束后查看结果
模块执行完毕后,可在结果面板中查看克隆得到的证书内容。结果通常展示克隆得到的 PEM 格式证书文件,其中包含证书公钥部分以及对应的私钥内容。
3. 在创建 reverse_https 监听时使用该证书
进入「监听载荷」->「新增监听」,选择 reverse_https 类型(例如windows/meterpreter/reverse_https),在证书配置处选择或上传刚才克隆得到的 PEM 文件,即可让监听器使用克隆证书完成 TLS 握手。
为什么需要克隆证书:监听器 HTTPS 证书的三种来源
在 Viper 的「监听载荷」页面(见 监听载荷),HTTPS 证书的配置共有三种途径:
- 使用 Viper 内置证书:Viper 默认内置一个 SSL 证书
www.example.com.pem,可直接用于 HTTPS 加密; - 自行上传 PEM 证书:用户可自行上传 pem 格式证书,注意证书中必须包含公钥和私钥,具体格式可参考
www.example.com.pem文件; - 克隆任意网站证书:使用 克隆HTTPS证书模块 克隆任意网站的证书。
三种方式的差异在于证书来源与可信程度:
| 证书来源 | 操作方式 | 典型场景 |
|---|---|---|
| 内置证书 | 直接使用www.example.com.pem | 快速测试、内网环境 |
| 自行上传 | 上传包含公钥与私钥的 pem 文件 | 拥有域名,可通过权威 CA 合法签发 |
| 克隆证书 | 运行 CloneSSLPem 模块抓取目标网站证书 | 红队模拟中伪装可信站点、规避证书指纹检测 |
对于红队模拟场景而言,克隆证书的价值在于:C2 监听器与目标可信站点使用相同的证书与密钥,使 TLS 握手的证书指纹与正常业务站点一致,从而降低网络侧检测设备通过证书特征识别 C2 的可能性。
克隆证书在 reverse_https 监听中的典型实战场景
场景一:配合 reverse_https 规避国内云厂商流量监控
Viper 官方文档在多处明确指出,阿里云等国内云厂商部署有流量监控设备,建议使用带加密的监听(reverse_https)规避流量检测。例如 第一滴血 一文中的说明:
阿里云等国内云厂商有流量监控设备,请使用带加密的监听(reverse_https),由于 vps 带宽原因,执行 payload 后请稍等一段时间,请勿删除对应监听。
而 reverse_https 监听器若搭配克隆自可信站点的证书,可进一步降低 TLS 流量被识别为 C2 的概率——这正是「克隆 HTTPS 证书」模块与 reverse_https 监听组合使用的典型场景。
场景二:为 reverse_https 直连免杀与载荷生成提供证书基础
Viper 提供了多种基于 reverse_https 的免杀与上线方案,其前置条件都是先建立一个 reverse_https 监听:
- Reverse_https直连免杀:新建 reverse_https 监听后运行模块,即可在「文件管理」中生成包含免杀 exe 载荷及对应 C++ 源码的 zip 文件;
- ExeSrc 与 LoaderDIY 等模块同样支持
windows/meterpreter/reverse_https、windows/x64/meterpreter/reverse_https类型的载荷生成。
在这些场景中,监听器创建时的证书配置(内置、上传或克隆)会直接影响载荷与 C2 之间的 TLS 通信形态。
场景三:与合法证书方案互补
在 监听配置合法的SSL证书 一文中,Viper 官方给出了使用 acme.sh 从 Let's Encrypt 获取合法证书并建立 reverse_https 监听的完整流程:
- 确认 Viper 正常运行,且域名已正确解析到 Viper 所在 VPS 的 IP 地址;
- 安装 acme.sh(示例):
curl https://get.acme.sh | sh -s email=my@example.com; - 生成证书(确保 80 端口未被占用):
acme.sh --issue -d xg.xxx.website --standalone; - 将生成的
.key与.cer文件内容合并到同一个文件中; - 将合并后的 pem 文件上传到 Viper;
- 使用上传的 pem 文件建立 reverse_https 监听;
- 访问监听链接,确认证书已被浏览器识别为可信证书。
对比可见:克隆证书模块与合法证书方案解决的是同一类问题(让 reverse_https 监听器的证书"看起来可信"),区别在于证书来源——前者直接从目标站点克隆现成证书,后者通过权威 CA 签发自有域名证书。在实战中可根据是否拥有可控域名灵活选择。
使用克隆证书时的注意事项
- 证书必须同时包含公钥与私钥:Viper 的 HTTPS 监听器要求 PEM 文件包含证书与私钥,若克隆结果中仅含公钥证书而缺少私钥,将无法完成 TLS 握手,具体格式可对照内置的
www.example.com.pem文件; - 监听与载荷的证书配置需保持一致:在 云函数上线 等方案中强调,载荷(Payload)中证书相关配置需要与监听(Handler)配置一致,否则可能出现加载失败;
- 特定场景需清空证书或关闭校验:例如 云函数上线 场景要求监听与载荷的「LURI 和证书文件要为空」并关闭验证证书选项;使用CDN上线meterpreter 场景则要求监听与载荷仅支持
meterpreter_reverse_http(s)类型; - 结合 LURI 与监听防火墙降低暴露面:在 如何将MSF的meterpreter改造的像CS的beacon一样稳定 一文中提到,若 reverse_https 监听端口设为 443 等常用端口,会被大量扫描器扫描而产生无效网络连接,未设置 LURI 时还会产生大量假 Session。因此使用克隆证书建立监听时,建议同时合理配置 LURI,并结合 回连过滤(监听防火墙)屏蔽无关来源 IP,减少无效连接与误报干扰。
小结
「克隆 HTTPS 证书」(DefenseEvasion_SubvertTrustControls_CloneSSLPem)是 Viper 红队模拟能力中一项小而关键的防御规避手段:运行模块克隆目标网站的 PEM 证书,在建立 reverse_https 监听器时选用该证书,即可让 C2 的 TLS 握手呈现与可信站点一致的证书指纹。它与 Viper 内置证书、用户上传证书共同构成监听器 HTTPS 证书的三种配置途径。实际使用时需注意:证书必须包含公钥与私钥、监听与载荷的证书配置需保持一致、特定上线方案中需清空证书或关闭校验,并建议结合 LURI 与监听防火墙配置降低被扫描识别的风险。
- 文档
- 教程
- 网络安全
【免费下载链接】Viper
Adversary simulation and Red teaming platform with AI
相关推荐
Viper 红队平台 reverse_https 监听配置合法 SSL 证书(Let's Encrypt + acme.sh)实战指南
Viper 红队平台 reverse_https 监听配置合法 SSL 证书(Let's Encrypt + acme.sh)实战指南 本文以 Viper 平台
文档教程网络安全Viper 监听与载荷完全指南:虚拟监听、HTTPS 证书、PE/ELF 生成与高阶上线技巧
Viper 监听与载荷完全指南:虚拟监听、HTTPS 证书、PE/ELF 生成与高阶上线技巧 导读 在 Viper 红队平台中,监听(Handler)与载荷(P
文档教程网络安全使用 Let's Encrypt 证书配置 Mosquitto MQTT Broker 的 TLS 加密监听
使用 Let's Encrypt 证书配置 Mosquitto MQTT Broker 的 TLS 加密监听 本指南讲解如何将 Let's Encrypt 签发
物联网消息队列后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考