esIP[4];// 接收端IP地址
}
ARP_RHDR,*PARP_RHDR;
2.2利用ARP欺骗在交换网络下捕包
由以上对 ARP 协议的分析和对其原理的介绍可知,利用 ARP 欺骗已经可以使子网内的别的机器的网络流量都会流到攻击者机器来,为了使他们还能够“正常”地使用网络,攻击者就必须将他们的数据包转发到他们真正应该到达的主机去,这就需要进行数据转发,因此,要实现交换式以太网正常的网络监控,就要使用ARP欺骗结合IP转发的发式来进行捕包,可以使用两个线程:一个进行数据包的获取、分析和转发,一个定时发送ARP应答包。
在网络监控系统中,实现对 HTTP 访问则是基于目标地址的过滤,通过对 IP 首部的各个数据域的分析判断 Destination IP Address 是否属于规则库中设定限制访问集合,如果是,系统可以采用一定的手段阻止用户的继续访问,采用的方法是切断或关闭TCP连接。我们可以人为的构造一个FIN报文发送给用户,从而关闭用户与Web服务器间的TCP连接,禁止用户对该URL地址的访问。Winpcap库的核心函数pcap_sendpacket提供了绕过操作系统正常网络 Socket编程而直接读写网卡的能力,在完成该TCP连接的重要信息分析后,即可完成对其的强制中断。在构造中断TCP报文时,需要将源、目的IP进行交换,源、目的端口交换,然后将标志位置为RST,然后使用 pcap_sendpacket 直接将报文发送即可实现目的。核心实现函数:
Void SendData(PIP_RHDR IpData)
{
PTCP_RHDR ptcpheader=(PTCP_RHDR)IpData->Data;
int iRstFlag = ptcpheader->Flags 0x04;
if(iRstFlag = 0x04)
return;
……
SetMACToEther(MACADDR_SRC,EtherFrame,0);//源为发到本机的 mac
SetMACToEther(MACCADDR_GATEWAY,EtherFrame,1);//目标为默认网关的 mac
……
}
3 软件的实现和结论
基于ARP欺骗的网络监听软件采用了虚拟路由技术,以实现报文的收发。软件经过测试,基本上达到了预期的目的。这样的系统,可以用来对现在正在使用的,用于各种功能的交换式以太网(如校园网、企业网等)进行监听,从而解决在网络管理上的诸多不便,进而实现网络管理的最终目标――资源的合理、充分利用和提供可靠的通信服务。
|