偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

傳遞哈希攻擊的原理介紹

安全 網(wǎng)站安全
在滲透測(cè)試期間,為了提高審核員對(duì)信息系統(tǒng)的權(quán)限,很多人都會(huì)選擇橫向移動(dòng)方法。

[[346684]]

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

 

NTLM協(xié)議

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

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

 

 

有兩種可能的情況:

 

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

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

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

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

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

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

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

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

 

 

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

 

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

 

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

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

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

身份驗(yàn)證的秘密

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

 

  1. NThash = MD4(password

 

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

 

身份驗(yàn)證

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

本地帳戶

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

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

 

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

 

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

 

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

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

 

  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 

以上就是整個(gè)驗(yàn)證過程。

 

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

 

域帳戶

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

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

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

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

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

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

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

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

以下就是一個(gè)域控制器的驗(yàn)證過程:

 

 

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

 

NT哈希的安全隱患

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

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

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

傳遞哈希

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

本地管理員

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

這意味著,本地管理員帳戶在所有使用相同主服務(wù)器初始化的工作站中是相同的。如果其中一臺(tái)主機(jī)被破壞,并且攻擊者從工作站的本地管理員帳戶提取NT哈希,因?yàn)樗衅渌ぷ髡径季哂邢嗤墓芾韱T帳戶和相同的密碼,那么它們也將具有相同的NT哈希。然后,攻擊者可以使用在受損主機(jī)上找到的哈希,并在所有其他主機(jī)上重播該哈希,以便在這些主機(jī)上進(jìn)行身份驗(yàn)證,以上的整個(gè)過程就叫做傳遞哈希。

 

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

 

沒錯(cuò),這個(gè)哈希也可以在新主機(jī)上使用,而且我們?cè)谒厦嬗幸粋€(gè)管理員shell。

 

特權(quán)域帳戶

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

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

 

  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ī)的本地管理員組的成員。如果攻擊者從該組中的一個(gè)成員那里竊取了NT哈希,則他可以使用管理員列表中的ADSEC \ HelpDesk在所有主機(jī)上進(jìn)行身份驗(yàn)證。

 

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

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

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

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

 

 

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

 

自動(dòng)化

既然我們已經(jīng)了解了NTLM身份驗(yàn)證的工作方式,以及為什么可以使用NT哈希對(duì)其他主機(jī)進(jìn)行身份驗(yàn)證,那么通過并行化任務(wù)來自動(dòng)對(duì)不同目標(biāo)進(jìn)行身份驗(yà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ì)算機(jī)上執(zhí)行,然后計(jì)算機(jī)隨后遭到破壞。已經(jīng)向CrackMapExec傳遞了一個(gè)參數(shù),來列出當(dāng)前登錄到這些計(jì)算機(jī)上的用戶。

 

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

 

 

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

 

傳遞哈希限制

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

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

 

 

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

 

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

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

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

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

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

 

 

總結(jié)

 

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

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

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

 

責(zé)任編輯:姜華 來源: 嘶吼網(wǎng)
相關(guān)推薦

2010-09-26 17:13:31

2017-06-01 10:44:29

2010-05-21 14:53:33

2017-12-11 10:40:14

2020-04-26 09:17:08

哈希傳遞身份驗(yàn)證攻擊

2010-10-09 08:50:16

2013-05-16 10:42:20

2014-04-15 11:22:24

2021-09-03 07:23:59

哈希洪水攻擊黑客DDoS

2010-09-26 17:21:07

2016-09-20 23:44:43

2017-10-12 15:41:45

2018-08-22 09:15:31

2011-12-30 15:20:29

2019-05-30 10:15:30

2010-07-16 11:53:20

2016-10-21 00:03:36

2011-07-12 10:38:10

2009-09-15 16:32:00

2010-07-22 11:18:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)