中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

芦溪县| 永春县| 伊川县| 蚌埠市| 绩溪县| 准格尔旗| 濮阳市| 宝丰县| 射阳县| 安平县| 广元市| 余姚市| 兰州市| 惠东县| 棋牌| 松溪县| 武定县| 石楼县| 年辖:市辖区| 杭锦旗| 博爱县| 玉林市| 米易县| 行唐县| 广西| 湘西| 石柱| 大厂| 得荣县| 桂平市| 祁门县| 安吉县| 肃南| 寿阳县| 泌阳县| 信丰县| 垣曲县| 韩城市| 平阴县| 宁武县| 邵阳市|