Linux suid 提权
SUID (Set owner User ID up on execution) 是给予文件的一个特殊类型的文件权限。在 Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
查找suid文件
find / -perm -u=s -type f 2>/dev/null
/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/ dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
利用方式:
find命令
sudo find . -exec /bin/sh \; -quit
chmod命令
sudo sh -c 'cp $(which chmod) .; chmod +s ./chmod'
ash,linux shell
sudo ash
cp命令
sudo sh -c 'cp $(which cp) .; chmod +s ./cp'
更多suid利用方式:https://gtfobins.github.io/gtfobins
转载一个白帽汇的文章
因此对于sudo命令来说,通过向/etc/sudoers
配置文件添加特殊的指令,就可以让某个用户以另一个用户的身份运行命令。
例如,下面的命令可让用户test
以任意非root
身份运行/usr/bin/vim
和/usr/bin/id
命令。
test ALL = (ALL, !root) /usr/bin/vim
test ALL = (ALL, !root) /usr/bin/id
对于test
用户,他可以使用一个带-u
参数的sudo命令来指定运行命令的身份。例如,下面的命令将以用户bleep-test
的身份启动vim。
sudo -u bleeping-test vim
在Linux中创建用户时,每个用户都有一个UID。如下所示,用户test
的UID为1001,用户bleep -test
的UID为1002。
而在使用sudo命令时,你也可以直接指定用户的UID来代替用户名。例如,下面的命令将再次以bleep-test
身份启动vim,只不过这一次是通过指定用户的UID。
sudo -u#1002 vim
sudo漏洞
苹果安全研究员Joe Vennix就在sudo上发现了一个漏洞,只要用户在使用sudo命令时指定UID为-1
或4294967295
,就可以以root
身份执行命令。
这是因为命令在将UID转换为对应用户时,会将-1
或4294967295
这两个异常数字视为0
,而0
是root
用户的UID
例如,下面的命令就可以利用这个漏洞以root身份运行/usr/bin/id
,即使/etc/sudoers
文件明确拒绝用户test
这样做。
sudo -u#-1 id
此时通过/usr/bin/id
命令可以清楚看到权限得到了提升。
虽然这个漏洞看似非常强大,但是必须记住,它只能在某个用户通过sudoers
文件的配置访问某个命令的权限时才能生效。如果不是这种设置——大多数Linux发行版默认都不是——那么这个漏洞将不会产生任何影响。
利用漏洞
为了真正利用这个漏洞,用户首先需要为某个能执行其他命令的命令配置好sudoer
文件。
例如,我们可以针对vim命令做如下配置:
test ALL = (ALL, !root) /usr/bin/vim
在vim编辑文件时,用户可以使用:!
符号启动另一个命令。例如,你可以输入!ls
以当前文件夹为目标执行ls
命令。
如果我们利用sudo -u#-1 vim
命令来利用这个漏洞,vim将以root
身份启动。你可以通过执行!whoami
命令来确认这一点。
现在,我们可以确认vim以root身份启动,而它执行的任何命令也是以root
身份运行。
因此,我们可以很轻易地用它来启动一个root
权限的shell,执行任何命令。下面就演示了这种攻击。
综上所述,这个漏洞影响范围非常有限,它只能影响小部分非标准配置的Linux服务器。
对于那些为经常使用sudoers文件的用户,应尽快将软件升级到sudo 1.8.28或更高版本。
Linux suid 提权的更多相关文章
- Linux提权-suid提权
0x1 suid概念 通俗理解为其他用户执行这个程序是可以用该程序所有者/组的权限 0x2 suid提权 简单理解为,一个文件有s标志(权限中包含s),并且对应的是root权限,那么当运行这个程序时就 ...
- Linux下用SUID提权
关于SUID详细:Linux下的用户.组和权限 SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得 ...
- Linux常见提权
常见的linux提权 内核漏洞提权 查看发行版 cat /etc/issue cat /etc/*-release 查看内核版本 uname -a 查看已经安装的程序 dpkg -l rpm -qa ...
- linux 全自动提权 exp perl脚本
linux 全自动提权 exp perl脚本 作者: admin 日期: 2013/01/19发表评论 (0) 查看评论 国外流传过来的 地址 http://dl.packetstormsecur ...
- Linux下提权常用小命令
有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么 ...
- linux关于suid提权笔记
suid全称是Set owner User ID up on execution.这是Linux给可执行文件的一个属性,上述情况下,普通用户之所以也可以使用ping命令,原因就在我们给ping这个可执 ...
- Os-hackNos-1(drupal7+suid提权)
一.信息收集 得到 ip是 192.168.56.101 , 端口开启了22和80,扫目录发现drupal 7 访问一下呢 在exploit-db上面搜索到存在相关的漏洞,而且是用直接上msf 使用第 ...
- linux 内核提权
不经意间找到了大牛总结的一些Linux提权exp 我直接借花献佛分享给大家 #CVE #Description #Kernels CVE-2017-1000367 [Sudo] (Sudo 1.8.6 ...
- Linux用户提权管理方案
提权管理方案背景: 如果一个公司有10余个运维或网络安全人员,同时管理服务器,切换到管理员用户时(su - root),必须要有root管理员密码,如果其中一人修改过root密码,其他用户则登录不了, ...
随机推荐
- SSM整合案例:图书管理系统
目录 SSM整合案例:图书管理系统 1.搭建数据库环境 2.基本环境搭建 2.1.新建一个Maven项目,起名为:ssmbuild,添加web的支持 2.2.导入pom的相关依赖 2.3.Maven静 ...
- Spring Cloud学习 之 Spring Cloud Hystrix(使用详解)
文章目录 创建请求命令: 定义服务降级: 异常处理: 异常传播: 异常获取: 命令名称,分组以及线程池划分: 创建请求命令: Hystrix命令就是我们之前说的HystrixCommand,它用来 ...
- Java常用关键字总结
1.abstract abstract修饰类,表示抽象的意思,抽象类可以含有非抽象变量和成员变量,也可以有普通方法和构造方法,但是不能被实例化(接口),但是可以被子类继承. public abstra ...
- 一些常见的pro文件配置
UI_DIR = ./ui #ui文件目录 TARGET = Test #最终生成目标名 DESTDIR = $$PWD/../test #目标生成目录,$$PWD表示当前目录下 DLLDESTDIR ...
- 字节码编程,Javassist篇一《基于javassist的第一个案例helloworld》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 目录 @ 目录 目录 一.前言 二.开发环境 三.案例目标 四.技术实现 五.测试结果 1. ...
- MATLAB与三大变换
运行 Simulink 有三种方式: z 在 MATLAB 的命令窗口直接键入“Simulink”并回车: z 单击 MATLAB 工具条上的 Simulink 图标: z 在 MATLAB 菜单上选 ...
- poi excel自动转换成javabean 支持引用类型属性二级转换
最近项目需要使用excel导入功能,导入学生的时候需要指定所在班级,使用excel一次性导入! 将以前的代码改改支持属性内引用类的转换. 测试对象为User对象,javabean结构: private ...
- 2020年腾讯实习生C++面试题&持续更新中(2)
2020年腾讯实习生C++面试题&持续更新中(2) hello,大家好~ 我是好好学习天天,天天编程的天天,一个每天都死磕技术,及时分享的技术宅~ 昨天分享的题目不知道大家是否看过了,以后我计 ...
- Reids的面试题
1.什么是Redis?简述它的优缺点? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到 ...
- 运行web容器实例