扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
如果你没有时间来读完本文,那么你所需要做的就是删除这个文件:
?:Program FilesCommon FilesSystemMsadcmsadcs.dll
最迅速和最彻底的取消对RDS的支持。(但是如果你确实需要RDS,那么你最好往下读)
----------------------------------------------------------------------
-
----[ 1. 问题
RDS攻击不是一个简单的问题,虽然IIS 4.0存在许多各种各样的安全漏洞,
但是微软从来没有为同一个安全漏洞发布过如此多的补丁程序,一共是发布了三个不同的补丁程序,但是RDS仍然存在问题。
所以我们需要的是真正掌握什么是RDS。然后你就会知道如何来自己修补
这个问题。这个问题从根本上说,是由于Jet 3.5允许调用VBA的shell()函数造成的。
该函数允许你执行外壳命令,具体的过程我想还是不详细介绍了。
现在的问题是,IIS 4.0默认的情况下是安装有MDAC 1.5的,它包含有RDS,
从而允许通过浏览器远程访问ODBC组件,具体的实现是通过一个位
于/msadc/msadcs.dll
的特定的dll文件来实现的。现在你应该可以明白,问题其实是由两部分组成。其实还有个“第三者”,那就是跟随RDS SDK包安装附带的例子程序组件VbBusObj,它可以允许你
饶过那些就是已经安装了微软发布的RDS补丁的情况。
下面将分别就上面三种情况做详细的解决方案描述。
----[ 2. 解决方案
问题是目前有许多种方法来解决,同时这些方法还可以被不同的组合使用。
在这里尽量描述详细。
-解决方案 #1: 移走cmd.exe (ULG推荐的补丁方法)
http://www.aviary-mag.com/News/Powerful_Exploit/ULG_Fix/ulg_fix.html
我推荐ULG的解决方法,虽然该方法仍然存在问题。因为虽然mdac.pl是使用了
cmd.exe
来实现RDS攻击的,但是,要知道
CMD.EXE并不是RDS攻击方法的唯一实现途径
解决方案 #2: 升级MDAC 1.5 到 2.0
MDAC 2.0将Jet 3.5升级到Jet 3.52。但是仍然存在VBA shell()攻击问题(而这恰好是
RDS攻击的必要条件),并且默认情况下还是支持使用RDS的。事实上,就是你删除了RDS系统还是会重新安装的,其中一些应该注意的事情是:
* 默认的Jet引擎变成了3.52 (仍然有安全漏洞)
* 允许自定义处理 (可以解决匿名RDS使用问题)
* 生成 Microsoft.Jet.OLEDB.3.51* 提供
注意这种解决方法,它的默认设置不是非常好。你需要修改注册表来限制自定义使用RDS处理。注册表中位置是:
HKEY_LOCAL_MACHINESoftwareMicrosoftDataFactoryHandlerInfo
Keyname: HandlerRequired
Value: DWORD:1 (safe) or 0 (unsafe)
推荐是将它的数值改成1。这其实也是使用微软提供的补丁"handsafe.exe/.reg"完成的。
现在,你可以保护你的系统不被远程RDS攻击了,但是你仍然存在被ODBC其他方式攻击的可能性,
包括Excel, Word, 和 Access木马文件等。所以这个解决方案也有一些不足。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。