2023 年合法 TLS 窃听事件分析:漏洞复现与未来防范探讨

2023 年合法 TLS 窃听事件分析:漏洞复现与未来防范探讨 分析valdikss.org 上的分析博客非常详细这类事情通常在操作失误时才被发现。阅读分析内容时直观展示经验价值。关键在于细节acme.sh 非常小。处理信息会失去相关性顺序通常会浏览文档找时间数字串联事情。关注 2023 年 4 月 18 日左右可能涉及 acme.sh 的事件并记录之后发生的事情。acme.sh[ACME] 是用于建立从证书颁发机构颁发和更新 TLS 证书信任机制的协议[acme.sh] 是借助该协议帮助自动化此过程的 shell 脚本可执行文件在 jabber.ru 服务器上运行以促进 TLS 证书更新。2023 年 4 月 18 日左右与 acme.sh 相关重要事件包括2023 年 6 月 8 日一个远程代码执行漏洞被披露最终被分配 CVE 编号 [CVE - 2023 - 38198]2023 年 6 月 9 日发布了修复版本。4 月 18 日运行 acme.sh 的 jabber.ru 服务器使用的版本易受此漏洞攻击。CVE - 2023 - 38198在首次披露该漏洞的 GitHub 问题中有人指出这个漏洞被名为 “HiCA” 的证书颁发机构利用来颁发证书。GitHub 问题中有 shell 插值混乱及绕过禁止或过滤字符的操作。该漏洞本质在于网络数据与 ACME 客户端处理数据表现形式的差异调试日志内容与原始数据相近但有缺失。有效负载会执行操作引发更多操作最后一张截图虽非 ACME 标准操作但本质无害促进了公钥基础设施验证解释了 HiCA 利用漏洞的意图但对 “如何实现” 解释不多。如何实现该漏洞涉及 ACME 挑战类型为 http - 01、某种形式的命令注入、漏洞存在于 Token 字段、某些字符不被允许等方面。通过对 [ACME 服务器] 进行修改尝试简化 GitHub 问题中的有效负载但无法让将 [输入字段分隔符] 重新定义为 IFS ^ 的操作生效ACME 涉及太多预处理层无法用这种方式实现远程代码执行。坚信至少有一种情况正确一是自己太笨无法让 IFS 技巧绕过过滤器二是 HiCA 在记录时间范围内积极研究和更改有效负载。IFS 技巧常被僵尸网络运营商滥用让人思考 HiCA 精通此技巧却做良性操作的原因。自己动手GitHub 中列出的令牌响应试图将 IFS 重新定义为 ^但在尝试的系统或变体中都不起作用也无法通过 acme.sh 的字段解析。预期机制是通过特定技巧组合在解释和解析层次中创建和使用字符以绕过 acme.sh 的 ACME 颁发流程。采用嵌套空格编码方式编码 shell 命令绕过过滤器得出新的有效负载。解开命令是对 Base64 编码内容进行解码并传输到 python3 标准输入。因 Linux 中文件路径组件最大长度限制需进行代码精简编写简单加载器连接回服务器读取并执行 Python 代码。在服务器上将 Python 反向 shell 管道输入解释器在另一个端口捕获 shell。acme.sh 客户端会无限期挂起不会触发错误唯一可疑迹象是标准的 Python3 解释器。有高权限 shell 可清理或保留 /tmp 中的利用代码/tmp 目录在系统重启时会清空痕迹。进程树显示 sh 运行 acme.sh 下有 python3 进程。成功利用漏洞需控制 ACME 客户端和 CA 响应的网络路由。总结一次假定合法的操作涉及秘密重定向网络流量颁发多个欺诈性 CA 签名证书因忘记更新证书或拆除拦截操作被发现。同时存在隐蔽的远程代码执行漏洞被利用窃听者可复制证书用于 TLS 拦截且不留痕迹。可能永远无法确切知道 jabber.ru 的 CA 签名 TLS 窃听事件发生了什么。时间线和概念验证漏洞利用表明ACME 协议虽严谨但运行协议的软件是薄弱环节ACME 客户端仍存在漏洞有恶意 CA 或控制网络路由时漏洞易被利用。事件发生后有博客探讨未来防范此类攻击。