您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何進行漏洞復現及修復,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
該漏洞主要是由于Windows TCP/IP堆棧在處理選項類型為25(0x19,遞歸DNS服務器選項)且長度字段值為偶數的ICMPv6的路由廣播數據包時,處理邏輯存在紕漏,導致存在遠程代碼執行漏洞。成功利用該漏洞的攻擊者可以在目標機器(主機或服務器)上執行任意代碼。
影響范圍:
? Microsoft Windows 10 1709
? Microsoft Windows 10 1803
? Microsoft Windows 10 1809
? Microsoft Windows 10 1903
? Microsoft Windows 10 1909
? Microsoft Windows 10 2004
? Microsoft Windows Server 2019
? Microsoft Windows Server, version 1903
? Microsoft Windows Server, version 1909
? Microsoft Windows Server, version 2004
當Windows TCP / IP堆棧不正確地處理使用選項類型25(遞歸DNS服務器選項)且長度字段值為偶數的ICMPv6路由器廣告數據包時,存在一個遠程執行代碼漏洞。在此選項中,長度以8個字節為增量進行計數,因此長度為3的RDNSS選項的總長度應為24個字節。該選項本身包含五個字段:IPv6遞歸DNS服務器的類型,長度,保留,生存時間和地址。前四個字段始終總共為8個字節,但最后一個字段可以包含可變數量的IPv6地址,每個IPv6地址均為16個字節。按照RFC 8106,長度字段應始終為至少3的奇數值,當提供一個偶數長度值時,Windows TCP / IP堆棧錯誤地將網絡緩沖區的前進量減少了8個字節。這是因為堆棧在內部以16字節為增量進行計數,因此無法解決使用非RFC兼容長度值的情況。這種不匹配導致堆棧將當前選項的最后8個字節解釋為第二個選項的開始,最終導致緩沖區溢出和潛在的RCE。
復現步驟
1、 虛擬機網絡設置開啟ipv6
2、查看環境情況
Windows版本,按win+r,在彈出窗口中輸入winver,查看版本信息
3、用國外大神的腳本進行檢測有漏洞和沒漏洞的結果如下:
PowerShell.exe -ExecutionPolicy UnRestricted -File C:\Users\user\Desktop\new.ps1.ps1
4、執行ipconfig,查看ipv6地址這里注意,靶機的ipv6地址選取 “ipv6地址” 或 “臨時ipv6地址”
5、執行ipconfig,查看ipv6地址這里注意,攻擊機的ipv6地址選取 “本地ipv6地址
6、運行plyload,靶機藍屏
由于Windows TCP/IP堆棧在處理選項類型為25(0x19,遞歸DNS服務器選項),當偽造長度字段值為偶數的ICMPv6的路由廣播數據包發送給目標主機時,Windows TCP/IP 在檢查包過程中會根據Length來獲取每個包的偏移,遍歷解析,導致對 Addresses of IPv6 Recursive DNS Servers 和下一個 RDNSS 選項的邊界解析錯誤,從而繞過驗證,將攻擊者偽造的option包進行解析,造成棧溢出,從而導致系統崩潰。
(1)下載微軟官方提供的補丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-16898
(2)內網等不便安裝更新的用戶,可以使用微軟官方給出的臨時變通措施:
禁用 ICMPv6 RDNSS:
以管理員身份打開PowerShell,輸入以下命令,即可"顯示接口參數"
netsh int ipv6 show interface
可以根據此列表,查詢到需要禁用的接口,執行禁用命令如下
netsh int ipv6 set int 8 rabaseddnsconfig=disable
返回“確定”后禁用成功,開啟方法同上。上述操作均無需重啟電腦。
上述內容就是如何進行漏洞復現及修復,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。