zoukankan      html  css  js  c++  java
  • linux CVE-2019-14287 Sudo提权漏洞

    CVE-2019-14287

    sudo介绍

    sudo,也就是以超级管理员身份运行(superuser do)的意思。sudo 是 Linux 中最常使用的重要实用程序之一,它功能十分强大,几乎安装在每一款基于 UNIX 或 Linux 的操作系统上,也是这些操作系统的核心命令。作为一个系统命令,普通用户可通过它以特殊权限来运行程序或命令(通常以 root 用户身份运行命令),而无需切换使用环境。

    • § sudo能够限制用户只在某台主机上运行某些命令。
    • § sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
    • § sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
    • § sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。

    漏洞介绍及其利用

    此漏洞可以使受限制的用户运行root命令,1.8.28之前的sudo版本均会受到影响,此漏洞的利用需要使用户具有sudo的权限。

    漏洞影响版本:1.8.28之前

    利用此sudo漏洞的前提是规定安全策略设置如下:

    yunying = (ALL, !root) /bin/bash

    意思为:规定yunying用户可以以除了root以外的用户身份去执行//bin/bash命令

    据悉,该漏洞由苹果信息安全部门的 Joe Vennix 追踪发现(漏洞的 CVE ID 为 CVE-2019-14287 )。如果想要利用这个漏洞,只需按以下的方式运行即可:

    sudo -u#-1 id -u

    或者

    sudo -u#4294967295 id -u

     之所以会产生这个漏洞,是因为将用户 ID 转换为用户名的函数会将 -1(或无效等效的 4294967295)误认为是 0,而这正好是 root 用户 User ID 。此外,由于通过 -u 选项指定的 User ID 在密码数据库中不存在,因此不会运行任何 PAM 会话模块。

    漏洞复现

    靶机:centos7

    sudo版本:

    创建一个普通用户yunying

    useradd yunying   // useradd -d /usr/yunying -m yunying  选项可以创建一个用户目录
    passwd yunying

    赋予root用户写的权限,编辑/etc/sudoers,增加yunying用户,设置前提权限

    正常切换至yunying用户执行bash命令

     利用漏洞以root用户执行bash命令

    修复建议

    升级到 sudo 1.8.28
    
    检索/etc/sudoers 是否存在 ALL 关键词的复合限制逻辑
    
    centos升级命令: yum update sudo
  • 相关阅读:
    不是结束,而是刚刚开始
    第七次作业
    用类做封装
    用户故事
    团队编程--MP3播放器
    结对编程作业
    四则运算
    四、小电视自动抽奖
    三、wss连接B站弹幕
    一、基础设计
  • 原文地址:https://www.cnblogs.com/BOHB-yunying/p/11691250.html
Copyright © 2011-2022 走看看