標籤:

如何在IE/Edge瀏覽器中巧妙地傳輸HTA文件?

背景

當在為客戶開展滲透測試檢測時,和現實的攻擊者一樣我們經常會使用帶有攻擊性質的payload執行命令。隨著殺毒軟體對攻擊載荷的防禦能力越來越強, 並且很多客戶都將重點放在了檢測這一方面,所以攻擊者需要找到更新穎的技術才能在其目標上執行命令。

使用java程序以及flash漏洞的時代已經過去了,現在的瀏覽器都正在實現點擊播放,而且一些情況下,他們已經廢除了這些經常被攻擊者採用的技術方法。

你現在可以通過組策略禁用office軟體中的宏,導致攻擊者以前常用的方式失效。對象鏈接和綁定(OLE)是另外一種流行的攻擊方法,在過去一年中變得很普遍,攻擊者將可執行文件和office文檔進行綁定,進而執行命令。這可能是由於大多數人都將焦點放在了禁止宏運行上,而沒有在意文檔本身導致的吧。

很快,微軟通過限制文檔嵌入程序類型來緩解這一攻擊。進而大大減少了通過office進行入侵的可能性。也許你聽到在IE以及Edge瀏覽器中仍然還支持解析HTA文件可能不是很驚喜,這是一種非常老的攻擊方式,不過最近攻擊者一直在使用這種方式進行攻擊。

最近,Hancitor malspam研究員在研究惡意攻擊鏈中發現了使用HTA文件進行密碼盜竊。HTA文件同樣也在CVE-2017-0199中被大量使用。

廠商以及個人都將檢測重點放在了禁止宏和OLE嵌入上,你也許會想為什麼HTA文件到目前還是一個隱患。答案是儘管他們已經存在了很長時間,但因為來自廠商和第三方的努力,將這一攻擊範圍進行最小化處理,並且對HTA文件進行監控。因此,攻擊者只能通過監管最弱的方法執行HTA文件(很慶幸,它們還是可以執行的)。

什麼是HTA文件?

HTA文件通常是由HTML和像JScript和VBScript這樣的腳本構成,它就相當於一個普通的web頁面。但是HTA文件不同之處在於它們以完全信任模式進行,可以訪問普通頁面訪問不了的內容,比如通常標記為不安全腳本的ActiveX控制項。

這就意味著如果攻擊者在服務端提供了HTA文件(比如通過惡意網址),並且通過某種方法讓用戶點擊兩次警告,進而攻擊者就可以在用戶機器上執行任何命令。這種方式根本不用繞過任何windows採取的措施。

攻擊

從攻擊者角度來看,通常可能會攔截這種攻擊的是用戶使用的一些安全產品,比如web內容檢測代理,和URL掃描」沙箱」。

這些安全產品常常會對可執行文件進行監控,比如正在監視從用戶瀏覽器中下載的exe可執行文件,在未確認其安全性之前,將其鎖住使其無法運行。以及有些產品會執行沙盒,也就是說如果安全產品判斷這一軟體可能是病毒,那麼可執行文件會在沙盒中運行。

這兩件事情為正在想辦法傳輸惡意軟體的攻擊者出了一個難題。對於這些問題,我們開發了Demiguise。我們最近在執行檢測時,有一用戶使用了上述安全產品,然而我們需要將HTA可執行文件在不觸發這兩種安全產品的情況下傳輸到客戶機器上面,同時不會在沙箱中運行。

Demiguise通過創建包含HTA有效載荷的加密版本的HTML文件來開展工作。這就意味著web內容檢測代理對網頁內容看成一次普通的http請求,並且不會報警。

當html文件在用戶瀏覽器中顯示時,其中的javascript代碼會在調用msSaveBlob之前對HTA文件進行解壓縮和解密,從而直接從瀏覽器中下載已經解壓過的文件。

然後用戶會在運行hta文件時得到兩個提示,如果用戶接受了這兩個提示,那麼HTA文件就會成功執行。當然所有的過程,使用的文件類型都是簡簡單單的http請求,不是可執行文件類型,所以安全防護軟體不會發出警告和攔截。

環境密鑰

為了改善這次攻擊,避免程序在沙盒中運行,這一工具提供了環境密鑰的概念。

這一想法的概念是不在HTML中對加密密鑰直接採用硬編碼,而是通過javascript代碼在用戶工作環境中提取密鑰。它可以被認為是一個簽名,表明javascript代碼正在預期的環境中運行,而不在其他環境中。

通過javascript代碼做到這一點的好的方法是在目標網路上找到一些只能在在該網路存在的東西。舉個例子,內部網路進行託管的映像,或者客戶端的外網ip地址。

至於你如何確定一個環境密鑰,這對你來說就是一個很好的鍛煉方式了。但是,很多工具都可以做到的,比如BeEF和WebFEET,都可以在主動攻擊前進行一定的信息收集。

通過導出只有在特定網路中才存在的加密密鑰,你可以保證你的攻擊載荷不會在其他環境中運行,比如在沙箱中。事實上,不僅不會起作用,而且沙箱甚至不知道他是什麼文件,因為沒有進行解密。

在github上有對工具的介紹,如工具攻擊的完整流程以及環境密鑰的確定。其中還包括了一些演示視頻,比如運行hta文件時兩次警告,以及該工具輸出的典型內容。

防禦

由於攻擊者可以任意調用像msSaveBlob這樣的函數,導致檢測攻擊者簽名有些困難。更全面的方法就是完全禁用hta文件。可以通過使用軟體限制策略(SRP[10]),或者Device Guard對hta文件進行禁用。

另外一種方法就是修改hta文件的默認打開方式,使用記事本打開它,這樣就hta文件就不會被執行了。

注意:在Windows 10中測試時,使用Applocker阻止使用mshta.exe似乎無法正常工作。Windows

Update和Search bar等應用程序似乎無法正常運行。這可能由於其作為一些內部Windows應用程序一部分,因此如果您選擇使用Applocker來阻止HTA文件,則建議更多的研究。

結論

我們希望這篇文章可以證明即使供應商做了很大的努力,採取了很多措施,但是一些比較舊的攻擊方式做一些調整還是同樣有效的。

我們已經證明了HTA文件的風險,並展示了為什麼應該考慮阻止HTA文件。希望這一工具對您的工作有幫助。

參考鏈接

[1] msdn.microsoft.com/en-u

[2] blog.chromium.org/2017/

[3] blogs.technet.microsoft.com

[4] twitter.com/enigma0x3/s

[5] fireeye.com/blog/threat

[6] msdn.microsoft.com/en-u

[7] github.com/beefproject/

[8] github.com/nccgroup/Web

[9] github.com/nccgroup/dem

[10] technet.microsoft.com/e

[11] docs.microsoft.com/en-u

本文翻譯自:nccgroup.trust/uk/about ,如若轉載,請註明來源於嘶吼: 4hou.com/technology/708 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

踏雪無痕——對新型無文件後門 JS_POWMET 的簡單分析
Worthwhile BurpSuite Plugins
昨晚 那個曾經披露我國網軍信息的網路安全公司被黑了 頭像還被改成了屁股
那些年病毒用過的損招——攻擊反彙編
利用SAP 0day,四分鐘內黑掉華爾街

TAG:信息安全 |