滥用 iTerm2 中的标题报告和 tmux 集成来执行代码

admin 2024年6月18日13:35:06评论12 views字数 1374阅读4分34秒阅读模式
 

回归变成了 RCE

我在这里跳过了对转义序列的介绍,因为我最近在上一篇文章中对它们进行了更详细的介绍。从安全角度来看,它们对于终端仿真器的作用就如同 XSS 对于浏览器的作用一样。

这篇文章是关于一个由于回归而导致的新错误,该错误仅影响 iTerm2 3.5.0 和 3.5.1(分别于 5 月 20 日和 6 月 11 日发布)。

在 3.5.0 之前的版本中,窗口标题报告被禁用。因此,您不能只使用以下命令检索终端窗口的标题并将其放入 中stdin

$ echo -e "e]21t"

:David Leadbeater 也独立注意到了这种回归,并在此处进行了报告:https://www.openwall.com/lists/oss-security/2024/06/15/1

窗口标题报告有什么问题?

Ps 2转义序列允许设置窗口标题。

一个例子:

echo -e "�33]0;This is the window title    a"

CSI Ps 21 t可用于检索该标题并将其放入,stdin如上所示。这使得利用变得非常容易,因为此时,用户只需按下 Enter 键,该标题中的任意代码就会顺利执行。

默认禁用标题报告的补丁:f1e89f78

https://gitlab.com/gnachman/iterm2/-/commit/f1e89f78dd72dcac3ba66d3d6f93db3f7f649219

Tmux 集成使情况变得更糟

iTerm2 中的原生 tmux 集成(默认启用)存在一个弱点,它允许偷偷报告标题,并且还提供了在报告标题后发送换行符的方法。

补丁:fc60236a

https://gitlab.com/gnachman/iterm2/-/commit/fc60236a914d63fb70a5c632e211203a4f1bd4dd

我可以得到那个甜蜜的 PoC 吗?

自己尝试一下:

docker run --rm  vin01/escape-seq-test:cve-2024-38396

或者

cat poc-iterm2-rce.txt

下载poc-iterm2-rce.txt

https://vin01.github.io/piptagole/assets/poc-iterm2-rce.txt

该文件包含此有效负载�33]2;s&open -aCalculator&a�33[21t x1bP1000p%session-changed s,它设置s&open -aCalculator&为窗口标题,然后检索它以执行并弹出计算器。

源代码:https://github.com/vin01/poc-cve-2024-38396

报告后 2 天内发布修复

升级到 iTerm2 3.5.2:https://iterm2.com/downloads.html

在 iTerm2 中启用设置之前请三思Terminal may report window title。它可能不值得冒安全风险,因为它允许任意文本最终出现,stdin这绝不是一个好主意。

https://vin01.github.io/piptagole/escape-sequences/iterm2/rce/2024/06/16/iterm2-rce-window-title-tmux-integration.html

原文始发于微信公众号(Ots安全):滥用 iTerm2 中的标题报告和 tmux 集成来执行代码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月18日13:35:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   滥用 iTerm2 中的标题报告和 tmux 集成来执行代码https://cn-sec.com/archives/2860334.html

发表评论

匿名网友 填写信息