CVE-2024-28085 Improper Neutralization of Escape Sequences in Wall

CVE-2024-28085 Improper Neutralization of Escape Sequences in Wall

💡 原文中文,约4300字,阅读约需11分钟。
📝

内容提要

CVE-2024-28085是Linux中的“wall”命令的漏洞,允许窃取管理员密码。该漏洞存在已久,可在Ubuntu 22.04上复现,但不影响Ubuntu上的GNOME终端。通过使用“wall”命令广播精心制作的消息,可以利用该漏洞欺骗用户认为其密码输入不正确并捕获密码。该漏洞可用于监视SSH登录并替换剪贴板数据。

🔎

延伸解读

漏洞影响范围与终端差异

该漏洞在 Ubuntu 22.04 上可复现,但 Ubuntu 20.04 无法复现,说明其触发与系统版本或 wall 命令的具体实现有关。此外,Ubuntu 自带的 GNOME Terminal 不受影响,因为它不接收 wall 发送的消息。这意味着使用其他终端模拟器(如 xterm、konsole 等)的用户可能面临风险,而 GNOME Terminal 用户则相对安全。

攻击原理与密码窃取链条

攻击者利用 wall 命令未对命令行消息进行转义序列处理的特点,广播精心构造的消息,诱使用户误以为密码输入错误而重新输入。重新输入的密码会被当作命令执行,由于命令不存在,系统会调用 command-not-found 脚本,攻击者通过监控 /proc/pid/cmdline 即可捕获密码。整个链条依赖于用户对终端显示的信任以及 wall 的广播机制。

利用后的终端状态与恢复

攻击者发送的转义序列可能隐藏光标、改变颜色或清空行,导致受害者终端显示异常,如不显示光标、输入不可见。若不进行恢复,终端将无法正常使用。因此,更完善的利用方式会在窃取密码后,再次通过 wall 发送恢复序列(如 \033[?25h 显示光标、\033[0m 重置格式),以降低被察觉的风险。

其他潜在利用场景

除了窃取 sudo 密码,该漏洞还可用于监控 SSH 登录过程,或通过监控 cat ~/.ssh/id_rsa.pub 等命令来替换剪贴板数据。这些场景都利用了 wall 广播消息欺骗用户,并结合对进程命令行的监控来获取敏感信息。攻击者可以根据目标环境灵活调整利用方式。

❓

Q&A

CVE-2024-28085是什么漏洞?

CVE-2024-28085是Linux中wall命令的漏洞,可能导致管理员密码被窃取。

该漏洞在什么系统上可复现?

该漏洞在Ubuntu 22.04上可复现,但不影响GNOME终端。

攻击者如何利用这个漏洞窃取密码?

攻击者通过wall命令广播虚假消息,诱使用户重新输入密码,从而窃取密码。

Escape Sequence在这个漏洞中有什么作用?

Escape Sequence用于控制终端中的文本格式,wall命令未对传递的消息进行处理,导致漏洞产生。

如何防范CVE-2024-28085漏洞?

用户应避免使用wall命令广播敏感信息,并定期更新系统以修复已知漏洞。

该漏洞的完整利用方式在哪里可以找到?

完整的利用方式可以参考原作者的GitHub仓库,链接为https://github.com/skyler-ferrante/CVE-2024-28085。

🏷️

标签

➡️

继续阅读