
DNS 隧道將網域名稱系統變成了駭客的武器。 DNS 本質上是網路上龐大的電話簿。 DNS 也是允許管理員查詢 DNS 伺服器資料庫的底層協定。 到目前為止,一切似乎都清楚了。 但狡猾的駭客意識到,他們可以透過將控制命令和資料注入 DNS 協定來秘密地與受害電腦進行通訊。 這個想法是 DNS 隧道的基礎。
DNS 隧道的工作原理

互聯網上的一切都有自己單獨的協定。 而且DNS支援比較簡單 請求-回應類型。 如果你想看看它是如何運作的,你可以執行 nslookup,它是進行 DNS 查詢的主要工具。 您只需指定您感興趣的網域名稱即可要求地址,例如:

在我們的例子中,協定使用域 IP 位址進行回應。 從DNS協定來講,我做了一個地址請求或所謂的請求。 「一種。 還有其他類型的請求,DNS 協定將使用一組不同的資料欄位進行回應,正如我們稍後將看到的,這些欄位可以被駭客利用。
無論如何,DNS 協定的核心是將請求傳輸到伺服器並將其回應傳回客戶端。 如果攻擊者在網域請求中加入隱藏訊息怎麼辦? 例如,他不會輸入完全合法的URL,而是輸入他想要傳輸的資料:

假設攻擊者控制了 DNS 伺服器。 然後它可以傳輸資料(例如個人資料)而不必被檢測到。 畢竟,為什麼 DNS 查詢會突然變成非法?
透過控制伺服器,駭客可以偽造回應並將資料傳回目標系統。 這使得他們能夠將隱藏在 DNS 回應各個欄位中的消息傳遞給受感染電腦上的惡意軟體,並包含在特定資料夾內進行搜尋等指令。
這次攻擊的「隧道」部分是 來自監控系統檢測的數據和命令。 駭客可以使用base32、base64等字元集,甚至對資料進行加密。 搜尋明文的簡單威脅偵測實用程式不會偵測到此類編碼。
這就是 DNS 隧道!
DNS 隧道攻擊的歷史
一切都有一個開始,包括為了駭客目的而劫持 DNS 協定的想法。 據我們所知,第一個 這次攻擊是由 Oskar Pearson 於 1998 年 XNUMX 月在 Bugtraq 郵件清單上實施的。
2004 年,Black Hat 在 Dan Kaminsky 的演講中引入了 DNS 隧道作為駭客技術。 因此,這個想法很快就發展成為一個真正的攻擊工具。
如今,DNS 隧道在地圖上佔據可靠的位置 (資安部落客經常被要求解釋)。
你聽說過嗎 ? 這是網路犯罪團體(很可能是國家資助的)持續進行的活動,目的是劫持合法的 DNS 伺服器,以便將 DNS 請求重新導向到他們自己的伺服器。 這意味著組織將收到指向駭客運行的虛假網頁的「不良」IP 位址,例如 Google 或 FedEx。 同時,攻擊者將能夠獲取使用者帳戶和密碼,並在不知情的情況下將其輸入到此類虛假網站上。 這不是 DNS 隧道,而是駭客控制 DNS 伺服器的另一個不幸後果。
DNS 隧道威脅

DNS 隧道就像是壞消息階段開始的指示器。 哪個? 我們已經討論了幾個,但讓我們來建造它們:
- 數據輸出(滲漏) – 駭客透過 DNS 秘密傳輸關鍵資料。 這絕對不是從受害計算機傳輸信息的最有效方法 - 考慮到所有成本和編碼 - 但它有效,同時 - 秘密!
- 命令與控制(縮寫為C2) – 駭客使用 DNS 協定透過以下方式發送簡單的控制命令: (遠端存取木馬,縮寫RAT)。
- IP-Over-DNS 隧道 - 這可能聽起來很瘋狂,但有些實用程式可以在 DNS 協定請求和回應之上實現 IP 堆疊。 它使用FTP、Netcat、ssh等進行資料傳輸。 一個相對簡單的任務。 極其不祥!
偵測 DNS 隧道

偵測DNS濫用的方法主要有兩種:負載分析和流量分析。
在 負荷分析 辯護方尋找可透過統計方法偵測到的來回資料中的異常:奇怪的主機名稱、不經常使用的 DNS 記錄類型或非標準編碼。
在 流量分析 與統計平均值相比,估計每個網域的 DNS 請求數量。 使用 DNS 隧道的攻擊者會向伺服器產生大量流量。 理論上,明顯優於普通的 DNS 訊息交換。 這需要監控!
DNS 隧道實用程式
如果您想進行自己的滲透測試,並了解您的公司對此類活動的偵測和回應能力如何,可以使用多種實用程式。 他們都可以在該模式下隧道 DNS 上的 IP:
- – 可在多個平台上使用(LinuxMac OS、FreeBSD 和 Windows它允許你在目標電腦和主機之間建立 SSH shell 連線。這裡有一個不錯的範例。 關於設定和使用 Iodine。
- – Dan Kaminsky 的 DNS 隧道項目,用 Perl 編寫。 您可以透過 SSH 連接到它。
- - “DNS 隧道不會讓你生病。” 建立加密的 C2 通道,用於傳送/下載檔案、啟動 shell 等。
DNS 監控實用程式
以下是可用於偵測隧道攻擊的幾個實用程式的清單:
- – 為 MercenaryHuntFramework 和 Mercenary 所寫的 Python 模組Linux讀取 .pcap 文件,提取 DNS 查詢,並執行地理位置匹配以輔助分析。
- – 讀取 .pcap 檔案並分析 DNS 訊息的 Python 公用程式。
有關 DNS 隧道的 Micro 常見問題解答
以問題和答案的形式提供有用的信息!
Q:什麼是隧道?
關於: 它只是透過現有協定傳輸資料的一種方法。 底層協定提供專用通道或隧道,然後用於隱藏實際傳輸的資訊。
Q:第一次 DNS 隧道攻擊是什麼時候發生的?
關於: 我們不知道! 如果您知道,請告訴我們。 據我們所知,有關該攻擊的第一次討論是由 Oscar Piersan 於 1998 年 XNUMX 月在 Bugtraq 郵件列表中發起的。
Q:哪些攻擊類似 DNS 隧道?
關於: DNS 遠非唯一可用於隧道的協定。 例如,命令與控制 (C2) 惡意軟體通常使用 HTTP 來屏蔽通訊通道。 與 DNS 隧道一樣,駭客隱藏了他的數據,但在這種情況下,它看起來像是來自常規 Web 瀏覽器訪問遠端網站(由攻擊者控制)的流量。 如果監控程式沒有配置為感知,這可能會被忽視 出於黑客目的濫用 HTTP 協定。
您希望我們協助您進行 DNS 隧道偵測嗎? 查看我們的模組 並免費試用 !
來源: www.habr.com
