内容提要
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。