找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 安全攻防 查看内容

针对MSBlast蠕虫病毒一点分析

2009-12-14 02:37| 发布者: admin| 查看: 12| 评论: 0|原作者: 千年缘




针对MSBlast蠕虫病毒一点分析
2003-08-13 9:34:56
by 19821119








漏洞说明:


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.


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 01:30 , Processed in 0.145015 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部