
我最近觀看了一場滲透測試網路研討會,該研討會演示了 DNS 隧道攻擊。在網路研討會的問答部分,有人詢問如何防止這種隧道效應。建議不允許內部 DNS 伺服器解析外部位址並透過代理程式運行所有此類外部解析。有人可以解釋為什麼這會阻止隧道。如果用戶端正在執行某些程序,將精心設計的 DNS 封包傳送到具有隱藏負載的代理,它最終不會到達相關的 DNS 伺服器並透過代理傳回給客戶端嗎?
答案1
簡短回答:應用程式感知代理能夠以協定智慧方式分析資料包的內容,並且可以確定通過的重組資料包的有效負載是否符合該協定的資料結構。因此,代理程式會知道您是否嘗試在 DNS 段中傳輸 HTTP 資料(例如)。
答案2
代理可以做的另一件事(或者如果我擔心隧道的話我會做的事情 - 並且不需要代理 - 只需一個像樣的路由器) - 是簡單地嚴格限制端口 53 上的流量。隧道,但會大大降低其效用。 (例如,允許在 120 秒的時間間隔內傳輸 100kbit 的資料。這相當於每秒 < 100 位元組的最大吞吐量,因此您無法從此連接獲取大量資料)