资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

linux提权命令序列表 linux 提权命令

linux 提权-SUID提权

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

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站制作、大观网络推广、微信小程序定制开发、大观网络营销、大观企业策划、大观品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供大观建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

先来父复习一下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权限进行了限制,不同的操作系统结果也会不一样。

具体细节参考

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

python命令

根据 查找python利用姿势。

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

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

linux如何查看当前用户sudo可以使用哪些命令

ssh 远程控制程序。

sudo 提权命令。

你要不会用请不要尝试。

配置sudo的配置文件在/etc/sudoers里面,一般通过visudo命令来安全打开编辑。查看/etc/sudoers的用法可以使用命令: man 5 sudoers。在/etc/sudoers文件里面主要包括这两部分:

1. 别名设置

别名主要包括这几种:User_Alias,Host_Alias,Runas_Alias,Cmnd_Alias,分别是用户别名,主机别名,运行用户别名,命令别名。设置这几个别名的命令主要是为了配置方便,这个很类似linux用户群组或是数据库中角色的作用,有了别名便可以批量的赋予权限。

设置方法 Alias_Type alias_name = name1, name2, name3, 例如User_Alias User1 = user1, user2, user3。其他类型的alias设置方法类似。

2. 真正的sudo entry

这个就是真正配置哪些用户可以使用哪些命令了(你甚至可以不使用别名设置那部分)。

格式为:用户名(用户别名) 主机名(主机别名)=[(运行用户或是Runas_Alias)可选] [tag可选] 可以执行的命令(或Cmmd_Alias) 这样描述语法很生硬,不易理解,举例子

user1 host1 = /bin/kill # user1 可以在host1上使用命令/bin/kill

user1 host1 = NOPASSWD: /bin/kill # user1 可以在host1上使用命令/bin/kill 同时可以不必输入密码(这里就是使用了NOPASSWD

# 这个tag,默认是PASSWD)

user1 host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls # user1 可以在host1上使用命令/bin/kill无需输入密码,但是使用/bin/ls则需要输入密码

user1 host1 = (opterator) /bin/kill # user1 可以在host1上使用命令/bin/kill但是必须是以operator用户运行这个命令,等价于

# su -u opertor /bin/kill

user1 host1 = (:group_name) /bin/kill # user1 可以在host1上使用命令/bin/kill,且必须以group_name这个用户群组里面的用户来运行。

%group_name host1 = /bin/kill # 所有group_name里面的用户都可以在host1上执行/bin/kill(linux中一般代表整个用户群组用

# %group_name)

再举个实际例子,我之前对sudo su这个命令不理解,为什么我可以直接就su到root用户了呢,连密码都不需要?查看了一下sudoers文件才知道原来里面有这么一行:

xxx ALL=NOPASSWD: /bin/su

Linux里面提权命令是什么?

在 Linux 系统中,提升权限的常用命令是 sudo。

sudo (superuser do)是一种 Linux 命令,允许普通用户在需要时执行具有特殊权限的命令,而无需切换到超级用户帐户。

例如,要执行具有特殊权限的命令,如安装软件或修改系统配置文件,可以在命令前面加上 sudo。 例如 :

sudo apt-get install package-name

这个命令会让你输入你的密码,如果你是一个有权限的用户,那么你的命令将会被执行。

需要注意的是,使用sudo命令需要输入密码,并且在一定时间内不需要再次输入密码,所以使用sudo需要谨慎,并且如果使用错误可能会破坏系统。

Linux用户权限管理命令

Linux系统中的用户是分角色的,用户的角色是由UID和GID来识别的(也就是说系统是识别的是用户的UID、GID,而非用户用户名),一个UID是唯一(系统中唯一如同身份证一样)用来标识系统的用户账号(用户名)。

文件的用户与用户组分为超级管理员,普通用户和系统用户。

1)超级管理员的UID=0,GID=0,也可以这么说系统只要是识别出某个用户的UID\GID都为0时,那么这个用户系统就认为是超级管理员。

2)普通用户(管理员添加的),默认它的UID\GID是从500-65535,权限很小,只能操作自己的家目录中文件及子目录(注:nobody它的UID\GID是65534)。

3)系统用户,也称虚拟用户,也就是安装系统时就默认存在的且不可登陆系统,它们的UID\GID是1-499。

我们可以通过cat /etc/passwd命令来查看所有的用户信息,例如下图,第三列是UID,第四列是GID:

创建用户

useradd user1 创建用户user1

useradd -e 12/30/2021 user2 创建用户user2,有效期到2021-12-30

设置用户密码

passwd user1 设置密码,有设置密码的用户不能用

这里设置密码时可能会碰到密码保护机制问题,这里需要注释掉保护机制的问题

这个时候需要在编辑/etc/pam.d/system-auth文件,将其中的password requisite

和password sufficient两行注释掉,如下图:

创建用户组

groupadd –g 888 users 创建一个组users,其GID为888

groupadd users 不用g参数,使用默认的组ID

命令 gpasswd为组添加用户

只有root和组管理员能够改变组的成员:

gpasswd –a user1 users 把 user1加入users组

gpasswd –d user1 users 把 user1退出users组

命令groupmod修改组

groupmod –n user2 user1 修改组名user1为user2

groupdel删除组

groupdel users 删除组users

真正从安全性角度上来考虑的话,是要控制用户一定执行命令的权限,也就是哪些用户可以执行哪些命令,不可以执行哪些命令,因此也就有了sudo这个应用,对于sudo提权,也就是修改/etc/sudoers的配置文件。

linux用户提权方法

 1、添加用户,首先用adduser命令添加一个普通用户,命令如下:

#adduser tommy

//添加一个名为tommy的用户

#passwd tommy //修改密码

Changing password for user tommy.

New UNIX password: //在这里输入新密码

Retype new UNIX password: //再次输入新密码

passwd: all authentication tokens updated successfully.

2、赋予root权限

方法一: 修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉

## Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

然后修改用户,使其属于root组(wheel),命令如下:

#usermod -g root tommy

修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。

关于Linux系统提权,很少听说它的提权,谁可以为我说说,谢谢啦

就是普通用户利用各种系统漏洞把自己的用户权限提升为root级的过程, 通常属于黑客手段。


名称栏目:linux提权命令序列表 linux 提权命令
网页链接:http://cdkjz.cn/article/dooeehs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220