HackerNews

HackerNews
OpenSSH 漏洞可让攻击者登录已禁用密码的 Linux 账户

OpenSSH 漏洞可让攻击者登录已禁用密码的 Linux 账户

给文章评分:

一个新披露的涉及 OpenSSH 和 musl 的漏洞,被称为 "*sshole",可让攻击者仅通过输入一个超长密码,就登录某些 Alpine Linux 及其他基于 musl 的 Linux 中配置为阻止密码认证的账户。

该漏洞仅在特定身份验证配置下,影响运行在使用 musl C 库的 Linux 发行版(包括 Alpine Linux、OpenWrt、Buildroot 和 Yocto)上的 OpenSSH 服务器。

发现并于今天公布该漏洞细节的安全研究员 Ozgun Kultekin 表示,该漏洞自 2016 年起就存在,源于 OpenSSH 在使用 musl C 库的系统上处理密码验证错误的方式。

可以通过在 / etc / shadow 文件中将 Linux 账户的密码哈希替换为星号(*)来配置其禁止密码登录。由于这不是有效的密码哈希,任何密码都不应能访问这些账户。

然而,OpenSSH 在 2016 年引入的一个补丁——用于修复一个追踪编号为 CVE-2016-6210 的用户名枚举漏洞——改变了 OpenSSH 处理没有可用密码哈希的账户的方式。

为防止攻击者通过不同的响应时间识别有效用户名,OpenSSH 被修改为即使账户没有可用的密码哈希(包括配置为用 * 阻止密码登录的账户)也执行密码哈希。

问题在于,musl C 库的 crypt() 函数在密码哈希失败时也会返回 *,包括在提交的密码超过其 256 字节限制时。

这意味着攻击者可以提交一个超长密码,使 OpenSSH 将返回的 * 与账户存储的 * 进行比较,从而导致成功登录。

需要明确的是,该漏洞不允许攻击者绕过具有有效密码哈希账户的密码。

Kultekin 表示,利用该漏洞需要满足以下条件:

OpenSSH 运行在基于 musl 的 Linux 系统上,例如 Alpine Linux、OpenWrt、Buildroot 或 Yocto。
PAM 身份验证被禁用,如 Alpine Linux 的 openssh-server 软件包中默认的那样。
SSH 密码身份验证已启用。
至少有一个账户的密码哈希为星号(*)。
另一个账户具有有效的密码哈希。

该研究员警告称,Alpine Linux 官方的 AWS 和 Azure 云镜像有一个受影响的默认 'alpine' 账户,具有无需密码的 'doas' 权限,这可能使攻击者获得 root 访问权限。

使用 glibc 的系统(包括 Debian、Ubuntu 和 Fedora)以及使用 PAM 身份验证的系统不受此攻击影响。

Kultekin 表示,他使用 AI 智能体发现了该漏洞,这些智能体使用不同的 OpenSSH 配置、畸形密码哈希和超长密码运行了约 17,600 次身份验证测试。

该漏洞已在 OpenSSH 10.6p2 中修复,建议 Alpine Linux 管理员使用 apk upgrade openssh 更新其 OpenSSH 软件包。

无法立即安装更新的管理员可以通过在其 SSH 服务器配置中设置 PasswordAuthentication no 并重启 SSH 来关闭 SSH 密码身份验证,从而缓解该问题。

Kultekin 表示,管理员还可以通过检查 SSH 身份验证日志中那些本不应允许密码登录的账户的密码登录记录,来查找利用迹象。

在 Alpine Linux 上,以下命令可以显示成功的 SSH 密码登录:

grep "Accepted password" / var / log / messages

如果日志显示 alpine 账户成功的密码登录,管理员可以检查该账户是否已禁用密码身份验证:

grep '^alpine:' / etc / shadow

如果该账户的密码字段包含 *,但 SSH 日志显示成功的密码登录,则可能表明该漏洞已被利用。


消息来源:bleepingcomputer.com;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文
分享到:
hackernews

hackernews

该作者暂无简介