Windows RDP的RCE漏洞分析和复现(CVE-2019-0708)(6)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?图26.客户端名称请求内存转储 当RDP服务器接收RDPDR客户端名称请求PDU时,调用内核模块termdd.sys中的函数IcaChannelInputInternal以首先调度信道数据,然后将调用RDPDR模块来解析客户端名称请求PDU 的数据部分。客户端名称请求PDU的函数IcaChannelInputInternal应用与Refresh Rect PDU有相同的代码逻辑。它将调用ExAllocatePoolWithTag来分配带有标记TSic的内核内存,并使用memcpy将客户端名称请求数据复制到新分配的内核内存,如图27所示。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 图27.客户端名称请求 到目前为止,我们已经证明复制的数据内容和长度都由RDP客户端控制,并且客户端名称请求PDU可以合法地多次发送。由于其灵活性和利用漏洞的特性,客户端名称请求PDU可用于回收UAF漏洞利用中的释放内核池,也可用于将shellcode写入内核池,甚至可以使用将连续的客户端控制数据喷射到内核内存中。 如图28所示,我们成功获得了稳定的池分配,并使用RDPDR客户端名称请求PDU将客户端控制的数据写入内核池。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?图28.客户端名称请求稳定池分配 ? ? ? ? ? ?上面介绍了使用RDP PDU将数据写入内核的三种方法。
0x04 漏洞复现1.测试环境:攻击机:kali2019.2? 靶机: win7 sp1 7061 ?和 win2008r2 ?sp1??english ?standard Windows7 SP1下载地址: ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/ ? win2008r2 sp1 下载地址: http://download.microsoft.com/download/7/5/E/75EC4E54-5B02-42D6-8879-D8D3A25FBEF7/7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso 2.复现测试(1).替换所需文件cve_2019_0708_bluekeep_rce.rb ? 替换 ?/usr/share/metasploit-framework/modules/exploit/windows/rdp/ ? ? ? ? ? ? #如果没有RDP目录需要自检 rdp.rb ? 替换 ?/usr/share/metasploit-framework/lib/msf/core/exploit/rdp.rb rdp_scanner.rb 替换 ?/usr/share//metasploit-framework/modules/auxiliary/scanner/rdp/rdp_scanner.rb cve_2019_0708_bluekeep.rb 替换 /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp/cve_2019_0708_bluekeep.rb Kali下执行如下命令进行替换: wget?https://raw.githubusercontent.com/rapid7/metasploit-framework/edb7e20221e2088497d1f61132db3a56f81b8ce9/lib/msf/core/exploit/rdp.rb wget?https://github.com/rapid7/metasploit-framework/raw/edb7e20221e2088497d1f61132db3a56f81b8ce9/modules/auxiliary/scanner/rdp/rdp_scanner.rb wget?https://github.com/rapid7/metasploit-framework/raw/edb7e20221e2088497d1f61132db3a56f81b8ce9/modules/exploits/windows/rdp/cve_2019_0708_bluekeep_rce.rb wget?https://github.com/rapid7/metasploit-framework/raw/edb7e20221e2088497d1f61132db3a56f81b8ce9/modules/auxiliary/scanner/rdp/cve_2019_0708_bluekeep.rb cp rdp.rb /usr/share/metasploit-framework/lib/msf/core/exploit/ cp rdp_scanner.rb /usr/share/metasploit-framework/modules/auxiliary/scanner/ cp cve_2019_0708_bluekeep_rce.rb /usr/share/metasploit-framework/modules/exploits/windows/rdp/ cp cve_2019_0708_bluekeep.rb /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp/ (2) 攻击window7 ?sp1漏洞复现(编辑:ASP站长网) |