亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

平顺县| 新和县| 靖远县| 自治县| 互助| 克东县| 海城市| 太白县| 海南省| 洪泽县| 清河县| 江永县| 长子县| 祁东县| 财经| 虎林市| 南充市| 澜沧| 宁安市| 滕州市| 新安县| 东平县| 汨罗市| 崇仁县| 龙门县| 濮阳市| 德庆县| 金华市| 鄂尔多斯市| 新乡县| 郎溪县| 屯留县| 洱源县| 辽阳县| 富平县| 绍兴县| 呈贡县| 开化县| 巴中市| 清苑县| 日照市|