漏洞描述
源于没有正确处理内存中的数据包导致的CVE-2012-0002漏洞,远程攻击者在未经认证的情况下往服务器发送特制的RDP报文,来访问未初始化或未删除的对象来触发漏洞,即可执行系统权限或者NET SERVICE权限任意命令,并以管理员权限查看、更改、删除数据
受影响的系统
-
Microsoft Windows XP
-
Microsoft Windows Vista
-
Microsoft Windows Server 2003
-
Microsoft Windows Server 2008
-
Microsoft Windows 7
-
...
漏洞复现
攻击机:kali
靶机:Microsoft Windows XP或Microsoft Windows 7
确保两台虚拟机能互相ping通
nmap扫出开放的3389端口
使用metasploit框架,需要启用metasploit所依赖的postgresql数据库
在kali上启动postgresql命令【systemctl start postgresql】
如果想查看postgresql是否开启可以使用【systemctl status postgresql】,这里显示active表示已经打开
启动msfconsole
使用search命令搜索CVE-2012-0002漏洞的完整路径【Metasploit中大部分exploit模块都会给出一个Rank的值,按模块的利用成功率会由低到高[Average→Normal→Good→Great→Excellent]】,如下图
刚才search CVE-2012-0002搜索出两个模块,其中第一个模块仅用于扫描检测,第二个模块可使目标造成拒绝服务攻击,这里选择第二个模块攻击,show options查看需要设置的参数
从上图的输出信息可以看到需要我们设置两个不同的参数rhost和rport,rport已经默认设置为3389,rhost选择靶机xp或win7的ip即可,但是在此之前利用kali里面的nmap扫描靶机端口,查看是否开放3389
命令:nmap -sS -Pn 192.168.200.139
rhost设为靶机ip
exp发起攻击,从下图的信息可以看到,已对目标主机发起攻击,如果切换回主机会出现蓝屏,并且自动重启系统
修复建议
-
配置防火墙过滤攻击者向3389端口的请求或修改默认端口
-
开启Network Level Authentication服务
-
厂商发布了针对此漏洞MS12-020的公告和系统补丁,用户更新到系统最新版本