suid(特殊权限位)提权

本文介绍了SUID权限的概念及其在Linux系统中的应用。通过实例展示了如何使用passwd命令(拥有SUID权限)以非root用户身份修改/etc/shadow文件,解释了SUID权限使得用户能够临时提升权限执行特定命令。同时,警告了滥用带有SUID权限的危险命令如rm、vim和cat可能导致的安全风险,并提供了利用这些命令提权到root的示例。
摘要由CSDN通过智能技术生成

一、suid                         特殊权限

操作对象:  /etc/shadow              存放用户密码的文件
[root@oldboy /]# ls    /etc/shadow   -l
----------. 1 root root 1240 8月  31 01:36 /etc/shadow         #没有权限
[root@oldboy ~]# md5sum    /etc/shadow                          #做指纹
31d2d9e77650c8bd5a62b3ba88d48b1f    /etc/shadow


[oldboy@oldboy ~]$ whoami
oldboy
[oldboy@oldboy ~]$ passwd                      #修改了/etc/shadow
更改用户 oldboy 的密码 。
passwd:所有的身份验证令牌已经成功更新。

[root@oldboy ~]# md5sum /etc/shadow
9b20feb1326830523f02d505edab451d  /etc/shadow      #与前面的md5不一样,说明文件里已经改了

问题:oldboy用户使用passwd命令修改密码===改的文件/etc/shadow
因为/etc/shadow没有任何权限,所以oldboy使用passwd命令理论上没有办法修改/etc/shadow
而实际上确修改了,为什么呢?

答案:问题出在passwd命令身上,这个命令被设置了特殊权限位(suid)。

suid作用
1.针对二进制命令。(面向的对象是二进制命令)
2.给passwd命令设置了suid,则任何用户执行passwd命令都会拥有和passwd命令对应的用户的权限
[root@oldboy ~]# ls   -l    /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 4月   1 2020 /usr/bin/passwd

解析:pssswd命令在 /usr/bin/passwd目录下, /usr/bin/passwd目录对应的用户是root。即所有用户在执行passwd命令的时候都会获得root用户权限(rws)。

权限位

普通权限:9位    前三位    中三位    后三位
特殊权限:3位 

suid:用户
前三位用户位的x位:S s(x)            #用户位原来没有x的时候,是S;用户位原来有x的时候,用s代替x。
s 4
sgid:用户组
中三位用户组位的x位:S s(x)
s 2
粘滞位: /tmp(应用:/tmp里面的文件可以动,但是/tmp本身不能动)
后三位其他用户位:x位:T t(x)
t 1

二、实例应用

1)需求  oldboy用户无法删除文件,需要给rm命令增加s权限,需要在rm命令目录文件上增加s.

[root@oldboy ~]# chmod    4755    `which rm`
[root@oldboy ~]# ls   -l   `which rm`
-rwsr-xr-x. 1 root root 62872 8月  20 2019 /usr/bin/rm

或者
[root@oldboy ~]# chmod    u+s    `which rm`
[root@oldboy ~]# ls    -l    `which rm`
-rwsr-xr-x. 1 root root 62872 8月  20 2019 /usr/bin/rm

[root@oldboy /]# ls    -l    /bin/rm
-rwsr-xr-x. 1 root root 62872 8月  20 2019 /bin/rm

工作中绝对不能用suid提权,特别是本身有危害的命令:
passwd命令属于绿色无害命令

rm,vim,cat都是有害命令,防不胜防

2)test用户通过设置了suid的vim命令提权到root实践:
1.chmod      u+s    /bin/vim                 #必须root用户下
2.vim    /etc/sudoers                           #vim /etc/sudoers==visudo,在test用户下
test        ALL=(ALL)     NOPASSWD:ALL
3.sudo    su   -   root                           #切到root

3)利用cat命令被设置suid漏洞,提权到root权限

chmod    u+s     /bin/cat                   #企业人员设置
注意提前备份/etc/sudoers,否则可能操作不当破坏sudoers文件

[root@oldboy ~]# cat     >>/etc/sudoers             #先回车再输入内容
test       ALL=(ALL)       ALL
[root@oldboy ~]# tail    -1    /etc/sudoers
test    ALL=(ALL)    ALL

sudo    su    -    root                   #在text用户下执行

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RootZY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值