天天看點

運用DNS繞過安全裝置的Oday.

一、DNS介紹

DNS域名系統是網際網路關鍵的基礎設施之一,它是一個将域名與IP位址互相映射的全球分布資料庫。對于惡意DNS的過濾、檢測惡意網站域名、僵屍網絡和網絡隐秘通道發現是安全防護裝置中必不可少的一種手段。

運用DNS繞過安全裝置的Oday.

二、原理

RFC 1035規定了域名每個标簽不超過63位元組,域名總長不超過255位元組。可以含有任意8bit值,通常情況下域名标簽由英文字母、數字和連字元構成。RFC 2181進一步明确了,DNS本身不對域名所含字元内容進行限制。一些文獻中驗證了ISC BIND等常用DNS伺服器軟體對二進制域名的支援。盡管在RFC1 123 之中對于DNS軟體支援無法轉換為可列印格式的資源記錄,内部存儲不能使用文本格式。由于Letter Digit Hyphen規則的域名含有可列印字元,如此産生了兩種問題,其一為大多數程式對于域名的處理采用字元串函數,可能會對于某些特定結束字元進行處理(例如C語言中對于000進行處理),其二DNS伺服器對于特殊字元進行處理後依然傳回解析結果,某些程式過濾惡意DNS域名并未考慮。

三、測試方法

用PYTHON socketserver和struct開發簡單的DNS伺服器進行測試,再使用DNSPython子產品作為DNS請求的測試。在對DNS伺服器測試時,我們向被測的伺服器發送正常的或者帶有特殊字元的DNS兩種請求方式,如果DNS伺服器兩種資料封包傳輸的請求結果存在差別則證明其二失敗,否則成功。

運用DNS繞過安全裝置的Oday.

四、危害

1.隐藏惡意軟體域名:

通過該方法可繞過基于DNS流量檢測的流量分析軟體、算法和相關安全裝置及線上檔案分析系統,通過構造加入特殊字元的DNS請求,既保證了域名成功解析,又保護了惡意域名難以被發現。

2.隐藏DNS隐蔽通道

将僞造源位址的方法與本文域名欺騙方法結合,可以起到更好的DNS隧道流量隐蔽效果,通過僞造源位址來分散DNS隧道流量,對内網資料洩密和遠端控制隧道加入了新的挑戰。

3.繞過DNS過濾

利用這個方法進行DNS過濾裝置的穿透具有一定的可行性,目前已發現大量帶有域名過濾的安全裝置.存在被繞過的風險。

運用DNS繞過安全裝置的Oday.

五、修複

所謂有攻就有防,通過DNSPython修複,在dns記錄中,加入過濾異常的特殊字元。 同時在安全裝置中擴大過濾DNS請求特殊字元的範圍。

本文章轉自安全大咖vr_system分享的原創文章,經作者授權同意後墨者安全轉載來的,如有任何版權或者内容錯誤問題,請聯系小編删除,謝謝!僅供安全愛好者研究學習,對用于非法途徑的行為,釋出者及作者不承擔任何責任。

繼續閱讀