Windows Access Token提權


前言:記錄這篇文章更多的還是想初步的了解下Windows Access Token的概念

Windows Token介紹:

Windows Token其實叫Access Token(訪問令牌),它是一個描述進程或者線程安全上下文的一個對象。不同的用戶登錄計算機后, 都會生成一個Access Token,這個Token在用戶創建進程或者線程時會被使用,不斷的拷貝。

這也就解釋了A用戶創建一個進程而該進程沒有B用戶的權限。


Access Token種類:

1、主令牌

2、模擬令牌

一般情況下,用戶雙擊運行一個程序,都會拷貝explorer.exe的Access Token,這句話自己突然想起來某些api函數基於反調試的時候的判斷點。比如在程序啟動后,會有一個STARTUPINFO的結構體變量,來保存程序啟動的信息,我們通過其中類型為DWORD的參數的改變來檢測程序是正常運行還是在調試器中運行的。

提權的利用點:當用戶注銷后,系統將會使主令牌切換為模擬令牌,而模擬令牌不會被清除,只有在重啟機器后才會清除

最重要的點:正常的令牌模擬和竊取,都是需要過了 UAC 的管理員/SYSTEM 權限。並且由於權限的問題,當前賬號只能看到自己的訪問令牌和比自己權限低的賬號的訪問令牌,也就是說這種提權方法不適用於 低權限 -> 高權限


Windows Access Token產生過程:

每個進程創建時都會根據登錄會話權限由LSA(Local Security Authority)分配一個Token(如果CreaetProcess時自己指定了 Token, LSA會用該Token, 否則就繼承父進程Token進行運行)


Windows Access Token組成:

用戶帳戶的安全標識符(SID)
用戶所屬的組的SID
用於標識當前登錄會話的登錄SID
用戶或用戶組所擁有的權限列表
所有者SID
主要組的SID
訪問控制列表
訪問令牌的來源
令牌是主要令牌還是模擬令牌
限制SID的可選列表
目前的模擬等級
其他統計數據


Windows Access Token – SID (Security Identifiers)安全標識符:

安全標識符是一個唯一的字符串,它可以代表一個賬戶、一個用戶 組、或者是一次登錄。通常它還有一個SID固定列表,例如 Everyone 這種已經內置的賬戶,默認擁有固定的SID。

SID的表現形式:

域SID-用戶ID
計算機SID-用戶ID
SID列表都會存儲在域控的AD或者計算機本地賬戶數據庫中。


提權的利用過程(這里的提權可以從域管的令牌進行下手,並且列出令牌需要高權限的操作,可以從administrator->system或domain admins):

1、進行administrator上線,列出當前的主令牌

2、進行竊取system權限的模擬令牌,提權成功

參考文章:https://payloads.online/archivers/2018-11-30/1#windows-access-token-簡介


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM