漏洞介紹
SigRed漏洞的高危害性在于其是可蠕蟲的,也就是可以自傳播的,無需用戶交互就能傳播到易受攻擊的設備上,允許未經身份驗證的遠程攻擊者獲得針對目標服務器的域管理員特權,并完全控制組織的IT基礎架構。
漏洞運行機制
攻擊者可以通過將惡意DNS查詢發(fā)送到Windows DNS服務器并實現(xiàn)任意代碼執(zhí)行來利用SigRed漏洞,從而使黑客能夠攔截和操縱用戶的電子郵件和網絡流量,使服務不可用,收獲用戶的電子郵件。
當DNS服務器無法解析給定域名(例如www.google.com)的IP地址時,查詢會被轉發(fā)到權威DNS服務器(NS),也就是轉發(fā)查詢。
為了利用這個查詢邏輯,SigRed首先需要配置一個域的(“ deadbeef.fun”)NS資源記錄,用來指向惡意名稱服務器(“ns1.41414141.club”),然后查詢目標DNS服務器的域,以便從名稱服務器獲得與域或其子域相關的所有后續(xù)查詢的解析響應。
這些設置完成后,攻擊者只要發(fā)送一個大小超過64KB的SIG記錄,就能導致在分配的小緩沖區(qū)上引發(fā)大約64KB的受控堆緩沖區(qū)溢出,觸發(fā)惡意 DNS 查詢,然后在分析轉發(fā)查詢的傳入響應的函數(shù)中觸發(fā)整數(shù)溢出漏洞(“dns.exe!sigwirelead“)。
換句話說,該漏洞針對的是負責為資源記錄分配內存的函數(shù),一旦生成大于65535的字節(jié)數(shù),就會導致整數(shù)溢出,分配變小。不過,一條DNS消息的UDP限制為512字節(jié)(如果服務器支持擴展機制,則限制為4096字節(jié)),而TCP 限制為65535字節(jié),因此,僅帶有長簽名的SIG響應不足以觸發(fā)此漏洞。但攻擊者可以巧妙地利用DNS響應中的DNS名稱壓縮功能,從而利用上述操作將緩沖區(qū)大小增加,進而依舊達到緩沖區(qū)溢出的目的。
此外,SigRed還能在特定的一些情況下通過瀏覽器遠程觸發(fā),例如基于Internet Explorer和非Chromium的Microsoft Edge瀏覽器,攻擊者可以利用Windows DNS服務器對連接重用和查詢管道功能的支持,在訪問其控制下的網站時,將HTTP請求負載內的DNS查詢“偷偷轉發(fā)”到目標DNS服務器。甚至,還可以實現(xiàn)write What where功能,進一步利用漏洞泄漏內存地址,從而讓對手劫持執(zhí)行流并使其執(zhí)行意外的指令。
令人驚訝的是,DNS客戶端(“dnsapi.dll)不易受同一個bug的影響,這使得研究人員懷疑“微軟為DNS服務器和DNS客戶端設置了兩個完全不同的代碼基,并且沒有在它們之間同步漏洞補丁?!?/p>
緩解措施
Windows DNS服務器作為核心網絡組件,一旦DNS服務器泄露是非常嚴重的安全問題,而在大多數(shù)情況下,它使攻擊者離破壞整個組織僅一寸之遙,企業(yè)勢必要引起重視。雖然微軟表示目前還沒有證據(jù)表明該漏洞已經被利用,但建議用戶立即安裝安全補丁:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350
此外,用戶也可以DNS消息的最大長度(通過TCP)設置為“ 0xFF00”,以消除緩沖區(qū)溢出的可能。
到此這篇關于Windows DNS服務器曝"蠕蟲級"漏洞,已存在長達17年的文章就介紹到這了,更多相關Windows DNS服務器曝漏洞內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!