4.3 IDQ漏洞的防黑实战

IIS的.idq/.ida映射的漏洞是一个相对比较古老的漏洞,利用该漏洞的攻击就是IDQ漏洞攻击,在这里介绍这种漏洞攻击的主要目的是起到一个“抛砖引玉”的作用,希望计算机用户对系统的安全防御有更深层次的认识。

4.3.1 什么是IDQ漏洞

微软公司的IIS在默认安装情况下带了一个索引服务器。在默认安装时,IIS支持两种脚本映射:管理脚本(.ida文件)、Internet数据查询脚本(.idq文件)。这两种脚本都由一个ISAPI扩展——idq.dll来处理和解释。

由于idq.dll在处理某些URL请求时存在一个未经检查的缓冲区,如果攻击者提供一个特殊格式的URL,就可能引发一个缓冲区溢出。如果攻击者发送的是精心构造的数据,就有可能改变程序执行流程,执行恶意代码。如果攻击成功就能获取远程主机的“Local System”权限。

4.3.2 IDQ漏洞入侵演示

IDQ漏洞是先前发现的众多漏洞中的一种,入侵IDQ漏洞需要准备Snake IIS溢出工具、X-Scan扫描器和nc.exe。具体的入侵过程如下:

Step 01 使用X-Scan扫描器对某个IP地址段进行扫描,找出具有IDQ漏洞的计算机。

Step 02 运行Snake IIS溢出工具,输入被攻击主机的IP地址、选择对方主机的系统类型,并设置一个监听的端口号,默认为813。

Step 03 单击【IDQ溢出】按钮,若连接成功,则显示如下图所示的提示信息。

Step 04 如果不成功,则将提示不能连接主机。

Step 05 此时打开【命令提示符】窗口,使用telnet命令即可进入对方主机。

Step 06 用户还可以先使用nc.exe在本地主机中打开一个监听端口。

Step 07 在溢出工具中选择【溢出后,主动连接到IP/Port】单选按钮,在【要绑定的命令】文本框中输入“cmd.exe /c dir c:\”。

Step 08 单击【IDQ溢出】按钮,则提示发送shellcode成功,并且在本地主机的【命令提示符】窗口中自动显示被攻击主机的C盘根目录的内容。

Step 09 连接成功后,用户就可以使用“net user”命令在对方主机中创建一个属于自己的用户账号,并且可使用“net localgroup”命令将新建的账号提升为管理员权限。

提示: 如果溢出工具不能成功连接,可以选择另一个SP补丁系统再次尝试。若还不能成功连接,则更换目标主机。

4.3.3 IDQ漏洞的防御

对于存在IDQ漏洞的主机,其防御措施有以下两条。

(1)删除.ida/.idq ISAPI脚本映射

删除.ida/.idq ISAPI脚本映射的具体操作步骤如下:

Step 01 单击【开始】按钮,选择【控制面板】命令,然后单击【管理工具】图标,双击【Internet 信息服务】选项,即可打开【Internet信息服务】窗口,单击【本地计算机】前面的“+”号,展开本地计算机项目。

Step 02 选中【网站】选项并右击,从弹出的快捷菜单中选择【属性】命令,打开【网站 属性】对话框,在其中选择【主目录】选项卡。

Step 03 单击【配置】按钮,打开【应用程序配置】对话框,在其中选择需要删除的.ida映射脚本文件。

Step 04 单击【删除】按钮,打开一个提示用户【确实要删除选定的脚本映射吗】信息提示框。

Step 05 单击【是】按钮,即可删除.ida映射脚本文件。

(2)及时下载系统补丁

及时下载微软公司的系统补丁并安装。补丁可能因具体硬件的不同而不同,所以用户需要向原设备制造商索取。