漏洞总结:MAD Bugs: Even "cat readme.txt" is not safe 漏洞概述 这是一个针对 iTerm2 终端模拟器的安全漏洞。漏洞源于 iTerm2 的 SSH 集成功能(Conductor)存在信任失败(Trust Failure)。 原理:iTerm2 在 SSH 会话中会解析特定的终端转义序列(OSC 135 和 DCS 2080p)来与远程端的辅助脚本(Conductor)通信。 攻击向量:攻击者可以构造一个包含伪造的 Conductor 协议的文本文件(如 )。当用户在 iTerm2 中执行 时,iTerm2 会错误地将文件中的伪造序列识别为合法的 Conductor 指令。 后果:iTerm2 会执行伪造的指令,包括运行 和 等命令,最终导致在本地执行任意代码(Arbitrary Code Execution)。 影响范围 受影响软件:iTerm2。 触发条件:用户在 iTerm2 中查看包含恶意构造内容的文件(例如执行 )。 利用方式:无需远程连接,本地文件读取即可触发。 修复方案 修复状态:漏洞已在 iTerm2 的 commit 中修复。 注意:截至文章发布时,该修复尚未发布到稳定版本(Stable Releases)。 POC 代码与利用步骤 1. 生成 POC 文件的脚本 ( ) 使用 工具生成利用文件: 2. 生成的利用文件结构 上述脚本会生成以下文件: :一个可执行的辅助脚本。 :包含恶意的 DCS 2080p 和 OSC 135 序列的文件。 3. 利用步骤 为了成功利用,需要执行以下操作: 1. 确保目录中存在 可执行文件。 2. 在 iTerm2 中运行: 3. iTerm2 解析 中的伪造协议,最终执行 ,实现代码执行。 4. 核心利用逻辑简述 包含伪造的 DCS 2080p 钩子和 OSC 135 回复。 iTerm2 误认为这是合法的 SSH Conductor 会话。 伪造的 OSC 135 消息模拟了 和 的响应。 最终,iTerm2 构造并执行一个 命令,其 payload 经过 base64 编码后,最后一块数据解码为 ,从而执行本地恶意脚本。