91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux包管理器snap本地提權漏洞分析

發布時間:2021-11-30 16:17:29 來源:億速云 閱讀:127 作者:iii 欄目:大數據

本篇內容主要講解“Linux包管理器snap本地提權漏洞分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux包管理器snap本地提權漏洞分析”吧!

0x00 漏洞背景

snap是一個Linux系統上的包管理軟件。在Ubuntu18.04后默認預安裝到了系統中。2019年2月13日,Chris Moberly公開了利用snap包管理工具的服務進程snapd中提供的REST API服務因對請求客戶端身份鑒別存在問題從而提權的漏洞細節。下面是利用已公開的exp進行提權成功后的截圖。

Linux包管理器snap本地提權漏洞分析

Linux包管理器snap本地提權漏洞分析

0x01 漏洞影響

利用該漏洞可以讓普通用戶偽裝成root用戶向snapd提供的REST API發送請求。攻擊者利用精心構造的安裝腳本或Ubuntu SSO可以讓并不具有sudo權限的普通用戶獲得執行sudo的權限,從而獲得提升到root用戶權限的能力,達到本地提權的效果。

0x02 漏洞細節

snapd是snap包管理器的一個服務進程。它以root用戶權限在后臺運行,并允許普通用戶以UNIX套接字的方式與其進行通信,并提供服務,其中一些特權操作需要鑒別用戶身份(uid)才能執行。其中獲取客戶端信息的代碼最終會使用ucrednetGet(如下)函數來獲取客戶端用戶id,在該函數中會把字符串remoteAddr按";"分割后尋找"uid="字符串來判斷當前用戶的uid,通常情況下,remoteAddr大致為“ pid=5100;uid=1002;socket=/run/snapd.socket;@”這樣的格式。從代碼邏輯可以看出,后面出現的"uid="結果會覆蓋前面得到的uid。攻擊者利用這一點即可通過構造UNIX socket綁定地址,例如"/tmp/sock;uid=0;"。達到偽裝root用戶發出請求的目的。進而通過snapd執行一些特權操作達到提權的目的。

func ucrednetGet(remoteAddr string) (pid uint32, uid uint32, socket string, err error) {
...
   for _, token := range strings.Split(remoteAddr, ";") {
       var v uint64
...
       } else if strings.HasPrefix(token, "uid=") {
           if v, err = strconv.ParseUint(token[4:], 10, 32); err == nil {
               uid = uint32(v)
           } else {
               break
}

0x03 修復建議

目前漏洞細節已經披露,官方也在2.37.1中予以修復。Ubuntu用戶可以通過apt update && apt-get install snap ,將snap升級至最新版本予以修復。

到此,相信大家對“Linux包管理器snap本地提權漏洞分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

革吉县| 文化| 香格里拉县| 巨鹿县| 新营市| 盐亭县| 张家界市| 绥棱县| 叙永县| 巨野县| 钟山县| 青海省| 句容市| 平湖市| 安陆市| 临澧县| 桂林市| 萨迦县| 灵台县| 云南省| 冷水江市| 临邑县| 横峰县| 武夷山市| 屏南县| 新乐市| 黔西县| 宝丰县| 泰顺县| 凤翔县| 通河县| 阿克陶县| 利川市| 台北市| 海伦市| 南丹县| 信宜市| 德州市| 连城县| 利津县| 壤塘县|