linux 列目录漏洞,Linux sudo漏洞(CVE-2017-1000367)复现和利用思路分析

* 本文作者:李丽,本文属FreeBuf原创奖励计划,未经许可禁止转载

漏洞背景

在今年5.30日linux sudo被爆出存在安全漏洞,sudo版本是1.8.20以及之前的版本都有可能会受到漏洞的影响,在开启selinux的情况和普通用户在sudoer者中,可以使普通用户造成覆盖任意文件,造成权限的提升。

漏洞分析

出现漏洞主要在sudo中的/src/ttyname.c中的

char *get_proccess_ttyname()函数中,这个函数功能获取终端名称,会有多种方式获取终端名称,而此次漏洞是出现在根据读取/proc/pid/stat的方式先获取设备号,然后根据设备号获取设备名的函数中,如图所示:

cfd33ad9021b50785f7821e39a5e7795.png

从网上下了一个漏洞版本的1.8.18版本sudo源码,分析char *get_proccess_ttyname()函数的整体的执行流程。

2fcf58847e6a3a577ddd02a6291b8f5a.png

然后看一下读取/proc/pid/stat处的代码:

c5f30d3adf8fd3d10f736e25729f8235.png

可以看出是按照空格来区分来读取信息,也就是读取第7个空格之前的信息,也就是第7段的信息,百度了以下发现第7段的信息如果是非0的话就是代表设备号。[root@localhost ~]# cat /proc/6873/stat

6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56

这里面的第7项也就是34819就是当前终端的设备号,第2项a.out就是进程名字。

这里在回顾一下源代码中获取设备号的逻辑是判断有7个空格取空格前一项也就是第7项数据,第二项是进程的名字,漏洞就出现在这里,进程名字是我们可以可控的,那么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于Linux提权的脏牛漏洞CVE-2016-5195),我可以为你提供一些复现的步骤。请注意,这是一个严重的安全漏洞,仅用于测试和教育目的。 在开始之前,请确保你已经备份了你的系统和数据,因为这个过程可能会对系统造成损坏。 以下是复现脏牛漏洞的一般步骤: 1. 确认你的系统受到脏牛漏洞的影响。你可以使用以下命令检查: ```shell $ uname -r ``` 如果输出的内核版本在`3.0`到`4.7`之间(不包括两端),那么你的系统可能受到影响。 2. 下载并编译脏牛漏洞的测试程序,可以使用以下命令: ```shell $ git clone https://github.com/dirtycow/dirtycow.github.io $ cd dirtycow.github.io $ make ``` 3. 运行测试程序进行提权。请注意,这可能会对系统造成损坏,所以请谨慎操作。 ```shell $ ./test_dirtycow your_file_name ``` `your_file_name`是你想要修改的目标文件的路径。这个测试程序会尝试修改目标文件的权限,以实现提权效果。 4. 检查提权是否成功。你可以尝试运行一个需要超级用户权限的命令来验证。 ```shell $ sudo whoami ``` 如果输出结果为"root",那么你已经成功提权了。 请记住,在测试和复现漏洞时,务必遵守法律和道德准则。此外,确保你在合法的环境下进行测试,并获得了合适的授权。 希望这些步骤能帮助到你!如果你有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值