zoukankan      html  css  js  c++  java
  • 【漏洞复现】之sudo提权漏洞(CVE-2019-14287)复现

    (本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)

    该复现参考网络中的文章,该漏洞复现仅仅是为了学习交流,严禁非法使用!!!

    一、简介

    sudo:Linux系统命令,让普通账号以root身份去执行某些命令,如,安装软件、查看某些配置文件、关机、重启等操作,如果普通账号需要使用sudo需要修改配置文件/etc/sudoers,将sudo使用权限赋予该账号

    • sudo提权漏洞是一个安全策略绕过问题,去执行某些敏感的命令,CVE编号是CVE-2019-14287,影响的版本是:<1.8.28

    二、漏洞复现过程

    靶机:Ubuntu 18 x64系统

    1.查看sudo版本,并创建test用户

    1 sudo -V  查看sudo版本
    2 useradd test  添加test用户
    3 passwd test  为test用户设置密码

    2.修改sudo配置文件:在root ALL=(ALL:ALL) ALL下面添加一行配置test    ALL=(ALL,!root) ALL

    sudo gedit /etc/sudoers  使用文本编辑器打开sudo配置文件

    1 test    ALL=(ALL,!root) ALL
    2     test  表示test用户
    3     第一个ALL表示该用户可以在任意地方使用sudo
    4     第二个(ALL,!root)  表示命令可以被除了root以外的任意用户执行
    5     最后一个ALL  表示被允许执行
    • 整体表示:test用户可以使用sudo,以除了root以外的任意用户去执行命令

    3.切换到test用户,su test,然后进行测试

    sudo id  查看root用户的ID

    • 由上图可以看到,使用命令报错
    • 解决方法:sudo -u#数字 命令,其中数字是范围:-1~4294967295,命令是系统命令
    • 如果要以root身份去执行命令,数字使用-1或4294967295,至此漏洞复现成功!!
      • 命令中的数字是id号,可以在/etc/group中查看

    • 解释:使用 sudo -u#id 指定用户 id 去执行命令,由于可以指定id,所以可以使用-u#-1或者-u#4294967295绕过限制,从而以root身份去执行任意代码。这是因为 sudo 命令本身就已经以用户 ID 为0运行,因此当 sudo 试图将用户 ID 修改成-1时,不会发生任何变化。这就导致 sudo 日志条目将该命令报告为以用户 ID 为 4294967295而非 root (或者用户ID为 0)运行命令

    (解释来源于https://www.cnblogs.com/-mo-/p/11683402.html,很详细感谢!!!)

    三、总结:该漏洞复现比较鸡肋,需要管理员修改配置文件

    四、修复方法:更新sudo版本1.8.28

  • 相关阅读:
    【.net】未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    【JS】JavaScript中Null和undefind区别
    【SQL】SQL中on条件与where条件的区别
    【C#】C#创建自定义Object对象
    【.NET】asp.net Redirect 图片路径
    【JQ】jq动态绑定事件.on()、解绑事件off()
    【.NET】using 语句中使用的类型必须可隐式转换为"System.IDisposable"
    C# enum、int、string三种类型互相转换
    js中Date与timestamp(时间戳)的相互转换
    2. 自动化运维系列之Cobbler给Openstack节点安装操作系统。
  • 原文地址:https://www.cnblogs.com/yankaohaitaiwei/p/11688623.html
Copyright © 2011-2022 走看看