迅速理解掌握滲透測試技巧 施展各種難以捕獲攻擊手法

從紅隊角度看攻擊演練 強化資安防護與應變能力

2022-04-28
在本章中,您將專注於紅隊策略,利用企業基礎設施漏洞,獲取憑證瞭解內部網路情況以及在主機和網路之間進行樞紐測試。我們將在沒有執行任何漏洞掃描程式的情況下完成任務。(本文擷取自『The Hacker Playbook 3 中文版:滲透測試實戰(紅隊版)』一書第4章)

作為紅隊,找到目標突破口可能很複雜,而且需要大量資源。在本書前兩版中,我們複製了受害者的身份驗證頁面,購買了相似的網域名稱,建置了釣魚網站,產生自訂的惡意軟體等。

有時候我會告訴紅隊……一定要保持簡單。很多時候我們提出了瘋狂複雜的計畫,但是最終發揮作用的是最簡單的計畫。

其中一種最基本的技術是密碼暴力破解。但是,作為紅隊,我們必須瞭解如何巧妙地做到這一點。隨著公司的發展,公司引入了更多的技術和工具。對於攻擊者來說,這無疑提供了施展能力的舞台。當公司開始連接網際網路時,我們開始看到身份驗證技術應用在電子郵件(Office 365或OWA)、通訊(Lync、XMPP、WebEx)工具、協作工具(JIRA、Slack、Hipchat、Huddle),以及其他外部服務(Jenkins、CMS網站、支援網站)。這些是我們想要攻擊的目標。

我們嘗試攻擊這些伺服器/服務的原因是,我們正在尋找根據受害者的輕型目錄存取協定(LDAP)/活動目錄(AD)基礎設施進行身份驗證的應用程式。這可以透過某些活動目錄集合、單點登入過程或直接管理活動目錄。我們需要找到一些常用的憑證,從而可以進行下一步攻擊。從偵察階段開始,發現並識別了大量電子郵件和使用者名稱帳戶,可以透過所謂的密碼噴灑(Password Spraying)實施攻擊。我們將針對所有不同的應用程式,嘗試猜測基本密碼,正如在現實世界的進階持續性滲透(APT)攻擊事件中看到的那樣(US-CERT文章:http://bit.ly/2qyB9rb)。

我們為什麼要對不同的外部服務進行身份驗證?

‧某些身份驗證來源不會記錄來自外部服務的嘗試。 

‧雖然我們通常會看到需要雙重認證的電子郵件或VPN,但是面向外部的聊天系統可能不需要。 

‧密碼重複使用率非常高。 

‧有時外部服務不會在多次錯誤嘗試時鎖定AD帳戶。

目前有許多工具可以用於暴力破解,但是這裡我們只會主要介紹其中幾個。第一個是SpiderLabs(http://bit.ly/2EJve6N)的Spray工具。雖然Spray使用時有點複雜,但是我非常喜歡這個工具提供的密碼「噴灑」功能。例如,該工具支援 SMB、OWA和 Lync(Microsoft Chat)協定。

要使用密碼噴灑功能,需指定以下內容。

• spray.sh -owa 。

正如您將在下面的範例中看到,我們執行Spray工具,攻擊cyberspacekittens公司的虛構OWA郵件伺服器(實際上根本不存在),當它嘗試使用者名稱peter和密碼 Spring2018時,身份認證通過了(您可以透過資料長度判斷是否成功),如圖4.1所示。

我經常遇到的一個問題是該嘗試哪些密碼,因為在鎖定帳戶之前,您只能進行有限次數的密碼嘗試。這個問題沒有明確答案,嘗試的內容高度依賴於攻擊目標。

我們曾經成功嘗試非常簡單的密碼,如「Password123」,但現在使用這種簡單密碼的使用者越來越少。通常我們嘗試的憑證密碼如下。

‧季節+年份。 

‧當地運動隊+數字。 

‧查看之前的洩露事件,找到目標公司的使用者並使用類似的密碼。 

‧公司名稱+年份/數字/特殊字元(!、$、#和@)。

使用這些密碼,我們可以24小時緩慢進行掃描嘗試,以免觸發任何帳戶鎖定。請記住,只需要一個密碼就可以進入目標系統!

圖 4.1 這是一個使用Curl針對OWA進行身份驗證的快速腳本 

Spray工具配置非常簡單,並且透過設置可以應用在其他應用程式。您需要做的是擷取密碼嘗試的POST請求(您可以在Burp Suite中擷取請求),複製所有請求資料,並將其保存到檔中。對於任何需要暴力破解的欄位,您需要提供字串「sprayuser」和「spraypassword」。

舉個例子,在我們的環境中,post-request.txt檔案將如下所示:  

POST/owa/auth.owa HTTP/1.1 Host: mail.cyberspacekittens.com User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: https://mail.cyberspacekittens.com/owa/auth/logon.aspx?replaceCurrent=1&url=https%3a%2f%2fmail.cyberspacekittens.com%2fowa%2f Cookie: ClientId=VCSJKT0FKWJDYJZIXQ; PrivateComputer=true; PBack=0 Connection: close Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded Content-Length: 131 destination=https%3A%2F%2Fcyberspacekittens.com%2Fowa%2F&flags=4&forcedownlevel=0&username=sprayuser@cyberspacekittens.com&password=spraypassword&passw ordText=&isUtf8=1

如同前面提到,spray.sh的另一個優點是它支援SMB和Lync協定。另一個可以利用Spraying結果的工具叫作Ruler(https://github.com/sensepost/ruler)。Ruler是Sensepost撰寫的工具,允許您透過MAPI/HTTP或RPC/HTTP與Exchange伺服器進行互動。雖然這裡主要討論使用Ruler進行暴力破解/資訊蒐集,但是這個工具還支援一些持續性攻擊功能,我們將進行簡單說明。

(未完,精采完整內容請見『The Hacker Playbook 3 中文版:滲透測試實戰(紅隊版)』全書)


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!