sudo漏洞实例分析
本篇内容介绍了“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漏洞实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
新闻名称:sudo漏洞实例分析
本文网址:http://pwwzsj.com/article/ipcgoo.html