日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

0x00 前言

在這一系列文章中,我們將討論基于windows令牌(Token)的攻擊方式,全面理解令牌、特權(Privilege)等知識點,了解令牌及特權在Windows系統(tǒng)安全架構中的實現(xiàn)機制。

令牌篡改攻擊(Token Manipulation Attack)是多個APT組織及惡意軟件常用的一種技術,可以用來在受害者系統(tǒng)上獲取高權限,或者以其他用戶身份執(zhí)行操作(用戶仿冒)。

MITRE上給出了使用該技術的相關APT組織及涉及到的工具:

詳解令牌篡改攻擊(Part 1)

 

令牌篡改實際上并不完全屬于漏洞利用范疇,這里我們?yōu)E用的是Windows系統(tǒng)自身的功能,通過某些Windows API函數(shù)來修改調(diào)用進程的安全上下文,以便模擬另一個進程(通常是低權限進程)的安全上下文。模擬過程可以通過目標進程的線程來完成,后面我們再詳細討論這一點。Windows使用這種功能來修改調(diào)用進程所屬線程的安全上下文,將其修改成其他用戶的安全上下文,以執(zhí)行某些操作。

Windows系統(tǒng)中有各種用戶,比如System、Network Service、Local Service以及Administrator賬戶(組)及普通域用戶。這些用戶賬戶都運行在不同的安全上下文中,具備一定級別的訪問權限。默認情況下,System在本地系統(tǒng)中具備最高權限。在大多數(shù)情況下,惡意程序希望竊取運行在System安全上下文中的進程令牌,以獲得最高權限。

0x01 令牌

在分析這些技術前,我們先來了解下令牌及特權的基本知識。

令牌(Token)或者訪問令牌(Accss Token)是一個內(nèi)核對象,用來描述進程或線程所使用的安全上下文。

訪問令牌中包含各種信息,比如安全標識符(SID,Security Identifier)、令牌類型(Token Type)、用戶及組信息、權限、登錄會話(Logon Session)等,系統(tǒng)會在用戶登錄時分配訪問令牌。

為了執(zhí)行各種操作或者使用Windows中的各種資源,進程必須使用Windows句柄打開或者創(chuàng)建對象,才能訪問內(nèi)核對象。內(nèi)核會根據(jù)訪問令牌賦予進程匹配的訪問權限。

訪問令牌創(chuàng)建

詳解令牌篡改攻擊(Part 1)

 

  • 當用戶登錄主機時,系統(tǒng)會創(chuàng)建訪問令牌。
  • 檢測密碼是否正確,執(zhí)行認證過程。
  • 在安全數(shù)據(jù)庫中檢查用戶詳細信息。
  • 檢查用戶是否屬于內(nèi)置的管理員組中,如果滿足條件,則生成兩個令牌:完整的管理員訪問令牌及標準用戶訪問令牌。
  • 如果用戶不屬于內(nèi)置管理員組,則只會生成標準用戶訪問令牌。

訪問令牌在Windows系統(tǒng)的UAC(用戶訪問控制)功能中發(fā)揮重要作用。

當屬于內(nèi)置管理員組的用戶登錄時,系統(tǒng)并沒有向用戶提供完整的管理員訪問令牌。Windows系統(tǒng)會為該用戶創(chuàng)建拆分(split)令牌。這里有兩種類型的拆分令牌:“Filtered Token”(過濾令牌)及“Elevated Token”(提升令牌)。

當用戶分配的是Filtered Token時,基本意味著用戶運行在中完整性(medium integrity)級別上,被剔除了管理員組權限及SID,這意味著用戶無法直接執(zhí)行各種管理任務。為了執(zhí)行管理任務,用戶必須通過UAC認證,或者輸入正確的憑據(jù)。

當用戶通過UAC認證或輸入正確憑據(jù)后,系統(tǒng)會給用戶分配Elevated Token,用戶就可以執(zhí)行管理任務。Elevated Token是帶有高完整性的令牌,其中包括管理員組的SID及權限。

詳解令牌篡改攻擊(Part 1)

 

圖. 執(zhí)行管理任務時彈出確認窗口

詳解令牌篡改攻擊(Part 1)

 

圖. 用戶需輸入憑據(jù)以執(zhí)行管理任務

如果正確配置UAC,那就能有效發(fā)揮該機制的安全功能。

如果大家想全面理解UAC,可以參考官方提供的這篇文章。

令牌機理

為了進一步理解Windows中的令牌對象,我們來看一下令牌的內(nèi)部機理(比如令牌對應的內(nèi)核數(shù)據(jù)結構)。這里我們使用WinDbg來查看內(nèi)核數(shù)據(jù)結構。

首先,我們來觀察TOKEN結構。

詳解令牌篡改攻擊(Part 1)

 

在上圖中,我們可以看到TOKEN數(shù)據(jù)的完整結構,該結構中包含其他一些數(shù)據(jù)結構,這些結構用來定義與令牌有關的各種屬性及信息,與登錄用戶密切相關。

該結構中包含TokenId、Privileges數(shù)組,定義了對應該用戶所分配的所有特權,TokenType定義了令牌類型:Primary或者Impersonation等。

接下來觀察TOKEN結構中的部分數(shù)據(jù)結構。

詳解令牌篡改攻擊(Part 1)

 

SEP_TOKEN_PRIVILEGES結構中包含與令牌相關的特權的所有信息,其中Present為令牌當前可用的權限;Enabled為已啟用的權限;EnabledByDefault為默認情況下已啟用的權限。

詳解令牌篡改攻擊(Part 1)

 

TOKEN_TYPE為枚舉類型,其中定義了令牌類型是否為Primary或者Impersonation(后續(xù)文章中會詳細分析這方面內(nèi)容)。

詳解令牌篡改攻擊(Part 1)

 

SECURITY_IMPERSONATION_LEVEL也是一個枚舉類型,其中指定了不同常量,用來決定調(diào)用進程可以在哪種級別模擬目標進程。

常量的定義可參考微軟官方文檔,具體如下:

詳解令牌篡改攻擊(Part 1)

 

我們將使用TOKEN_TYPE及SECURITY_IMPERSONATION_LEVEL常量來模擬令牌,可根據(jù)具體情況來設置相應值,比如是使用Primary令牌來創(chuàng)建進程,或者是使用Impersonation令牌來模擬某個進程。

詳解令牌篡改攻擊(Part 1)

 

SID_AND_ATTRIBUTES結構定義了SID(安全標識符)及SID的屬性。

0x02 特權

一般而言,特權(Privilege)這個詞指的是上級單位根據(jù)某些條件賦予某人或者某個組織的一種特殊權利。

與之類似,在Windows系統(tǒng)中,管理員可以為用戶分配某些特權以執(zhí)行系統(tǒng)相關的活動。默認情況下系統(tǒng)會給用戶分配一些特權,而管理員也可以使用“本地安全策略設置”在本地為用戶分配一些特權。

詳解令牌篡改攻擊(Part 1)

 

特權決定哪個用戶可以控制系統(tǒng)資源,以執(zhí)行系統(tǒng)相關任務,如關機、調(diào)試被其他進程使用的進程內(nèi)存、將驅(qū)動載入內(nèi)存中、備份文件及目錄等。

Windows系統(tǒng)中可用的特權常量可參考此處資料。

在上文中,我們提到SEP_TOKEN_PRIVILEGES結構中包含Enabled及EnabledByDefault成員,這意味著分配給用戶的所有特權默認情況下不一定處于啟用狀態(tài),只有某些特權在分配時被啟用,如果需要其他特權來執(zhí)行系統(tǒng)相關任務,則必須通過外部方式啟用這些特權。

標準用戶已啟用的特權如下圖所示:

詳解令牌篡改攻擊(Part 1)

 

如上圖所示,只有SeChangeNotifyPrivilege特權處于啟用狀態(tài),分配給用戶的其他特權處于禁用狀態(tài)。為了使用這些特權,我們首先必須執(zhí)行啟用操作。

在本系列文章中,我們將啟用SE_DEBUG_NAME特權,該特權可以幫我們調(diào)試無法訪問的進程或者運行在SYSTEM賬戶下的進程。

下面來觀察不同用戶所對應的令牌,這里我們來觀察運行在標準用戶及管理員用戶安全上下文中的notepad進程所對應的令牌。

我們使用WinDbg來查看目標進程(這里為notepad.exe)的令牌。

標準用戶的令牌狀態(tài)如下:

詳解令牌篡改攻擊(Part 1)

 

上圖中可以看到進程對應的Session ID(已登錄的會話)、Impersonation Level、TokenType等,該進程的令牌類型為Primary。此外上圖頂部的輸出信息表明對應的線程沒有處于模擬狀態(tài),使用的是Primary令牌。

從圖中可知分配給該進程的特權與分配給普通用戶的特權一樣,因為該進程運行在標準用戶的安全上下文中。

Elevation Type的值為3(Limited,受限),這表明這是一個受限令牌,其中剔除了管理員特權,禁用了管理員組。

管理員用戶的令牌狀態(tài)如下:

詳解令牌篡改攻擊(Part 1)

 

上圖的令牌信息與標準用戶類似,但分配的特權要比標準用戶要多得多,基本上所有特權都會分配管理員用戶。此外,我們可以看到這里的Elevation Type為2(Full,完整),表明這是提升(Elevated)令牌,沒有被剔除某些權限及用戶組。

備注:只有當UAC啟用時,Elevation Type才為2或者3,當UAC禁用或者用戶為內(nèi)置管理員賬戶或者服務賬戶時,Type等于1。

0x03 總結

在本文中,我們討論了訪問令牌以及訪問令牌的使用場景、生成時間點、TOKEN內(nèi)部結構以及與令牌相關的許多知識點。這些知識點非常重要,可以幫我們理解令牌在Windows系統(tǒng)用戶及進程的安全上下文的工作方式。理解這些內(nèi)容后,在下文中我們將繼續(xù)研究,使用Windows API來發(fā)起令牌篡改攻擊。

原文鏈接:https://www.anquanke.com/post/id/192892

分享到:
標簽:令牌 篡改
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定