相关内容:
- 1. 问题
- 2. 解决方法
- 3. 形势
- 4. 所有相关资源
如果你没有时间来读完本文,那么你所需要做的就是删除这个文件: ?:\Program Files\Commo Files\System\Msadc\msadcs.dll 最迅速和最彻底的取消对RDS的支持。(但是如果你确实需要RDS,那么你最好往下读) ----------------------------------------------------------------------- ----[ 1. 问题 RDS攻击不是一个简单的问题,虽然II 4.0存在许多各种各样的安全漏洞,但是微软从来没有为同一个安全漏洞发布过如此多的补丁程序,一共是发布了三个不同的补丁程序,但是RDS仍然存在问题。 所以我们需要的是真正掌握什么是RDS。然后你就会知道如何来自己修补这个问题。这个问题从根本上说,是由于Jet 3.5允许调用VBA的shell()函数造成的。该函数允许你执行外壳命令,具体的过程我想还是不详细介绍了。 现在的问题是,II 4.0默认的情况下是安装有MDAC 1.5的,它包含有RDS,从而允许通过浏览器远程访问ODBC组件,具体的实现是通过一个位于/msadc/msadcs.dll 的特定的dll文件来实现的。现在你应该可以明白,问题其实是由两部分组成。其实还有个“第三者”,那就是跟随RD DK包安装附带的例子程序组件V usObj,它可以允许你饶过那些就是已经安装了微软发布的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 hell()攻击问题(而这恰好是 RDS攻击的必要条件),并且默认情况下还是支持使用RDS的。事实上,就是你删除了 RDS系统还是会重新安装的,其中一些应该注意的事情是: * 默认的Jet引擎变成了3.52 (仍然有安全漏洞)
* 允许自定义处理 (可以解决匿名RDS使用问题)
* 生成 Microsoft.Jet.OLEDB.3.51* 提供
注意这种解决方法,它的默认设置不是非常好。你需要修改注册表来限制自定义使用 RDS处理。注册表中位置是: HKEY_LOCAL_MACHINE\Software\Microsoft\DataFactory\HandlerInfo\ Keyname: HandlerRequired
Value: DWORD:1 (safe) or 0 (u afe) 推荐是将它的数值改成1。这其实也是使用微软提供的补丁