
滲透測(cè)試人員對(duì)Pass-the-Hash(PtH)攻擊都很熟悉。我們常在滲透測(cè)試中用到它。如果你的職責(zé)包括網(wǎng)絡(luò)入侵防御,你至少應(yīng)該了解其攻擊方法。不管你有多少經(jīng)驗(yàn),你對(duì)問題了解得可能不深,或許還不知道它是怎么解決的,注意是“解決”而不是“修復(fù)”。
概述
攻擊者通過一定辦法獲取了Windows計(jì)算機(jī)的本地管理員權(quán)限,可以在內(nèi)存中尋找其它本地或域內(nèi)賬戶登錄后的hash,因?yàn)殡娔X正在運(yùn)行。這些hash可以“傳遞”(不需要破解)給其它的計(jì)算機(jī)或者服務(wù),作為一種認(rèn)證方法。
這意味著,一開始只攻破一個(gè)看起來不重要的服務(wù)器或工作站,由于域管理員賬戶為了執(zhí)行一些支持任務(wù),登錄了這個(gè)機(jī)器,就可以在更高的水平攻破整個(gè)域。
PtH的問題
考慮下面比較常見的場(chǎng)景:
一個(gè)主機(jī)被攻陷(沒重要價(jià)值)。
但是本地administrator賬戶和其它所有主機(jī)的密碼相同。
攻擊者從內(nèi)存中獲取了所有的hash,域管理員賬戶并不在里面。攻擊者獲取了所有的本地hash,包括administrator賬號(hào)的。
攻擊者使用獲取的本地administrator的hash,利用PtH登錄了其它的主機(jī),然后重復(fù)這個(gè)過程(也被稱為hash噴射攻擊)。在這個(gè)過程中,會(huì)得到一個(gè)本地和域用戶的hash列表。
最終,一個(gè)主機(jī)會(huì)在內(nèi)存中包含一個(gè)有權(quán)限的域賬戶,可以用于訪問數(shù)據(jù)庫,文件服務(wù)器,以及域控制器,然后再次使用PtH。
PtH并不是一個(gè)漏洞利用技術(shù),它是Microsoft Windows提供的一個(gè)特性。因此,沒有補(bǔ)丁。降低PtH攻擊的風(fēng)險(xiǎn)是可以的,但是它需要對(duì)認(rèn)證權(quán)限橫向隔離。
域中對(duì)權(quán)限橫向隔離
降低PtH攻擊的風(fēng)險(xiǎn),實(shí)際上是給管理員賬戶賦予有限的安全邊界的問題?;蛘呖梢赃@樣理解,最小化所有支持和管理賬戶的訪問范圍。
要遵守的策略是,盡量減少黑客獲取域內(nèi)賬戶之后攻破其它服務(wù)器或主機(jī)的數(shù)量。比如,攻破一個(gè)開發(fā)主機(jī)之后,不應(yīng)該泄漏開發(fā)服務(wù)器(或者產(chǎn)品服務(wù)器,或者其它主機(jī),或者域控制器)上的管理員賬戶。
下面是需要遵守的幾個(gè)降低PtH攻擊風(fēng)險(xiǎn)的步驟:
第0步:基礎(chǔ)
確保所有的服務(wù)器、主機(jī)、筆記本或者其它開放網(wǎng)絡(luò)端口的設(shè)備都安全加固了,確保禁用LM hash。
確保設(shè)置了非常強(qiáng)的密碼策略。
請(qǐng)不要在任何地方重用密碼,包括服務(wù)器或administrator賬號(hào)。不要為服務(wù)賬號(hào)設(shè)置簡(jiǎn)單的密碼。
確保所有的本地administrator密碼都是唯一的。
這將使攻擊者在你的網(wǎng)絡(luò)難以立足。沒有hash就無法實(shí)施PtH攻擊。
第1步:
應(yīng)該定義安全邊界,比如HR主機(jī),開發(fā)主機(jī),財(cái)務(wù)筆記本,DMZ服務(wù)器,測(cè)試服務(wù)器等等。越多越好。每個(gè)安全邊界都應(yīng)該設(shè)置一個(gè)對(duì)這個(gè)組里的所有主機(jī)有管理員權(quán)限的域賬戶(絕不可以是administraotr)。這個(gè)用戶應(yīng)該配置成不能訪問其它主機(jī)或服務(wù),最重要的是它不能是網(wǎng)絡(luò)中其它任何設(shè)備的管理員。
這樣做的原理是,攻破一個(gè)安全邊界里的機(jī)器,并不會(huì)泄漏其它的安全邊界。這是因?yàn)?,任何被攻陷的高?quán)限賬號(hào)都無法訪問其它邊界內(nèi)的主機(jī)。
第2步:
域administrator用戶只能用于訪問域控制器。每次使用這個(gè)賬戶都會(huì)留下一些痕跡,緩存的賬號(hào)或者是LSA密鑰等等。
如果攻擊者想辦法攻破了域控制器,那么游戲就結(jié)束了。所有的hash都可以提取,那時(shí),PtH就變成了一個(gè)小問題。
第3步:
服務(wù)賬戶應(yīng)該一事一議來考慮,只分配服務(wù)正常工作需要的權(quán)限。這在PtH攻擊方面很有風(fēng)險(xiǎn),我們經(jīng)常利用它。
結(jié)論
hash注入是我們?cè)跐B透測(cè)試中常用的方法。它是網(wǎng)絡(luò)滲透和擴(kuò)展(可能也有提權(quán))的一個(gè)有效辦法。
正如前面討論的,hash注入并不是一個(gè)漏洞,但是是微軟提供的一個(gè)會(huì)被濫用的特性。因此,它無法修復(fù),但是可以降低風(fēng)險(xiǎn)。這需要對(duì)域網(wǎng)絡(luò)有一個(gè)合理的安全管理辦法。
微軟在2012年和2014年發(fā)表了兩篇文章,名為《Mitigating Pass-the-Hash (PtH) Attacks and Other Credential Theft Techniques》和《Mitigating Pass the Hash Attacks and Other Credential Theft, version 2》,非常有趣也非常有用,鏈接如下:
Pass-the-Hash (PtH) –?https://technet.microsoft.com/en-us/dn785092.aspx
最好使用網(wǎng)絡(luò)訪問控制,把訪問管理服務(wù)(以及服務(wù)器)的權(quán)限限制在需要的主機(jī)上,這不是銀彈但卻有用。