日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
傳遞哈希攻擊的原理介紹

 在滲透測試期間,為了提高審核員對信息系統(tǒng)的權(quán)限,很多人都會選擇橫向移動方法。在這種情況下,稱為Pass The Hash(傳遞哈希)的技術(shù)被廣泛應(yīng)用,使審核員成為計算機(jī)上的管理員。

創(chuàng)新互聯(lián)公司是專業(yè)的西安網(wǎng)站建設(shè)公司,西安接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行西安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

NTLM協(xié)議

NTLM協(xié)議是在Microsoft環(huán)境中使用的一種身份驗證協(xié)議,特別是,它允許用戶向服務(wù)器證明自己是誰,以便使用該服務(wù)器提供的服務(wù)。

注意:在本文中,術(shù)語“服務(wù)器”是在客戶端/服務(wù)器意義上使用的,“服務(wù)器”很可能是一個工作站。

有兩種可能的情況:

1. 用戶使用服務(wù)器的本地帳戶的憑據(jù),在這種情況下,服務(wù)器在其本地數(shù)據(jù)庫中便含有用戶的秘密,將能夠?qū)τ脩暨M(jìn)行身份驗證。

2. 在Active Directory環(huán)境中,用戶在身份驗證期間使用域帳戶,在這種情況下,服務(wù)器必須要求域控制器驗證用戶提供的信息。

在這兩種情況下,身份驗證都是從客戶端和服務(wù)器之間的挑戰(zhàn)/響應(yīng)階段開始的。

挑戰(zhàn)/響應(yīng)

使用挑戰(zhàn)/響應(yīng)原則,以便服務(wù)器驗證用戶是否知道他正在驗證的帳戶的秘密,而不需要通過網(wǎng)絡(luò)傳遞密碼。這被稱為零知識證明。整個過程分3步:

1.協(xié)商:客戶端告訴服務(wù)器它想要對其進(jìn)行身份驗證(NEGOTIATE_MESSAGE)。

2.挑戰(zhàn):服務(wù)器向客戶端發(fā)送一個挑戰(zhàn)。這只不過是一個64位的隨機(jī)值,隨每個身份驗證請求而變化(CHALLENGE_MESSAGE)。

3.響應(yīng):客戶端使用其密碼的哈希版本作為密鑰加密先前接收到的挑戰(zhàn),并將此加密版本連同其用戶名和域(AUTHENTICATE_MESSAGE)返回給服務(wù)器。

你可以看到用戶管理員試圖連接到計算機(jī)LKAPP01.lion.king。

NTLM交換框頂部是紅色的,底部是服務(wù)器響應(yīng)CHALLENGE_MESSAGE中包含的信息。在這些交換之后,服務(wù)器擁有兩件東西:

1. 發(fā)送給客戶端的挑戰(zhàn);

2. 客戶端的響應(yīng)被自身的秘密加密了。

要完成身份驗證,服務(wù)器只需檢查客戶端發(fā)送的響應(yīng)的有效性。但在那之前,讓我們來檢查一下客戶的秘密。

身份驗證的秘密

我們說過,客戶端使用一個哈希版本的密碼作為密鑰,原因如下:為了避免在服務(wù)器上以明文形式存儲用戶密碼,它是存儲的密碼的哈希值?,F(xiàn)在,此哈希是NT哈希,它不過是MD4函數(shù)的結(jié)果,不含鹽值。

 
 
 
 
  1. NThash = MD4(password) 

綜上所述,當(dāng)客戶端進(jìn)行身份驗證時,它使用其密碼的MD4指紋來加密挑戰(zhàn)。然后,讓我們看看接收到此響應(yīng)后服務(wù)器端會發(fā)生什么。

身份驗證

如前所述,有兩種不同的身份驗證情況。首先,用于身份驗證的帳戶是一個本地帳戶,因此服務(wù)器知道這個帳戶,并擁有該帳戶的秘密副本。第二種是使用域帳戶,在這種情況下服務(wù)器不知道這個帳戶或它的秘密,它必須將身份驗證委托給域控制器。

本地帳戶

在使用本地帳戶進(jìn)行身份驗證的情況下,服務(wù)器將使用用戶的密鑰(更確切地說是用戶秘密的MD4哈希) 對發(fā)送給客戶端的挑戰(zhàn)進(jìn)行加密。然后,它將檢查其操作的結(jié)果是否等于客戶端的響應(yīng),從而證明用戶擁有正確的秘密。如果沒有,則用戶使用的密鑰不是正確的,因為挑戰(zhàn)的加密沒有給出預(yù)期的密鑰。

為了執(zhí)行此操作,服務(wù)器需要存儲本地用戶及其密碼的哈希。這個數(shù)據(jù)庫的名稱是SAM(安全帳戶管理器)??梢栽谧员碇姓业絊AM,特別是使用regedit工具時,但只能作為系統(tǒng)訪問。不過,還可以使用psexec打開:

 
 
 
 
  1. psexec.exe -i -s regedit.exe 

副本也位于C:\Windows\System32\SAM的磁盤上,因此,它包含本地用戶列表及其哈希密碼,以及本地組列表。更準(zhǔn)確地說,它包含了哈希的加密版本。但是,由于解密它們所需的所有信息也在注冊表(SAM和SYSTEM)中,所以我們可以肯定地說哈希存儲在其中。如果你想了解解密機(jī)制是如何工作的,你可以查看secretsdump.py代碼或Mimikatz代碼。

可以備份SAM和SYSTEM數(shù)據(jù)庫,以提取用戶的哈希密碼數(shù)據(jù)庫。

首先,我們將兩個數(shù)據(jù)庫保存在一個文件中。

 
 
 
 
  1. reg.exe save hklm\sam save.save 
  2. reg.exe save hklm\system system.save 

然后,我們可以使用secretsdump.py來提取這些哈希。

 
 
 
 
  1. secretsdump.py -sam sam.save -system system.save LOCAL 

以上就是整個驗證過程。

由于服務(wù)器發(fā)送了挑戰(zhàn)(1),并且客戶端使用其秘密的哈希值對該挑戰(zhàn)進(jìn)行加密,然后使用其用戶名(2)將其發(fā)送回服務(wù)器,因此服務(wù)器將在其SAM中查找用戶密碼的哈希值數(shù)據(jù)庫(3)。收到挑戰(zhàn)后,它還將加密先前使用此哈希(4)發(fā)送的挑戰(zhàn),并將其結(jié)果與用戶返回的挑戰(zhàn)進(jìn)行比較。如果相同(5),則說明用戶已通過身份驗證!否則,用戶沒有提供正確的秘密。

域帳戶

當(dāng)使用域帳戶進(jìn)行身份驗證時,用戶的NT哈希不再存儲在服務(wù)器上,而是存儲在域控制器上。用戶希望對其進(jìn)行身份驗證的服務(wù)器接收其挑戰(zhàn)的答案,但無法檢查該答案是否有效。它將把這個任務(wù)委托給域控制器。

為此,它將使用Netlogon服務(wù),該服務(wù)能夠與域控制器建立安全連接。此安全連接稱為安全通道,之所以可以進(jìn)行這種安全連接,是因為服務(wù)器知道自己的密碼,而域控制器也知道服務(wù)器密碼的哈希值,他們可以安全地交換會話密鑰并安全地進(jìn)行通信。

我不會詳細(xì)介紹,但是想法是服務(wù)器將以NETLOGON_NETWORK_INFO的結(jié)構(gòu)將不同的元素發(fā)送到域控制器:

1. 客戶端的用戶名(Identity);

2. 先前發(fā)送給客戶端的挑戰(zhàn)(LmChallenge);

3. 客戶端發(fā)送的對挑戰(zhàn)的響應(yīng)(NtChallengeResponse)。

域控制器將在其數(shù)據(jù)庫中查找用戶的NT哈希,對于域控制器,它不在SAM中,因為它是一個試圖進(jìn)行身份驗證的域帳戶。這次它位于一個名為NTDS.DIT的文件中,該文件是所有域用戶的數(shù)據(jù)庫。檢索NT哈希后,它將使用該哈希和挑戰(zhàn)計算預(yù)期的響應(yīng),并將此結(jié)果與客戶的響應(yīng)進(jìn)行比較。

然后,一條消息將被發(fā)送到服務(wù)器(NETLOGON_VALIDATION_SAM_INFO4),指示客戶端是否經(jīng)過身份驗證,它還將發(fā)送一組關(guān)于用戶的信息。這與使用Kerberos身份驗證時在PAC中發(fā)現(xiàn)的信息相同。

以下就是一個域控制器的驗證過程:

與以前一樣,服務(wù)器發(fā)送挑戰(zhàn)(1),客戶端使用其秘密的哈希值對該挑戰(zhàn)進(jìn)行加密,并將其連同用戶名和域名一起發(fā)送回服務(wù)器(2)。這次服務(wù)器將使用Netlogon服務(wù)(3)在安全通道中將此信息發(fā)送到域控制器。掌握了這些信息后,域控制器還將使用在其NTDS.DIT數(shù)據(jù)庫(4)中找到的用戶哈希來對挑戰(zhàn)進(jìn)行加密,然后將其結(jié)果與用戶返回的結(jié)果進(jìn)行比較。如果相同(5),則對用戶進(jìn)行身份驗證。否則,用戶未提供正確的秘密。在這兩種情況下,域控制器都將信息發(fā)送到服務(wù)器(6)。

NT哈希的安全隱患

在這些交換中從來不使用明文密碼,而是使用名為NT哈希的哈希密碼,它是明文密碼的簡單哈希。

仔細(xì)想想,竊取明文密碼或竊取哈希值是完全相同的。因為它是用來響應(yīng)挑戰(zhàn)/響應(yīng)的哈希,所以擁有該哈??梢詫Ψ?wù)器進(jìn)行身份驗證。因此,將密碼以明文顯示根本沒用。

可以這么說,在大多數(shù)情況下,使用NT哈希與使用明文密碼是一樣的。

傳遞哈希

如果攻擊者知道一臺計算機(jī)的本地管理員的NT哈希,那么他可以使用這個哈希輕松地對該計算機(jī)進(jìn)行身份驗證。類似地,如果他擁有主機(jī)上本地管理組成員的域用戶的NT哈希,他也可以作為本地管理員向該主機(jī)進(jìn)行身份驗證。

本地管理員

現(xiàn)在,讓我們看看它在實(shí)際環(huán)境中是如何工作的:一名新員工來到公司,公司為他/她提供了一個工作站。IT部門沒有足夠的時間為每個員工從頭安裝和配置Windows系統(tǒng)。因此,先設(shè)置一個安裝和配置Windows系統(tǒng)的版本,以滿足一個新員工的所有基本需求和要求。然后,這個稱為master的基本版本保存在某處,并且該版本的副本提供給每個新手。

這意味著,本地管理員帳戶在所有使用相同主服務(wù)器初始化的工作站中是相同的。如果其中一臺主機(jī)被破壞,并且攻擊者從工作站的本地管理員帳戶提取NT哈希,因為所有其他工作站都具有相同的管理員帳戶和相同的密碼,那么它們也將具有相同的NT哈希。然后,攻擊者可以使用在受損主機(jī)上找到的哈希,并在所有其他主機(jī)上重播該哈希,以便在這些主機(jī)上進(jìn)行身份驗證,以上的整個過程就叫做傳遞哈希。

例如,我們發(fā)現(xiàn)用戶管理員的NT哈希是20cc650a5ac276a1cfc22fbc23beada1。我們可以在另一臺計算機(jī)上重播它,并希望這臺計算機(jī)以同樣的方式配置。以下示例使用來自Impacket套件的psexec.py工具:

沒錯,這個哈希也可以在新主機(jī)上使用,而且我們在它上面有一個管理員shell。

特權(quán)域帳戶

還有另一種使用傳遞哈希技術(shù)的方法,假設(shè)對于遠(yuǎn)程公園管理,在Active Directory中有一個“HelpDesk”組。為了使該組的成員能夠管理用戶的工作站,將該組添加到每個主機(jī)的本地“Administrators”組中。此時,這個本地組包含在計算機(jī)上具有管理權(quán)限的所有對象中。

你可以使用以下命令列出它們:

 
 
 
 
  1. # Machine fran?aise 
  2. net localgroup Administrateurs 
  3. # ~Reste du monde 
  4. net localgroup Administrators 

結(jié)果將是這樣的:

 
 
 
 
  1. Nom alias       Administrateur 
  2. Commentaire     Les membres du groupe Administrateurs disposent d'un accès complet et illimité à l'ordinateur et au domaine 
  3.  
  4. Membres 
  5.  
  6. ------------------------- 
  7. Administrateur 
  8. ADSEC\Admins du domaine 
  9. ADSEC\HelpDesk 

因此,我們擁有ADSEC \ HelpDesk域組,該域組是主機(jī)的本地管理員組的成員。如果攻擊者從該組中的一個成員那里竊取了NT哈希,則他可以使用管理員列表中的ADSEC \ HelpDesk在所有主機(jī)上進(jìn)行身份驗證。

與本地帳戶相比,其優(yōu)勢在于,無論使用什么主機(jī)來設(shè)置計算機(jī),GPO都會將該組添加到主機(jī)的配置中。該帳戶具有更廣泛的管理權(quán)限的可能性更大,而與操作系統(tǒng)和計算機(jī)設(shè)置過程無關(guān)。

因此,當(dāng)請求身份驗證時,服務(wù)器會將身份驗證委派給域控制器,如果身份驗證成功,則域控制器將向服務(wù)器發(fā)送有關(guān)用戶的信息,例如用戶名,用戶所屬的組列表,密碼到期日期等。

然后,服務(wù)器將知道該用戶是HelpDesk組的一部分,并向該用戶授予管理員訪問權(quán)限。

另一個示例:我們發(fā)現(xiàn)用戶jsnow的NT哈希為89db9cd74150fc8d8559c3c19768ca3f。此帳戶是HelpDesk組的一部分,該組是所有用戶工作站的本地管理員,讓我們在另一臺主機(jī)上使用他的哈希。

同樣,身份驗證成功了,我們成為了目標(biāo)設(shè)備的管理員。

自動化

既然我們已經(jīng)了解了NTLM身份驗證的工作方式,以及為什么可以使用NT哈希對其他主機(jī)進(jìn)行身份驗證,那么通過并行化任務(wù)來自動對不同目標(biāo)進(jìn)行身份驗證以獲取盡可能多的信息將是非常有用的。

在此,我建議使用CrackMapExec工具。

 
 
 
 
  1. # Compte local d'administration 
  2. crackmapexec smb --local-auth -u Administrateur -H 20cc650a5ac276a1cfc22fbc23beada1 10.10.0.1 -x whoami 
  3.  
  4. # Compte de domaine 
  5. crackmapexec smb -u jsnow -H 89db9cd74150fc8d8559c3c19768ca3f -d adsec.local  10.10.0.1 -x whoami 

以下就是以simba用戶為管理員的示例說明:

傳遞哈希是在一些計算機(jī)上執(zhí)行,然后計算機(jī)隨后遭到破壞。已經(jīng)向CrackMapExec傳遞了一個參數(shù),來列出當(dāng)前登錄到這些計算機(jī)上的用戶。

擁有連接的用戶列表很好,但是擁有他們的密碼或NT哈希會更好!為此,我開發(fā)了lsassy,——遠(yuǎn)程提取lsass秘密的工具。

我們從連接的用戶中檢索所有NT哈希,由于我們已經(jīng)是這些計算機(jī)的管理員,所以不會顯示來自計算機(jī)帳戶的文件。

傳遞哈希限制

傳遞哈希值是一項在服務(wù)器上啟用NTLM身份驗證時始終有效的技術(shù),默認(rèn)情況下,該技術(shù)是有效的。但是,Windows中有一些機(jī)制可以限制或可能限制管理任務(wù)。

在Windows上,使用訪問令牌執(zhí)行權(quán)限管理,從而可以知道誰有權(quán)做什么?!癆dministrators”組的成員有兩個令牌。一個具有標(biāo)準(zhǔn)用戶權(quán)限,另一個具有管理員權(quán)限。默認(rèn)情況下,當(dāng)管理員執(zhí)行任務(wù)時,它是在標(biāo)準(zhǔn)的、有限的上下文中執(zhí)行的。另一方面,如果需要管理任務(wù),那么Windows將顯示這個稱為UAC(用戶帳戶控制)的眾所周知的窗口。

可以看到出現(xiàn)用戶警告:應(yīng)用程序請求管理權(quán)限。

那么遠(yuǎn)程執(zhí)行的管理任務(wù)是什么呢?有兩種可能。

1. 屬于主機(jī)“Administrators”組成員的域帳戶都可以請求它們,在這種情況下,不會為此帳戶激活UAC,他可以執(zhí)行其管理任務(wù)。

2. 是由主機(jī)的“Administrators”組成員的本地帳戶請求的,在這種情況下,UAC在某些情況下是啟用的,但不是一直啟用。

為了理解第二種情況,讓我們看一下兩個注冊表項,這兩個注冊表項有時是未知的,但是當(dāng)使用本地管理帳戶進(jìn)行NTLM身份驗證后嘗試執(zhí)行管理任務(wù)時,有兩個注冊表項(LocalAccountTokenFilterPolicy,F(xiàn)ilterAdministratorToken)扮演了關(guān)鍵角色。

下表總結(jié)了這兩個注冊表項的每種組合,每種組合都可以通過主機(jī)的身份驗證。

總結(jié)

如今,NTLM身份驗證仍在公司中廣泛使用。以我的經(jīng)驗,我從未見過能夠在整個網(wǎng)絡(luò)上禁用NTLM的環(huán)境。這意味著,傳遞哈希的攻擊仍然非常有效。

該技術(shù)是NTLM協(xié)議固有的,但是可以通過避免在所有工作站上使用相同的本地管理密碼來緩解。微軟的LAPS 解決方案是其中一種解決方案,它可以通過確保所有工作站上的密碼(也包括NT哈希)都不同。

本文翻譯自:https://en.hackndo.com/pass-the-hash/如若轉(zhuǎn)載,請注明原文地址。


分享標(biāo)題:傳遞哈希攻擊的原理介紹
文章起源:http://www.dlmjj.cn/article/dhchchj.html