CVE-2019-13272:Linux本地內核提權漏洞復現

  • 2019 年 10 月 28 日
  • 筆記

本文作者:axKcV(Timeline Sec核心成員)

本文共766字,閱讀大約需要2分鐘

0x00 簡介

2019年07月20日,Linux正式修復了一個本地內核提權漏洞。通過此漏洞,攻擊者可將普通許可權用戶提升為Root許可權。

0x01 漏洞概述

當調用PTRACE_TRACEME時,ptrace_link函數將獲得對父進程憑據的RCU引用,然後將該指針指向get_cred函數。但是,對象struct cred的生存周期規則不允許無條件地將RCU引用轉換為穩定引用。

PTRACE_TRACEME獲取父進程的憑證,使其能夠像父進程一樣執行父進程能夠執行的各種操作。如果惡意低許可權子進程使用PTRACE_TRACEME並且該子進程的父進程具有高許可權,該子進程可獲取其父進程的控制權並且使用其父進程的許可權調用execve函數創建一個新的高許可權進程。

0x02 影響版本

目前受影響的Linux內核版本:

Linux Kernel < 5.1.17

0x03 環境搭建

創建一個低許可權賬戶

useradd test   # 創建test用戶passwd test    # 給test用戶設置密碼

切換到test用戶

su test

查看系統內核版本是否小於5.1.17

uname-a

0x04 漏洞利用

查看當前用戶和當前用戶的UID

下載漏洞利用腳本,保存為poc.c文件

https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272

使用gcc編譯c文件,生成exp文件

gcc poc.c -o exp

運行生成的exp

./exp

可以看到已成功利用exp將普通用戶test提升為root

查看一下成功利用後的當前用戶

查看當前用戶的UID,已變為root

0x05 修復方式


修補程式修復鏈接:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee

0x06 小結


此漏洞為本地提權漏洞,在vps是不能成功的,所以對於滲透測試人員來說,該漏洞更適用於在企業內網中做測試,對於甲方安全人員,只有三個字,打修補程式。

vps上執行exp結果:

EXP腳本:

https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272

參考鏈接:

https://www.secpulse.com/archives/110052.html

Tags: