在執(zhí)行安全評(píng)估(例如滲透測(cè)試、Red Teaming等)后,我習(xí)慣于向客戶的高級(jí)管理層匯報(bào)已完成的工作。
這為討論諸如使用的攻擊策略、技術(shù)和程序(TTPs)、使用的攻擊向量、發(fā)現(xiàn)、建議、補(bǔ)救措施等內(nèi)容創(chuàng)造了機(jī)會(huì)。
很多時(shí)候,領(lǐng)導(dǎo)團(tuán)隊(duì)都會(huì)對(duì)我最初在網(wǎng)絡(luò)上立足的一些方式或我使用的一些策略感到無(wú)比驚訝。
對(duì)于他們中的大多數(shù)人來(lái)說(shuō),他們期待著像《碟中諜》中湯姆·克魯斯那種風(fēng)格的黑客攻擊、繞過(guò)防火墻等等,結(jié)果卻發(fā)現(xiàn)我毫不費(fèi)力地就破壞了他們的網(wǎng)絡(luò)。
因此,我通常會(huì)花時(shí)間向我的客戶闡明現(xiàn)代攻擊通常是如何進(jìn)行的,以及像一個(gè)脆弱的用戶憑據(jù)這樣簡(jiǎn)單的小漏洞如何能夠顛覆整個(gè)網(wǎng)絡(luò)防御。
事實(shí)是,網(wǎng)絡(luò)攻擊強(qiáng)調(diào)更多的是效率而不是精致。因此,攻擊者不會(huì)尋找最難的突圍闖入方法。他們通常會(huì)尋找最簡(jiǎn)單的進(jìn)入方式。
我們通常將這種方法稱為阻力最小的路徑,其中一條路徑就是登錄憑據(jù)。只需一組用戶憑據(jù),您的整個(gè)網(wǎng)絡(luò)可能會(huì)落入敵人的手中。
任務(wù)
早在2018年,一家大型醫(yī)療保健組織就與我們簽約,對(duì)其外部網(wǎng)絡(luò)基礎(chǔ)設(shè)施進(jìn)行外部滲透測(cè)試。對(duì)于從測(cè)試的范圍,該組織向我們提供了他們的域名和IP地址范圍。當(dāng)然,目標(biāo)是從互聯(lián)網(wǎng)上識(shí)別危害組織的攻擊向量。
外部滲透測(cè)試清單
偵察
在其他滲透測(cè)試技術(shù)中,我無(wú)需提及或重復(fù)偵察在每次網(wǎng)絡(luò)攻擊或網(wǎng)絡(luò)滲透測(cè)試中的重要性。網(wǎng)絡(luò)殺傷鏈的這個(gè)階段是您被動(dòng)或主動(dòng)收集有關(guān)目標(biāo)的情報(bào)的地方。
我通常利用這個(gè)機(jī)會(huì)使用開(kāi)源情報(bào)(OSINT)工具和平臺(tái)進(jìn)行大量被動(dòng)情報(bào)收集,以制定外部滲透測(cè)試計(jì)劃。在這個(gè)階段,我?guī)缀醪皇褂脪呙韫ぞ邅?lái)攻擊目標(biāo)網(wǎng)絡(luò),因?yàn)槲铱梢垣@得制定攻擊策略所需要的幾乎所有信息。
那么,在這個(gè)階段我通常在尋找什么?好吧,在可以從OSINT中發(fā)現(xiàn)的大量信息中,我通常會(huì)重點(diǎn)關(guān)注的關(guān)鍵內(nèi)容包括:
· 子域
· 登錄門(mén)戶(Citrix、OWA、VPN、SharePoint等)
· 技術(shù)類型(IIS等)
· 電子郵件地址
· 用戶名(很多)
外部滲透測(cè)試工具
使用諸如Google(Google.com)、Shodan(Shodan.io)、Censys(Censys.io)、connect.data.com、Ferge、Recon ng、SimpleMail、The Harvester、SpiderFoot(SpiderFoot.net)、Email Hunter(Hunter.io)、VirusTotal(VirusTotal.com)、FOCA、Maltego和Pastebin(Pastebin.com)等工具、網(wǎng)站和平臺(tái),我能夠收集到大量關(guān)于我的客戶的信息,例如子域、電子郵件地址、用戶名、主機(jī)、網(wǎng)絡(luò)服務(wù)、開(kāi)放端口、先前違規(guī)行為泄露的憑據(jù)、登錄門(mén)戶等。
為了在寫(xiě)這篇文章的同時(shí)對(duì)我的客戶的姓名進(jìn)行保密,我使用了一個(gè)示例域和電子郵件搜索器來(lái)演示我獲取目標(biāo)客戶的用戶名格式和電子郵件地址(然后提取用戶名)的多種方法之一。
目標(biāo)發(fā)展
我在偵察階段花費(fèi)了大量時(shí)間并收集了大量信息,隨后我瀏覽了收集到的大量數(shù)據(jù),并戰(zhàn)略性地繪制出我的攻擊面和我將使用的攻擊技術(shù)。
在瀏覽這些數(shù)據(jù)時(shí),我對(duì)通常向組織的LDAP或AD環(huán)境進(jìn)行身份驗(yàn)證的應(yīng)用程序和網(wǎng)絡(luò)服務(wù)非常感興趣。
這可能是SMB、OWA、Autodiscover、VPN、Citrix、Jenkins、SharePoint、定制應(yīng)用程序等。一旦我發(fā)現(xiàn)了這樣的服務(wù)以及要攻擊的服務(wù),我就會(huì)組織我在偵察中發(fā)現(xiàn)的所有電子郵件地址和用戶名。
我確保已刪除了重復(fù)的電子郵件地址、用戶名,還交叉檢查了外部用戶名和內(nèi)部域用戶名的格式是否相同,或者是否存在差異。
在此階段結(jié)束時(shí),我發(fā)現(xiàn)了客戶端的外部OWA和Citrix應(yīng)用程序等,并且還獲得了近1,000個(gè)唯一用戶名。從這里開(kāi)始,我已準(zhǔn)備好進(jìn)入我的殺傷鏈的下一階段。
入侵
對(duì)于大多數(shù)攻擊,這一階段對(duì)手會(huì)開(kāi)始試圖獲得初始立足點(diǎn)。在這個(gè)階段,很多事情都是迭代的,因?yàn)檫@個(gè)階段使用的TTP會(huì)根據(jù)從偵察和目標(biāo)開(kāi)發(fā)階段收集的信息而變化。
在外部滲透測(cè)試期間,效率是關(guān)鍵,并且在大多數(shù)情況下,保持最簡(jiǎn)是您的最佳途徑。在滲透測(cè)試的早期,通常需要發(fā)現(xiàn)漏洞并對(duì)它們進(jìn)行利用。
然而,隨著對(duì)手的TTP不斷進(jìn)化,我們也必須不斷發(fā)展。話雖如此,一種基本但有效的攻擊技術(shù)是基于身份驗(yàn)證的攻擊,也稱為密碼暴力破解。
在典型的密碼暴力破解攻擊中,您有一個(gè)用戶名,您嘗試針對(duì)該用戶名嘗試多個(gè)可能的密碼,希望該用戶使用的是您列表中的密碼之一。
管理員變得更聰明,并開(kāi)始實(shí)施帳戶鎖定策略,因此,在登錄嘗試達(dá)到一定閾值后(例如五次嘗試后),帳戶將被鎖定。為了對(duì)抗這種控制,出現(xiàn)了一種新的基于身份驗(yàn)證的攻擊,稱為密碼噴射(有人稱之為水平攻擊、反向暴力破解等)。
通過(guò)這種攻擊,攻擊者會(huì)收集多個(gè)用戶名或電子郵件地址(取決于被攻擊的應(yīng)用程序或網(wǎng)絡(luò)服務(wù)的類型),然后針對(duì)所有用戶名或電子郵件地址嘗試使用一個(gè)密碼,以識(shí)別可能使用此類密碼的用戶之一。
這種黑客技術(shù)在現(xiàn)實(shí)世界中的攻擊和我的大多數(shù)滲透測(cè)試活動(dòng)中都有很高的成功率,并且這種情況將繼續(xù)存在。有多種工具可以執(zhí)行這種攻擊,但是,對(duì)于基于應(yīng)用程序的密碼噴射攻擊,我首選的工具是Burp Suite。
Burp Suite為我提供了足夠的空間來(lái)自定義我的密碼噴射,例如線程、節(jié)流、字符串grepping等。在為這次攻擊選擇密碼時(shí),我通常嘗試季節(jié)+年份(例如Summer2018、Winter19等)、公司名稱+數(shù)字(例如Company123、Company2003等)、先前公司違規(guī)行為、地點(diǎn)、運(yùn)動(dòng)隊(duì)等的想法。老實(shí)說(shuō),為密碼噴射攻擊選擇密碼沒(méi)有所謂的正確或錯(cuò)誤方法。
在針對(duì)客戶端的Citrix Web應(yīng)用程序設(shè)置和配置Web滲透測(cè)試工具Burp Suite中的所有內(nèi)容后,我開(kāi)始緩慢而穩(wěn)定地發(fā)起攻擊。我的第一輪噴霧給了我兩個(gè)有效的用戶憑據(jù),密碼為Winter2017。
使用發(fā)現(xiàn)的兩個(gè)用戶帳戶,我能夠以這些用戶的身份向客戶端的Citrix應(yīng)用程序進(jìn)行身份驗(yàn)證。然而,令我沮喪的是,沒(méi)有一個(gè)用戶在他們的Citrix應(yīng)用程序目錄中擁有應(yīng)用程序。
由于我已經(jīng)擁有兩個(gè)有效憑據(jù),因此我使用了Black Hills的MailSniper工具并轉(zhuǎn)儲(chǔ)了客戶端的OWA全局地址列表(GAL)。這為我的下一輪密碼噴射攻擊提供了額外的用戶名。
這一次,我嘗試對(duì)客戶的OWA進(jìn)行噴射攻擊,使用密碼Companyname123(我使用了實(shí)際客戶的名稱并在其后附加了數(shù)字123)。這給我?guī)?lái)了兩個(gè)額外的有效憑據(jù)。
這一次,其中一位用戶在其Citrix應(yīng)用程序目錄中有一個(gè)內(nèi)部SAP應(yīng)用程序,并且該SAP應(yīng)用程序?qū)⑹褂肐nternet Explorer打開(kāi)。
外部滲透測(cè)試中的橫向移動(dòng)
在橫向移動(dòng)階段,無(wú)論是從應(yīng)用程序級(jí)別還是網(wǎng)絡(luò)級(jí)別,攻擊者或滲透測(cè)試人員都已經(jīng)獲得了對(duì)目標(biāo)的某種級(jí)別的訪問(wèn)權(quán)限,包括有限訪問(wèn)權(quán)限或完全訪問(wèn)權(quán)限。
從這一點(diǎn)來(lái)看,未來(lái)的目標(biāo)是找到在目標(biāo)網(wǎng)絡(luò)內(nèi)移動(dòng)的方法,同時(shí)規(guī)避內(nèi)部網(wǎng)絡(luò)安全控制。
我們(對(duì)手/滲透性測(cè)試者)使用獲得的訪問(wèn)權(quán)限來(lái)收集額外的信息,以便在目標(biāo)的內(nèi)部網(wǎng)絡(luò)中移動(dòng)。
基本上,我們回到了偵察階段,這可以是基于主機(jī)的情報(bào)收集和/或基于網(wǎng)絡(luò)的情報(bào)收集。同樣,此階段使用的技術(shù)可能因許多因素而異。
Citrix突破
此時(shí),我已經(jīng)獲得了應(yīng)用程序級(jí)別的訪問(wèn)權(quán)限,我的下一個(gè)目標(biāo)是獲得網(wǎng)絡(luò)級(jí)別的訪問(wèn)權(quán)限。由于我有突破Citrix環(huán)境的經(jīng)驗(yàn),因此到了進(jìn)入網(wǎng)絡(luò)級(jí)別的時(shí)機(jī)了。
如果您有興趣閱讀有關(guān)Citrix突破的更多信息,NetSPI的同事們有一個(gè)很棒的博客(有關(guān)博客鏈接,請(qǐng)參閱On The Web部分)。為了執(zhí)行Citrix突圍攻擊,我使用Internet Explorer打開(kāi)了受害者的SAP帳戶并嘗試保存網(wǎng)頁(yè)的源代碼。
然后使用“文件”菜單中的“另存為”選項(xiàng),我導(dǎo)航到了C:\Windows\System32\目錄并調(diào)用Windows CMD 實(shí)用程序(cmd.exe)。
此彈出窗口打開(kāi)了CMD,讓我可以訪問(wèn)后端Citrix服務(wù)器。
通過(guò)訪問(wèn)后端Citrix服務(wù)器,我啟動(dòng)了一個(gè)PowerShell Empire listener,生成了一個(gè)PowerShell啟動(dòng)器,在Citrix服務(wù)器上執(zhí)行它,并從Citrix服務(wù)器回調(diào)到我的 Empire listener。
Kerberoasting
“關(guān)于Kerberoasting的評(píng)論和文章還不夠多,所以我不會(huì)在這里詳述它的解釋。我將直接討論接下來(lái)發(fā)生的事情。大多數(shù)情況下,Citrix服務(wù)器被認(rèn)為是具有高價(jià)值的系統(tǒng),因此只有有限數(shù)量的用戶在服務(wù)器上擁有管理權(quán)限。
話雖如此,我仍以非特權(quán)用戶身份訪問(wèn)Citrix服務(wù)器的用戶帳戶。但是,任何域用戶帳戶均可用于請(qǐng)求服務(wù)主體名稱(SPN),這是Kerberos身份驗(yàn)證使用的一種Windows特性,用于將服務(wù)實(shí)例與服務(wù)登錄帳戶關(guān)聯(lián)起來(lái);例如,運(yùn)行IIS的服務(wù)帳戶的SPN。
可以使用Windows的內(nèi)置實(shí)用程序setspn.exe在本地查詢服務(wù)帳戶的AD,也可以使用Empire、Impackets、Metasploit等工具遠(yuǎn)程完成。
我使用我的Empire會(huì)話,轉(zhuǎn)儲(chǔ)了SPN并開(kāi)始使用Hashcat破解密碼哈希。破解密碼的命令示例如下:
hashcat -m 13100 -a 0 spn.outputpassword.list -r best64.rule -o kerb.cracked
在查看SPN查詢輸出時(shí),我注意到一些帳戶屬于Administrators組,而Hashcat碰巧破解了一個(gè)此類帳戶(IIS_Admin)的密碼哈希。
憑證濫用/重用
在這次外部滲透測(cè)試收集的初始信息中,我獲得了一些關(guān)于內(nèi)部網(wǎng)絡(luò)的重要情報(bào),例如域管理員、企業(yè)管理員、域控制器等的列表。
因此,為了有效地使用新獲得的憑據(jù)來(lái)破壞域,我需要確定域管理員或企業(yè)管理員已登錄會(huì)話或之前已登錄的系統(tǒng)。
可以使用諸如netview.py、Invoke-EventHunter之類的工具來(lái)實(shí)現(xiàn)該目標(biāo)。在我確定了域管理員和企業(yè)管理員進(jìn)行會(huì)話的幾個(gè)系統(tǒng)之后,我使用IIS_Admin帳戶和破解的密碼啟動(dòng)了針對(duì)這些系統(tǒng)的CrackMapExec。
我確定了幾個(gè)系統(tǒng),其中IIS_Admin帳戶具有管理權(quán)限,并使用CrackMapExec中的Mimikatz模塊從這些框中提取憑據(jù)。
在提取的憑據(jù)中,有一個(gè)屬于域管理員!我需要做的最后一件事是根據(jù)域控制器確認(rèn)新域管理員憑據(jù)的有效性,并轉(zhuǎn)儲(chǔ)NTDS數(shù)據(jù)庫(kù)以進(jìn)行離線密碼破解和分析。
數(shù)據(jù)搜索和滲透
對(duì)手的主要目標(biāo)之一是訪問(wèn)或提取敏感/關(guān)鍵數(shù)據(jù),我們粗略地將之稱為目標(biāo)的”crown jewels“。它們可能是:
· 用戶憑據(jù)
· 秘方
· 藍(lán)圖
· 客戶資料
· 個(gè)人身份信息(PII)
· 病歷
· 財(cái)務(wù)數(shù)據(jù)
· 知識(shí)產(chǎn)權(quán)
滲漏階段是將數(shù)據(jù)從目標(biāo)的網(wǎng)絡(luò)環(huán)境移動(dòng)到攻擊者控制的系統(tǒng)(例如C2服務(wù)器)的階段。這通常是數(shù)據(jù)搜尋活動(dòng)的一部分。
在過(guò)去,滲透測(cè)試只是為了獲得域管理員(DA)級(jí)別的訪問(wèn)權(quán)限,這樣的日子已經(jīng)一去不復(fù)返了。
現(xiàn)在,外部滲透測(cè)試需要證明,如果您的測(cè)試和攻擊由真實(shí)世界的對(duì)手執(zhí)行,您的客戶可能會(huì)遭受業(yè)務(wù)風(fēng)險(xiǎn)和影響。話雖如此,這是我們測(cè)試的關(guān)鍵階段之一。
作為滲透測(cè)試人員,在將數(shù)據(jù)移出客戶環(huán)境之前,可能有必要與您的客戶確認(rèn)參與規(guī)則(RoE)是否要求數(shù)據(jù)滲漏。
如果允許,我會(huì)仔細(xì)分析要泄露的數(shù)據(jù)類型,以向客戶展示業(yè)務(wù)風(fēng)險(xiǎn)和影響。根據(jù)環(huán)境和受到攻擊的系統(tǒng),不同的滲漏技術(shù)可用于不同的情況。
最后的話——外部滲透測(cè)試
正如您在這篇文章中可能已經(jīng)注意到的那樣,我沒(méi)有在此測(cè)試中運(yùn)行單個(gè)漏洞掃描。為什么要提這個(gè)?有幾次我看到一些滲透測(cè)試報(bào)告或工作聲稱是外部滲透測(cè)試,但實(shí)際上,它們是漏洞評(píng)估。
關(guān)于滲透測(cè)試和漏洞評(píng)估之間差異的爭(zhēng)論已經(jīng)持續(xù)了很長(zhǎng)時(shí)間,在這里我只是想分享我執(zhí)行外部滲透測(cè)試的眾多方法之一,由于我不是專家,所以我將不再討論它。