干!干货!SUID提权的几种方式

SUID(Set User ID)提权是一种利用系统中设置了 SUID 权限的文件来提升自身权限的技术。在 Linux 系统里,当一个文件被设置了 SUID 权限后,用户执行该文件时,会以文件所有者的身份来运行。例如,当普通用户运行一个设置了 SUID 权限且属主为 root 的文件时,该用户在执行过程中将临时获得 root 权限。

首先需要使用find命令去搜寻哪些命令具有SUID权限,直接一步到位,查找所有者为root的文件,同时匹配具有 SUID 权限的文件。

find / -user root -perm -u=s -type f 2>/dev/null

 

-user root:表示所有者为root

-u=s:限制匹配具有SUID的文件

-type f:表示只搜寻文件类型

2>/dev/null:文件描述符为2表示标准错误,把命令执行过程中产生的错误信息重定向到 /dev/null,也就是将错误信息丢弃,不在终端屏幕上显示,避免产生的大量错误信息干扰查找结果。

Find提权

在执行find命令的过程中利用exec参数来指定其他的命令。为了实验,我们需要给find命令赋予SUID权限。在执行find命令过程中又执行whoami命令,因为在执行find命令过程中权限为root,所以会临时获得root权限。

chmod u+s /usr/bin/find

首先创建一个文档,因为使用find命令时,文档是必须存在的。

find 123.txt -exec whoami \;

 

使用find开启一个临时的shell,就可以使用root身份执行命令了

find 123.txt -exec /bin/sh -p \;                      -p是为了维持权限

 

 cp提权 

在执行cp复制文件命令时,就会是root权限,为了实验,也需要给cp命令赋予SUID权限。

 chmod u+s /usr/bin/cp

 我们知道/etc/passwd 是 Linux 系统中存储用户账户信息的核心配置文件,所有用户(包括系统用户和普通用户)的基本信息都存储在此。

我们使用cp命令,将/etc/passwd中的内容复制到一个新的文件中,在这个新文件中我们使用普通用户权限就可以进行修改,我们在里面新添加一个拥有root权限的用户,再把文件复制回去,我们就可以用新用户登录,这样就是root权限了。

cp /etc/passwd 123.txt

passwd文件的内容格式为

用户名:密码占位符:用户ID(UID):组ID(GID):注释信息:家目录:默认Shell

随后使用命令生成一个新用户的加密密码,再按照root用户的格式添加

首先使用openssl生成一个随机盐(salt)

openssl rand -base64 16     生成一个长度为 16 字节的随机盐值,并以 Base64 编码输出

 再使用salt生成加密后的密码

openssl passwd -6 -salt OkSMPVA/N5ozKrYmGAnIfQ== test   (test为密码)

-6 表示使用 SHA-512 算法

有了加密后的密码,我们在复制出的123.txt文本文件中新增用户,按照root的格式新增。

再把123.txt文件中的内容复制回/etc/passwd文件中

cp 123.txt /etc/passwd

最后提权成功

ftp提权

和之前一样的,为了实验,也需给ftp命令赋予SUID权限

提权成功

### SUID方法 当文件设置了SUID位之后,任何运行该程序的用户都会暂时获得拥有者限。这可以被利用来进行操作。为了设置或移除SUID位,可使用`chmod`命令: ```bash chmod u+s filename # 设置SUID位 chmod u-s filename # 移除SUID位 ``` 一旦某个二进制文件具有了SUID限,攻击者可以通过执行此文件来获取更高的限[^2]。 #### 利用SUID进行的具体实例 假设存在一个带有SUID标志的应用程序允许用户修改其行为或参数,则可能成为潜在的安全风险点。例如,如果`/usr/bin/cp`这样的常用工具意外地获得了SUID属性,那么就可以创建恶意脚本并将其复制到受信任的位置从而实现非法访问控制升[^3]。 具体来说,下面是一个不安全的操作案例展示如何滥用这种机制完成过程: ```bash sudo sh -c 'cp $(which cp) .; chmod +s ./cp' ``` 这段代码的作用是从系统的路径中找到真正的`cp`命令位置,并将其副本放置于当前工作目录下;接着赋予新拷贝后的`cp`命令以SUID限。这意味着现在任何人都能以root的身份执行这个本地版本的`cp`指令。 ### CP技巧 对于CP(即copy命令),通常情况下它并不具备直接导致的能力。但是,在某些特殊场景里——比如上述到的情况或是其他形式误配置的情况下——它可以作为辅助手段参与到更复杂的攻击链路之中。特别是当管理员错误地授予了像`cp`这类基本实用程序额外特时,就有可能让普通用户绕过正常的安全限制而达到目的。 需要注意的是,以上描述仅用于教育和技术交流用途,请勿尝试在未经授许可的前下实施此类行动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值