off = 0; while (off < ulbytesreceived) { hdr = (struct bpf_hdr*)(buf + off); off += hdr->bh_hdrlen;
pChar = (char*)(buf + off); base = pChar; off = Packet_WORDALIGN(off + hdr->bh_caplen);
eth = (PETHDR)pChar; arp = (PARPHDR)(pChar + sizeof(ETHDR));
if (eth->eh_type == htons(ETH_IP)) { continue; } else if (eth->eh_type == htons(ETH_ARP)) { if (arp->arp_tpa == htonl(myip) && arp->arp_opt == htons(ARP_REPLY)) { int i; for (i = 0; i < currentHstIndex; i++) { if (hostList[i].ip == arp->arp_spa) { break; } } if (i >= currentHstIndex) { hostList[currentHstIndex].ip = arp->arp_spa; memcpy(hostList[currentHstIndex].mac, eth->eh_src, 6); currentHstIndex++; } } else if (arp->arp_spa == htonl(myip) && arp->arp_opt == htons(ARP_REPLY)) memcpy(mmac, eth->eh_src, 6); } } }
如何判断处于混杂模式的主机是否使用的是"网络黑手"呢?又如何终止对方"网络黑手"的使用呢?道理很简单,我们只需要在"网络黑手"与"网络黑手终结者"之间约定一套通信协议,按照该协议进行控制。剩下的工作留给读者朋友了。
3、攻防演示 下面的界面显示了搜索局域网内192.168.1.1~192.168.1.30范围内的节点并侦听192.168.1.2,我们简单的抓一些报文后按下"停止",看看其中的一个TCP报文,简单的信息让我们看出对方正在上http://www.sina.com.cn这个网页。
我们完全可以把网络黑手做的更牛X一点,对应用层报文进行分析,从而完整地监视目标的行为。 现在我们给目标192.168.1.2 伪造ARP报文让其一直被提示IP冲突"IP地址与网络上的其他系统有冲突",抓图如下:
我们用"ArpKiller"或者"网络黑手终结者"都可以扫描出局域网内处于混杂模式的主机,如果确定对方使用的是"网络黑手",在表格的黑手状态项目对应的行里双击,就会给"网络黑手"发送终止报文,"网络黑手"软件将自动关闭。
(参考链接: http://dev.yesky.com/275/2674275.shtml)
共15页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 15 下一页
|