linux 提权-SUID提权

linux 提权-SUID提权,第1张

最近想着学习linux提权的一些姿势,这里简单分享学习SUID提权的一些知识点。

先来父复习一下linux文件权限分配。

ls命令用来查看系统上面的文件、目录的权限。

字段的第一个字符表示对象的类型。

之后是每三个字符为一组,每一组定义了3种访问权限。

这三组分别表示文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

然后规定用数字4、2和1表示读、写、执行权限。即r=4,w=2,x=1。

所以

chmod改变权限

chown用来更改某个目录或文件的用户名和用户组

该命令需要root权限运行

而文件权限除了r、w、x外还有s、t、i、a权限。

SUID

当执行的文件被赋予了s权限,就被称搜含猛为Set UID,简称为SUID的特殊权限。八进制数为4000。

举个例子:

linux修改密码的passwd就是个设置了SUID的程序。因为如果普通账号cseroad需要修改密码,就要访问/etc/shadow,但是该文件只有root能访问。那他是怎老雀么修改的呢?原理:

查看该程序,发现被赋予了s权限。当cseroad需要修改自己的密码时,passwd程序的所有者为root,cseroad用户执行passwd 程序的过程中会暂时获得root权限,所以可以修改/etc/shadow文件。

SGID

而当s标志出现在用户组的x权限时则称为SGID。八进制数为2000。

当用户对某一目录有写和执行权限时,该用户就可以在该目录下建立文件,如果该目录用SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组。(父目录跟随)

SBIT

就是Sticky Bit,出现在目录的其他用户执行权限X上,标记为世桥T,八进制数为1000。对目录有效,使用者只能对自己创建的文件或目录进行删除/更名/移动等动作,而无法删除他人文件(除非ROOT)

赋予s权限:chmod 4755 filename 或者 chmod u+s /usr/bin/find

取消s权限:chmod 755 filename 或者 chmod u-s /usr/bin/find

以centos为例。

还有额外的几个命令

我们就可以通过覆盖/etc/passwd文件,提权为root

默认该命令没有s权限

find命令

假如find命令被赋予s权限。

创建a.txt文件,执行 /usr/bin/find a.txt -exec /bin/bash -p \,成功提权。

这里注意的是新版Linux系统对子进程的suid权限进行了限制,不同的 *** 作系统结果也会不一样。

具体细节参考 https://cloud.tencent.com/developer/article/1674144

利用python可反d得到root权限的shell

python命令

根据 https://gtfobins.github.io/ 查找python利用姿势。

条件是sudo安装时需要输入当前用户密码。

在实战过程中,多查看 https://gtfobins.github.io/ 是否存在SUID提权,以及使用searchsploit命令查看某程序是否存在本地提权漏洞。

https://yoga7xm.top/2019/06/14/suid/

http://www.361way.com/suid-privilege/5965.html

一、UNIX下关于文件权限的表示方法和解析

SUID 是 Set User ID

SGID 是 Set Group ID

UNIX下可以型卖用ls -l命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这种表示方法一共有十位:

9 8 7 6 5 4 3 2 1 0

r w x r - x r - x

第9位表示文件类型,可以为卜岁逗p、d、l、s、c、b和-:

p表示命名管道文件

d表示目录文件

l表示符号连接文件

-表示普通文件

s表示socket文件

c表示字符设备文件

b表示块设备文件

第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限,其形式为rwx:

r表示可读,可以读出文件的内容

w表示可写,可以修改文件的内容

x表示可执行,可运行这个程序

没有权限的位置用 -表示

例子:

ls -l myfile显示为:

-rwxr-x— 1 foo staff 7734 Apr 05 17:07 myfile

表示文件myfile是普通文件,文件的所有者是foo用户,而foo用户属于staff组,文件只有1个硬连接,长度是7734个字节,最后修改时间4月5日17:07。

所有者foo对文件有读写执行权限,staff组的成员对文件有读和执行权限,其他的用户对这个文件没有权限。

如果一个文件被设置了SUID或SGID位,会分别表现在所雀余有者或同组用户的权限的可执行位上。例如:

1、-rwsr-xr-x 表示SUID和所有者权限中可执行位被设置

2、-rwSr–r-- 表示SUID被设置,但所有者权限中可执行位没有被设置

3、-rwxr-sr-x 表示SGID和同组用户权限中可执行位被设置

4、-rw-r-Sr-- 表示SGID被设置,但同组用户权限中可执行位没有被设置

其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是

1,表示有相应的权限:

11 10 9 8 7 6 5 4 3 2 1 0

S G T r w x r w x r w x

第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12397913.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存