天天看點

實作大規模中間人攻擊的核武器:DNS劫持

本文講的是實作大規模中間人攻擊的核武器:DNS劫持,現代社會,攻擊者通過受害者通路網頁的行為反複劫持銀行賬戶是可行的。用不着浏覽器漏洞利用,也看不到任何警告。對網絡罪犯而言,這些攻擊又廉價,成功率又高。

實作大規模中間人攻擊的核武器:DNS劫持

對頭,這裡所說的攻擊就是DNS劫持。DNS劫持是受害者DNS請求被攔截并傳回虛假響應的一種攻擊類型。這種攻擊能在保持URL欄不變的情況下,重定向使用者到另一個網站。

舉個例子,如果受害者通路 wf.com (美國富國銀行集團),DNS請求可能會被發送到攻擊者的DNS伺服器,然後傳回攻擊者用以記錄登入資料的Web伺服器位址。

2010年以來,通過DNS劫持進行的中間人攻擊(MITM)數量有所上升。這改變了MITM攻擊的威脅模型。因為在這之前,大規模MITM攻擊基本上是聞所未聞的。

究其原因,一般,攻擊者想MITM某人流量時,他們需要處理全部的流量,比如說,通過一個代理。這樣一來,每個受害者都會耗用可觀的帶寬,意味着攻擊者需要建構相當的基礎設施。這種事,很可能造成成本比利潤還高,太不劃算了。

不過,對攻擊者而言幸運的是,用戶端用作DNS解析的伺服器,基本上屬于不用修改其他網絡設定就能改變的東西。是以,DNS成為了小巧簡單的攔截對象,造成了DNS劫持惡意軟體的上升。

2010年,我們見識到了DNSCHANGER——一款運作于受害者主機上,并通過 Windows API 修改DNS伺服器的惡意軟體。2014年,我們通過SOHO惡意軟體見證了該攻擊原理的進化更新。SOHO程式通過CSRF(跨站請求僞)傳播,基本上,它發送很多請求,在192.168.0.0、192.168.1.1、10.0.0.1等界面嘗試大量品牌路由器的預設密碼,試圖找出并修改受害者路由器的DNS伺服器。

由于路由器通過DHCP設定絕大多數其用戶端的DNS伺服器,該DNS伺服器便會被網絡中的成員主機使用。(基本上,大多數用戶端從DHCP伺服器接收DNS伺服器設定,該DHCP伺服器很多時候就是其路由器充任。)然後,攻擊者可以攔截包含有到TLS站點(https)的重定向或超連結的HTTP請求,将這些請求修改成普通的HTTP。該操作與TLSSTRIP類似。

BSidesSF上放出一款此類工具,名為“DNTLSSTRIP”。它能幫助滲透測試員執行DNS劫持,動态攔截并修改HTTP資料。這款工具是子產品化的,使用者想動态攔截任何協定都可以,隻需添加相應子產品即可。

随該工具釋出的,還有關于DNS劫持正反兩面用法的演講,比如滲透測試員可怎樣在公司網絡中使用DNS劫持,網絡罪犯會怎麼使用,你又該怎麼防範等等。這會讓我們延伸想到:一旦進入某網絡,能不能利用專用DNS獨霸整個網絡呢?對此,BSidesSF上做出了模拟示範。

公司環境比普通個人或家庭環境的風險高很多,正因如此,攻擊者特别中意滲透給定網絡。(假設攻擊者已經通過網絡釣魚之類的常見手段,在網絡中建立了小小的橋頭堡。)

進入這種網絡,攻擊者最愛用的方法一般是針對性攻擊,比如路由器漏洞利用(RCE)或者預設密碼攻擊。是以,最好從攻擊者對給定網絡的路由器使用RCE的角度考量這種攻擊。并且以此為基礎,攻擊者或者滲透測試員可以在網絡中鋪開,DNS劫持的利用機會也是大把的。

鑒于大量服務通過非加密信道更新,而且不檢查下載下傳的安裝包是否真實,攻擊者利用MITM獲得多台計算機控制權的途徑也是很多的。

比如CVE-2016-1252,一個APT(進階軟體包工具)簽名繞過漏洞利用。黑客組織手握大量類似漏洞和比對的零日漏洞利用絲毫不令人意外。攻擊者或許也用不着繞過TLS,因為大部分Linux發行版的預設APT源都不使用TLS。

是以,攻擊者隻需為關鍵服務或者自動更新的服務(比如用crontab設定定時進行apt-get更新),推送虛假關鍵更新就行了。不難想象,這種攻擊執行幾天之後,攻擊者将獲得網絡中大量主機的通路權。利用DNS,攻擊者可以僅用TXT記錄就建立隐蔽C&C信道,就跟DNSCAT(一款利用DNS隧道繞過防火牆的工具,堪稱隧道通信的瑞士軍刀)似的。

那麼,防禦者該怎樣阻止此類攻擊呢?

上述所有攻擊方法都依賴于讓出站DNS請求發送到任意伺服器。是以,将出站DNS請求引至防火牆層級未知伺服器,或“離線”公司資源的終端/AV用戶端,即可解決問題。

這将完全清除上述場景中使用的主要攻擊方法,讓我們得以封鎖流向外部DNS伺服器的所有請求,也就擋住了攻擊者利用DNS作為C&C信道的通路。不過,利用自動更新軟體的攻擊方法還是擋不住。是以,在可能的情況下嘗試使用端到端加密還是很重要的。

最後,說個實用性問題:在IDS/IPS層解決通往未知DNS伺服器的黑洞請求是最有效的,就像tripwire所做的那樣。

原文釋出時間為:二月 5, 2017

本文作者:nana

本文來自雲栖社群合作夥伴安全牛,了解相關資訊可以關注安全牛

繼續閱讀