收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
积木学院 > 安全防范 > 木马病毒 > 正文

针对MSBlast蠕虫病毒一点分析

来源:互联摘选 日期:2008-07-24 06:09
     漏洞说明:

RPC(Remote Procedure Call)Buffer Overrun蠕虫漏洞,微软于7月16日发布此漏洞的安全补丁(MS-0326)。漏洞原理及攻击代码最早为Flashsky发布在安全焦点,发布时并有安全专家预测会有针对此漏洞的蠕虫病毒,2个星期之后病毒代码被病毒作者利用写出MSBlast蠕虫病毒。还没等用户更新此安全补丁,就己经导致MSBlast蠕虫病毒在全球范围内大规模传播,相信这几天MSBlast蠕虫病毒将会导致更多使用者受此病毒的攻击。微软公司针对此漏洞进行详细讲解。
微软针对缺陷的安全补丁: http://www.microsoft.com/technet/treeview/?url=/technet/security/bulletin/MS03-026.asp


病毒浅析:

该病毒使用C编写,病毒可执行使用UPX软件压缩之后总长度为6176字节,在病毒程序中包含Flashsky编写的漏洞攻击代码,说明该病毒是利用Flashsky编写的攻击代码。此攻击代码主要针对Windows 2000操作系统而编写,攻击代码中包含绝大部分Widnows 2000溢出文件偏移地址,针对NT4 XP 2003溢出攻击都不会成功,因为操作系统版本不相同,溢出文件偏移地址也不相同,溢出不成功将会导致Remote Procedure Call (RPC)服务停止,文件复制贴粘无法使用,COM属性无法正常使用。NT4 XP 2003操作系统溢出不成功将会导致RPC服务被终止,而PRC服务进程被异常终止之后可能会导致计算机重新启动。PRC服务通讯则依赖TCP/135端口进行通讯。
病毒执行之后将会在%SystemRoot%\system32\目标下生成msblast.exe病毒可执行文件。并在注册表添加自运行键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,键值项目名称为windows auto update,键值会批向%SystemRoot%\system32\msblast.exe目录下,病毒程序进程名为msblast.exe。蠕虫病毒成功执行后并在本机创建TFTP UDP/69服务端,如果溢出攻击成功,则利用cmd.exe绑定目标主机TCP/4444端口,发送TFTP下载命令将病毒文件msblast.exe复制到目标操作系统。病毒程序将向当前IP地址C段发送SYN封包扫描。完成C段IP扫描之后病毒程序将会随机产生IP地址向外部进行扫描,病毒程序在进行扫描过程中会消耗大量网络资源及系统资源。
蠕虫病毒攻击代码针对Windows XP 2003操作系统并不会成功,但会造成Windows XP 2003 PRC服务停止,导致操作系统重新启动。
发现蠕虫病毒中文本数据: billy gates why do you make this possible ? Stop making money and fix your software!


感染步骤:

首先A主机感染之后向B主机发送攻击代码:

如果攻击成功:
(1)开启B机器TCP/4444端口,发送TFTP下载命令将A主机上的病毒文件复制到B主机并执行。执行之后B机器又会向其它IP地址进行扫描并进行溢出攻击。

如果攻击失败:
(1) B主机屏蔽135端口,A主机无法发送攻击代码至B主机,导致溢出攻击失败。
(2) B主机被溢出攻击之后,因文件偏移地址不同,导致溢出不成功。并会将RPC服务停止,文件复制贴粘无法使用,COM属性无法正常使用,XP操作系统攻击之后会造成机器重启。重新启动操作系统会恢复正常,但极易再次受到溢出攻击。


解决对策:

针对解决对策强烈建议你安装微软MS-0326操作系统补丁,因MSBlast蠕虫病毒是利用微软这个操作系统缺陷进行攻击。

Windows Me 98
Windows Me 98不受此病毒的影响,建议安装防火墙产品防止病毒及入侵者进攻。

WinNT 4
针对Windows NT4操作系统己经发布针对此漏洞进行修正补丁,补丁下载地址为:
http://microsoft.com/downloads/details.aspx?FamilyId=2CC66F4E-217E-4FA7-BDBF-DF77A0B9303F&displaylang=en

Windows 2000
针对Windows 2000操作系统己经发布针对此漏洞进行修正补丁,补丁下载地址为:
http://microsoft.com/downloads/details.aspx?FamilyId=C8B8A846-F541-4C15-8C9F-220354449117&displaylang=en

Windows XP
针对Windows XP操作系统己经发布针对此漏洞进行修正补丁,补丁下载地址为:
32位操作系统
http://microsoft.com/downloads/details.aspx?FamilyId=2CC66F4E-217E-4FA7-BDBF-DF77A0B9303F&displaylang=en
64位操作系统
http://microsoft.com/downloads/details.aspx?FamilyId=2CC66F4E-217E-4FA7-BDBF-DF77A0B9303F&displaylang=en

Windows 2003
针对Windows 2003操作系统己经发布针对此漏洞进行修正补丁,补丁下载地址为:
32位操作系统
http://microsoft.com/downloads/details.aspx?FamilyId=2CC66F4E-217E-4FA7-BDBF-DF77A0B9303F&displaylang=en
64位操作系统
http://microsoft.com/downloads/details.aspx?FamilyId=2CC66F4E-217E-4FA7-BDBF-DF77A0B9303F&displaylang=en

清除工具:

清除病毒之后需要了解病毒感染原理,针对MSBlast蠕虫病毒晚上写了一个清除工具,包含杀死病毒进程,清除病毒可执行文件。建议先断开网络,安装操作系统补丁重启操作系统之后运行清除工具即可。如文中有表达错误的地方还请您的指教!谢谢~

//******************************************************
// MSBlaster清除软件 By 19821119
//组织主页 http://www.4ngel.net/
//组织主页 http://www.ph4nt0m.net/
//组织主页http://www.cnvcl.org
//个人主页 http://www.19821119.com/
//联系方式 19821119@vip.sina.com
//2003/8/12于深圳市罗湖区清水河
//******************************************************
program KillRPC;

uses

Windows,SysUtils, tlhelp32,registry;

procedure Kill;
var
ID:DWORD;
I: string;
Ret: Boolean;
tmp:string;
SnapshotHandle: THandle;
PE32: tProcessEntry32;
hh: HWND;
begin
I := lowercase('msblast.exe');
SnapshotHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PE32.dwSize := SizeOf(PE32);
Ret:= Process32First(SnapshotHandle, PE32);
while Integer(ret) <> 0 do
begin
tmp:=lowercase(PE32.szExeFile);
if pos(i,tmp)>0 then
begin
Id := PE32.th32ProcessID;
hh := OpenProcess(PROCESS_ALL_ACCESS, True,Id);
TerminateProcess(hh, 0);
end;
Ret:=Process32Next(SnapshotHandle,PE32);
end;
end;

function getdir:string;
var
reg:tregistry;
begin
result:='';
reg:=tregistry.create;
with reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);
result:=readstring('windows auto update')
end;
reg.free;
end;

procedure clearrun;
var
reg:TRegistry;
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey ('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
reg.DeleteValue('windows auto update');
Reg.CloseKey;
end;

begin
kill;
deletefile(extractfilepath(getdir)+'\msblast.exe');
clearrun;
end.

(出处:www.Gimoo.net)

推荐阅读

 

热点信息

 
强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号