这两天看到一个新闻让我很是震惊,linux上最常用的命令之一, 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.

如何利用漏洞

我根据下面这篇文章,进行问题复现,

https://www.sudo.ws/alerts/minus_1_uid.html

我使用的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居然有漏洞?相关推荐

  1. linux sudo权限_Linux Sudo 被曝漏洞,可导致用户以 root 权限运行命令

    聚焦源代码安全,网罗国内外最新资讯!编译:奇安信代码卫士团队 Linux 用户要注意了!几乎所有基于 UNIX 和 Linux 的操作系统上安装的核心命令,也是最重要.最强大也最常用的工具 Sudo中 ...

  2. sudoers 用户权限配置_Linux 用户注意!针对Sudo 被曝漏洞,厂商已发布最新版本...

    联系.投稿.爆料,请加有料君微信:clouder007 作为 Linux 中最常使用的重要实用程序之一,Sudo 几乎安装在每一款 UNIX 和 Linux 发行版上,以便用户调用和实施核心命令.然而 ...

  3. 【笔记】web安全基础

    web安全基础 前言: 自己总结的web安全基础知识,部分未写完,以后有时间会完善,希望能帮到需要的人. 渗透测试 一.概念 ​ 渗透测试(penetration testing|pentest)是实 ...

  4. sketchup 255个su常用插件)_SketchUp领域的知乎,有胆来问!

    你知道知乎.豆瓣.果壳-- 但你可能不知道[问吧] 这是一个 SketchUp 领域的知乎 (点击文末"阅读原文"可直接进入[问吧]) 你可以找到关于 SketchUp 的任何话题 ...

  5. 【转】sudo命令情景分析

    文章转自:http://www.cnblogs.com/hazir/p/sudo_command.html Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全部的 root 命令.本 ...

  6. Centos服务器常用安装指南

    Centos服务器常用安装指南,推荐centos7.x系统 1. 新增oper用户(root下操作) useradd oper # 修改密码:根据提示输入两次密码 passwd oper 2. 将op ...

  7. 总结了一下Ubuntu常用命令

    我特意总结了一下Ubuntu常用命令 sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到"root ...

  8. Sudo bug 可导致非权限 Linux 和 MacOS 用户以根身份运行命令

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 苹果公司的研究员 Joe Vennix 在 sudo 中再次发现了一个重要漏洞,在某种特定配置下可导致低权限用户或恶意程序以管理员(根) ...

  9. 升级Linux下的sudo

    1.sudo 命令情景分析 介绍 Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全部的 root 命令.本文就对我们常用到 sudo 操作情景进行简单分析,通过一些例子来了解 su ...

最新文章

  1. Oracle-ORA-01722 invalid number错误
  2. 50兆 svg 文件超过_用svg+css3实现支付宝App波浪功能
  3. 学学python(4):面向对象及类,模块
  4. python 线型_CCF 202006-1 线性分类器 python
  5. python-面向对向-实例方法的继承
  6. java.util.zip.zipexception_Java 压缩zip异常,java.util.zip.ZipException: duplicate entry: 问题...
  7. ssh进入docker容器_如何通过SSH进入正在运行的容器
  8. ITK在vs2010下安装、搭建
  9. Android ViewModel组件详解
  10. 手把手教你玩转YOLOX--Windows(上)
  11. 为什么会有 Ajax?
  12. 手机5g什么时候普及_5g什么时候普及民用
  13. BSides Noida CTF 2021 web题wowooofreepoint writeup(两道反序列化)
  14. spring boot 整合 云之讯 demo
  15. 7-29 删除字符串中的子串
  16. MP4/MOV/3GP文件的“ftyp”(转)
  17. 美图android手机刷机教程视频,美图M6刷机教程 美图M6线刷救砖教程
  18. 加餐2 | 银行与券商
  19. 数据结构(C语言版第2版)课后习题答案
  20. 腾讯迁移至阿里云播放器

热门文章

  1. 从零开发短视频电商 隐藏业务ID以及缩短业务链接
  2. 【R语言】典型相关分析,自写函数计算相关系数
  3. mysql数据库统计人数_统计人数 数据库
  4. Swift5 字符串(String)操作
  5. Aseprite动画技巧
  6. 【多目标跟踪论文阅读笔记——2021年CVPR论文粗读记录】
  7. 禁止ios版本上拉回弹效果
  8. PAJ7620u2手势模块
  9. python好学么零基础_python编程好学吗 自学行吗
  10. 135编辑器的html,百度编辑器 整合135编辑器