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

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

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

0x00 前言

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

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

MITRE上給出了使用該技術(shù)的相關(guān)APT組織及涉及到的工具:

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

 

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

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

0x01 令牌

在分析這些技術(shù)前,我們先來了解下令牌及特權(quán)的基本知識(shí)。

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

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

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

訪問令牌創(chuàng)建

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

 

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

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

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

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

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

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

 

圖. 執(zhí)行管理任務(wù)時(shí)彈出確認(rèn)窗口

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

 

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

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

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

令牌機(jī)理

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

首先,我們來觀察TOKEN結(jié)構(gòu)。

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

 

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

該結(jié)構(gòu)中包含TokenId、Privileges數(shù)組,定義了對(duì)應(yīng)該用戶所分配的所有特權(quán),TokenType定義了令牌類型:Primary或者Impersonation等。

接下來觀察TOKEN結(jié)構(gòu)中的部分?jǐn)?shù)據(jù)結(jié)構(gòu)。

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

 

SEP_TOKEN_PRIVILEGES結(jié)構(gòu)中包含與令牌相關(guān)的特權(quán)的所有信息,其中Present為令牌當(dāng)前可用的權(quán)限;Enabled為已啟用的權(quán)限;EnabledByDefault為默認(rèn)情況下已啟用的權(quán)限。

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

 

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

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

 

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

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

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

 

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

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

 

SID_AND_ATTRIBUTES結(jié)構(gòu)定義了SID(安全標(biāo)識(shí)符)及SID的屬性。

0x02 特權(quán)

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

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

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

 

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

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

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

標(biāo)準(zhǔn)用戶已啟用的特權(quán)如下圖所示:

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

 

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

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

下面來觀察不同用戶所對(duì)應(yīng)的令牌,這里我們來觀察運(yùn)行在標(biāo)準(zhǔn)用戶及管理員用戶安全上下文中的notepad進(jìn)程所對(duì)應(yīng)的令牌。

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

標(biāo)準(zhǔn)用戶的令牌狀態(tài)如下:

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

 

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

從圖中可知分配給該進(jìn)程的特權(quán)與分配給普通用戶的特權(quán)一樣,因?yàn)樵撨M(jìn)程運(yùn)行在標(biāo)準(zhǔn)用戶的安全上下文中。

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

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

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

 

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

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

0x03 總結(jié)

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

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

分享到:
標(biāo)簽:令牌 篡改
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

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

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

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

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定