该漏洞利用代码已获美国政府批准公开发布。特别感谢负责批准该文档无限分发的军人和政府联络人员。请参阅以下 OTR 编号:
日期: 20220516 0123H UTC
漏洞利用作者: Henry Reed, The Aerospace Corporation
厂商主页: https://fidelissecurity.com/
受影响版本:
测试于:
CVE: CVE-2022-0997
CVE 描述: Fidelis Network and Deception 的 CommandPost、Collector 和 Sensor 组件中存在不正确的文件权限,使具有本地 CLI 管理访问权限的攻击者能够修改受影响的脚本文件,从而在 root 用户随后登录时以 root 身份运行任意命令。该漏洞存在于早于 9.4.5 的 Fidelis Network and Deception 版本中。已有补丁和更新可用于解决此漏洞。
/etc/profile.d/ 目录中的脚本会在登录时启动。fidelis 用户拥有 login.sh 脚本,这使 fidelis 用户可以任意修改该文件。当 root 用户随后登录时,该脚本会被启动,从而使攻击者能够以 root 身份执行任意代码。
建议受影响的 Fidelis Deception 或 Fidelis Network 用户更新其软件以修补此漏洞。同时建议所有用户(无论是否受此漏洞影响)在初始配置后禁用对其 Fidelis 产品的 shell 访问。
如果由于某种原因这两种方式都不可行,本文档中描述了针对该漏洞文件的缓解措施。就作者的测试而言,用户似乎需要先利用此漏洞提升权限,然后才能应用所描述的缓解措施,因此强烈建议更新 Fidelis 并禁用 SSH。
测试于:
/etc/profile.d/login.sh 上错误配置的所有权权限使 fidelis 用户能够在多个 Fidelis 产品中将权限提升至等同于 root 用户。每次用户打开 shell 时,/etc/profile.d 中的脚本都会启动。该文件归 fidelis 用户所有,这使得 fidelis 用户可以任意修改脚本,并在 root 用户登录时运行任意代码,例如反向 shell。
$ vim /etc/profile.d/login.sh
该漏洞最初是通过 LinPEAS 发现的,这是一个 Linux 权限提升枚举脚本:

注意红色高亮显示的文本:“You have write privileges over /etc/profile.d/login.sh”(您对 /etc/profile.d/login.sh 拥有写入权限)。红色高亮输出表明对该漏洞利用的有效性具有高置信度。
LinPEAS 披露的每一类潜在漏洞利用都附带指向 nook.hacktricks.xyz 上指南的链接,该指南解释了如何利用该漏洞。经过快速阅读,决定通过 Python2 建立反向 shell 是利用此漏洞的最简单方式;不过,也可以使用任何其他代码。新代码从 if 语句 if [[ $(whoami) = root ]] 开始:

在将反向 shell 添加到 login.sh 后,我们通过手动以 root 用户身份登录来模拟 root 登录。请注意,在现实世界中,攻击者必须等待管理员手动以 root 用户身份登录。

随后攻击者获得一个 root 反向 shell:

将 /etc/profile.d/login.sh 的用户和组所有者更改为 root:root,并且仅允许“其他”类别的用户对 /etc/profile.d/login.sh 具有读取和执行权限,即可缓解此漏洞:
