標籤:

假借可信的在線服務進行C&C攻擊

本文主要針對的讀者是一些大型組織,這些組織通常會使用網路流量的聲譽過濾系統(reputational filtering)來防範惡意代碼的傳遞,並對數據進行過濾。這也是許多下一代防火牆和網路代理進行安全防禦的一個發展方向,這其中就包括Zscaler等基於雲的安全服務商。

聲譽過濾通常會屏蔽已知的惡意網站,並對所有的網路流量進行病毒掃描。因為我在執行模擬攻擊時,就發現聲譽過濾會在訪問未分類的網站時向我發出警告。

從理論上來說,任何用作攻擊的URL和域在發起攻擊時都需要在Web瀏覽器中和用戶進行交互。這樣,利用聲譽過濾就可以有效地排除在攻擊的發送和攻擊階段使用新設置的基礎設施,這是因為這些活動是在受害者不知情的情況下進行的。這樣攻擊者就只能選擇欺騙系統的方式來發起進攻。

但實際情況卻是,許多聲譽過濾解決方案存在著底層設計的漏洞, URL和域的分類有時可能像表單提交一樣簡單,沒有經過人工驗證,這樣網站上託管的內容就無法被真正檢查到。利用這些底層漏洞,攻擊者就可以將他們的基礎設施提交給網站提供商進行審核,在審核被通過並被分配適當的許可類別後,就可以完全避開聲譽過濾了。

當聲譽過濾器不允許公開提交網站時,攻擊就變得更加困難了。例如,思科網路安全設備(WSA)是一種只允許思科客戶提交分類請求的解決方案,其他幾家設備提供商也採取了類似的做法。利用該方法,供應商經常對錯誤分類和濫用的報告作出迅速反應。

使用受信任的站點進行攻擊

通常用戶會對把一些常用的網站默認設置為信任站點,例如谷歌、亞馬遜、微軟、推特……。如果攻擊者在他們的攻擊路徑中利用這些站點,則聲譽過濾將是無效的,這是聲譽過濾的一個軟肋。

網站的聲譽過濾不會對託管在受信任站點上的惡意命令進行防護

這個攻擊想法很簡單,因為只要該站點受信任,那隻要搞定該站點,那利用它進行惡意有效載荷有不會被發現了。例如 Facebook的帖子,共享的Google Drive文件和Amazon S3託管的文件。在大多數情況下,如果運行惡意軟體本身就可以將命令發送到所選擇的可信服務,則可以建立一個全功能的命令和控制(C&C)通道。

使用受信任的站點來對惡意軟體發布命令,並返回結果

最危險的地方就是最安全的地方

一些黑客高手會利用複雜的混淆程序和加密來保護C&C通道,我在進行模擬攻擊時也採取了類似的方法。讓我們再次使用一個簡單的對稱加密密鑰來重複一下上面提到的攻擊案例:

攻擊者控制的未加密和加密的頁面

與真實的攻擊相比,模擬攻擊的一個優勢是加密密鑰只有受害者和我知道。例如,一個專門經過設計的內部DNS TXT記錄可以包含秘鑰,或者在受害者機器上設置環境變數。如果模擬的惡意軟體能在規定的攻擊範圍之外找到目標,我就可以確信它不會運行。

當然,如果將加密的通信發送到Facebook的好友牆上,則看起來很可疑,但如果包含在S3存儲桶中的文件或GitHub上的Gist,則就很容易被忽略。

預警線攻擊策略

道理很簡單,就像小時候玩的遊戲一樣,在門口栓上一根線,只要有人進來碰到這根線,就會發出警告。同樣,我在模擬攻擊中也使用了同樣的原理,通過設置一個信標來進行預警。這樣攻擊者就會在預警為發出前,安然地進行攻擊。

攻擊鏈

攻擊者可將攻擊偽裝成來自臉書或推特的好友點贊,已加星號的Gist或發布到公告欄的特定消息。在這個階段,攻擊者的主要任務就是確保攻擊不被發現。

預警線攻擊策略非常實用,如果攻擊者看到有第二次攻擊請求,或在很短的時間內看到下一階段的攻擊被啟動,則立馬就會懷疑攻擊已經被檢測到,很可能攻擊發生在沙箱中。如果是這樣的話,攻擊者可以更換新的電子郵件帳戶,其它的可信網站或網路釣魚方案重新發起攻擊。

在模擬攻擊時,我做了一些有趣的觀察,即只要關注攻擊者所利用的短網址,就可以知道攻擊是否被跟蹤。因為如果我們看到點擊次數的增加,就可以懷疑有人發現了攻擊。而且,還可以看到這些跟蹤來自哪裡以及他們使用的瀏覽器。

點擊次數的增加可能表明分析師正在監控攻擊路徑

VirusTotal是一個提供免費的可疑文件分析服務的網站,這是網路維護者經常要用的一把利器。但凡事都有兩面性,對於攻擊者和我的模擬攻擊來說,這也是一個有用的工具。當然,好的OPSEC可以防止攻擊者直接將惡意軟體上傳到受信的網站,但是任何與攻擊文件的校驗和值匹配的上傳的定期檢查或提醒也同樣對攻擊者有價值,如果攻擊者看到自己的攻擊已被列入掃描,就會另選其它方法。

如果惡意軟體已進入了掃描範圍,則提示攻擊者要注意了

圖3中所介紹的對稱加密可以被改進為一個包含一次性在線密鑰。一旦在線密鑰被攻擊者的有效載荷檢索到,則這個載荷就會被立即刪除,從而防止任何分析人員對攻擊的過程進行分析,以暴露秘密,所以這個一次性的密鑰又是一個非常有用的攻擊預警裝置。

如果攻擊者看到一次性在線密鑰被重複使用,則攻擊就會結束。

端到端的模擬攻擊

以上我把一些攻擊預警的技術都做了一些大概地介紹,下面我會通過一次端到端的模擬攻擊,把這些預警技術應用到其中。

在進行模擬攻擊時,我對先執行了一個全面的開源偵察,然後確定了數百名攻擊目標,另外,我還可以在某些情況下確定了他們所在公司的位置。

由於我在計劃發起模擬攻擊時,出現了一種DDE攻擊技術,它可以利用Office套件中的漏洞發起攻擊。所以我認為這是一個不錯的攻擊手段,於是我選擇了利用Outlook進行了攻擊,如果攻擊目標回復了我所發過去的電子郵件,則就會開始執行攻擊代碼,本次模擬的網路釣魚活動針對的是攻擊目標所預定的酒店。

一開始,我發送的前10封電子郵件都沒有收到回復,最重要的是,我所嵌入的攻擊代碼都沒有被觸發。不過為了防止被檢測到,在這次攻擊中,我使用了Github上的Gist來對攻擊是否成功進行指示。由於在我發起的模擬攻擊中,這個預警線從未被觸發,所以我可以繼續對確定的更多目標發起同樣的攻擊。

在我的努力下,終於有一名受害者進行了回復。緊接著,我利用該回復就執行了一個非常短的PowerShell代碼片斷,該代碼片段下載並執行了Github上的一個Google 短鏈接的Gist,隨後又使用GitHub API對某個Gist進行了了解,之後我創建了一個登錄註冊表項,該註冊表項創建了另一個隱藏的PowerShell腳本,並在下次登錄時從另一個Google短鏈接的Gist中執行代碼。作為一個額外的保護層,PowerShell腳本使用一個已知的特定環境變數進行加密,該環境變數是在我的目標環境中設置的。

這樣,我就可以檢查攻擊的時間,以及與短鏈接有關的分析。分析發現,所有的時間和預警措施都與以上的理論分析是一致的,在對受害目標進行攻擊時,我的預警線始終都沒有被觸發。所以,我現在完全可以開始我的遠程惡意木馬安裝了。

安裝後,只需等待下一次重啟,我所安裝的惡意木馬就會完全嵌入在Gist的內容中。這意味著,攻擊者也可以使用GitHub作為C&C通道,解析Gist任務命令。此時,我實際上已經完全控制了受害者的設備,並能訪問受害者可以獲得的所有網路資源和數據。

總結

通過模擬攻擊,我想要告訴大家的是沒有什麼東西能夠百分百地保證保證網路安全,即使你把它標位可信,它仍然可能被攻擊者作為利用工具。

本文翻譯自:cyberis.co.uk/blog/atta 如若轉載,請註明原文地址: 4hou.com/web/9380.html 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

深入剖析Polycom HDX系列視頻會議系統的RCE漏洞
義大利再現一家Hacking Team 這是怎麼回事?
如何從物理隔離設備里偷出數據?研究人員再次花式秀技
密碼學I:離散概率(續)
微軟怎樣才能打消大家對 Windows 的顧慮?

TAG:信息安全 |