CVE-2019-5736 runc容器逃逸漏洞復現
- 2019 年 10 月 6 日
- 筆記
0X1 漏洞詳情
Docker、containerd或者其他基於runc的容器運行時存在安全漏洞,攻擊者可以通過特定的容器鏡像或者exec操作可以獲取到宿主機的runc執行時的文件句柄並修改掉runc的二進位文件,從而獲取到宿主機的root執行許可權。
0X2影響範圍:Docker版本 < 18.09.2 或者使用 runc版本 <= 1.0-rc6的環境,請自行根據廠商建議進行修復。
0X3 漏洞復現
首先搭建環境,由於Kali和Ubuntu已經安裝了docker,因此重新安裝漏洞版本比較麻煩,所以直接使用網上已有的環境進行復現。
kali上下載github源文件,鏈接是:
https://github.com/agppp/cve-2019-5736-poc

查看文件:

編輯stage2.c文件,修改shell程式碼,設置反彈到本地的ip和埠:

編譯環境:docker build cve .

這個過程會慢一些,等待。。。
然後運行命令:docker run -d cve /bin/bash -c "tail -f /dev/null"
備份docker-runc文件,在kali下該文件目錄在/usr/sbin/目錄下:

然後進入容器內:

到root目錄下,運行run.sh腳本

kali下開啟另一個終端進行埠監聽:

退出容器然後再重新進入容器,漏洞被觸發,shell反彈過來


至此,漏洞復現完畢!
0X4 漏洞修復
升級docker或者runC