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