LOGOARP欺骗程序Lx-kunARP欺骗程序WinPcap简介ARP欺骗ARP原理1.2.3.5.程序的实现4.课程设计总结ARP原理:ARP概述ARP(AddressResolveProtocol)地址请求解析协议,用于寻找和IP地址相对应的MAC地址。在RFC826中定义了ARP协议的数据格式和类型。ARP协议属于在网络层的下部,可看作为网络层和数据链路层的接口,主要用于IPv4以太网。ARP工作在同一网段,不能路由。应用层会话层表示层传输层网络层数据链路层物理层ARPARP原理:ARP概述ARPTableARP分组格式ARP消息类型ARP查询(广播)ARP应答(单播)ARP例子ARP原理:ARPTableARPTable高速缓存区中保存最近获得的ARP表项高速缓冲区中ARP表项新鲜性的保持:计时器ARPTable的更新静态绑定(static)动态更新(dynamic)arp–s172.19.37.12600-e0-fc-59-ef-68ARP原理:ARPTableARPTable动态更新规则源主机在发出ARP请求,接收到ARP应答后将目的主机的IP地址与物理地址映射关系存入自己的高速缓冲区。目的主机接收到ARP请求后将源主机的IP地址与物理地址映射关系存入自己的高速缓冲区。ARP请求是广播发送的,网络中的所有主机接收到ARP请求后都可以将源主机的IP地址与物理地址映射关系存入自己的高速缓冲区。ARP原理:ARPTableARPTable计时器TTL(windows)新表项加入时定时器开始计时表项添加后2分钟内没有被再次使用:删除表项被再次使用:增加2分钟的生命周期表项始终在使用:最长生命周期为10分钟ARP原理:ARP例子IP:192.168.1.1MAC:GatewayIP:192.168.1.2MAC:AGateway:192.168.1.1IP:192.168.1.3MAC:BGateway:192.168.1.1IP:192.168.1.4MAC:CGateway:192.168.1.1IP:192.168.1.5MAC:DGateway:192.168.1.1InternetDCBAEthernetARP缓存192.168.1.1------Gateway查询缓存表找到相应条目---发送数据查询失败---发送ARP请求ARP原理:ARP例子1.PCA以广播形式发送ARP请求,请求网关的MAC地址。IP:192.168.1.1MAC:GatewayIP:192.168.1.2MAC:AGateway:192.168.1.1IP:192.168.1.3MAC:BGateway:192.168.1.1IP:192.168.1.4MAC:CGateway:192.168.1.1IP:192.168.1.5MAC:DGateway:192.168.1.1InternetDCBAEthernetIamtheGateway,MACisGateway.ARP缓存192.168.1.1------GatewaySendsdate2.网关以单播形式回应A的ARP请求。址3.A更新自己的ARP缓存。4.A与网关通信。ARPrequestWhoistheGateway(192.168.1.1)?ARPanswerARP原理:ARP分组格式ARP分组格式OP=1ARP请求OP=2ARP应答以太网首部28字节ARP请求/应答以太网目的地址以太网源地址帧类型硬件类型OP协议类型发送端以太网地址发送端IP地址目的以太网地址目的IP地址硬件地址长度协议地址长度666644222211ARP原理:ARP帧类型FFFFFFFFFFFFMAC:A08060001010800MAC:A192.168.1.2000000000000192.168.1.16666442222110604IP:192.168.1.1MAC:GatewayIP:192.168.1.2MAC:AGateway:192.168.1.1IP:192.168.1.3MAC:BGateway:192.168.1.1IP:192.168.1.4MAC:CGateway:192.168.1.1IP:192.168.1.5MAC:DGateway:192.168.1.1InternetDCBAARPrequestARPanswerARP应答帧ARP请求帧ARP请求帧ARP应答帧目的IP地址目的以太网地址发送端以太网地址发送端IP地址OP目的IP地址目的以太网地址发送端以太网地址发送端IP地址OPMAC:AMAC:Gateway08060001020800MAC:Gateway192.168.1.1MAC:A192.168.1.26666442222110604192.168.1.1MAC:Gateway’IP:192.168.1.2MAC:AGateway:192.168.1.1IP:192.168.1.3MAC:BGateway:192.168.1.1IP:192.168.1.4MAC:CGateway:192.168.1.1IP:192.168.1.5MAC:DGateway:192.168.1.1InternetCBAEthernetDARPrequestARP欺骗FFFFFFFFFFFFGateway’08060001010800Gateway’192.168.1.1000000000000192.168.1.26666442222110604Whois192.168.1.2?ARP缓存192.168.1.1------Gateway’ARPanswer目的IP地址目的以太网地址发送端以太网地址发送端IP地址OPTheGateway(192.168.1.1)isGateway’192.168.1.1MAC:Gateway192.168.1.1MAC:GatewayIP:192.168.1.2MAC:AGateway:192.168.1.1IP:192.168.1.3MAC:BGateway:192.168.1.1IP:192.168.1.4MAC:CGateway:192.168.1.1InternetIP:192.168.1.5MAC:DGateway:192.168.1.1EthernetABCDARP双向欺骗ARPrequestARP缓存192.168.1.1------MAC:DARPrequestPCA(192.168.1.2)isMAC:DARPrequestTheGateway(192.168.1.1)isMAC:DARP缓存192.168.1.2------MAC:D数据转发ARP双向欺骗EthernetInternetHacker数据探嗅,监听InternetWinPcap介绍WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库.大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如sockets。这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说,那些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。WinPcap介绍WinPcap可以用于网络分析、网络故障诊断、网络安全和网络监视等网络工具中,所提供的功能主要包括以下四个方面:捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的在数据包发送给某应用程序前,根据用户指定的规则过滤数据包将原始数据包通过网络发送出去收集并统计网络流量信息WinPcap介绍网络接口内核层用户层网络数据包网卡驱动器winsock应用程序Packet.dll数据包捕获驱动器copyWpcap.lib应用程序程序的实现实现的功能ARP双向欺骗数据包的转发程序优化多线程转发(减小延时)图形界面(选做)程序的实现:基本模型获取本机设备列表pcap_findalldevs_ex()打印设备列表选择适配器pcap_open()释放设备列表pcap_freealldevs()发送数据包pcap_sendpacket()时间间隔Sleep(N)获取本机设备列表pcap_findalldevs_ex()打印设备列表选择适配器pcap_open()释放设备列表pcap_freealldevs()编译、设置过滤器pcap_compile()pcap_setfilter()读取数据包pcap_next_ex()修改数据包发送数据包pcap_sendpacket()ARP欺骗进程获取设备列表打开选中的网卡发送ARP欺骗数据包转发进程获取设备列表打开选中的网卡设置过滤规则读取数据包修改源MAC和目的MAC转发数据包程序的实现:多线程模型多线程模型ARP欺骗线程数据包转发线程获取本机设备列表pcap_findalldevs_ex()打印设备列表选择适配器pcap_open()释放设备列表pcap_freealldevs()发送数据包pcap_sendpacket()时间间隔Sleep(N)编译、设置过滤器pcap_compile()pcap_setfilter()读取数据包pcap_next_ex()修改数据包发送数据包pcap_sendpacket()读取数据包pcap_next_ex()修改数据包发送数据包pcap_sendpacket()编译、设置过滤器pcap_compile()pcap_setfilter()程序的实现:过滤转发EthernetInternetHacker修改源和目的地址Dst=GatewaySrc=hacker修改源和目的地址Dst=PCSrc=hacker过滤规则etherdstMAC:HackersrcMAC:peoplenotdsthostHackernotarp过滤规则etherdstMAC:HackersrcMAC:GatewaydsthostpeopleARP欺骗防御客户端:静态绑定地址:arp–s192.168.1.100-aa-bb-cc-dd-ee安装个人防火墙ARP欺骗防御交换机:DAI(DynamicARPinspection,动态ARP检测)是一种能检测ARP数据包的安全特性。通过DAI网络管理远能够拦截、记录和丢弃具有无效MAC地址/IP地址绑定的ARP数据包。课程设计总结原理分析知识学习程序编写调试修改ARP原理ARP欺骗winpcap多线程课程设计总结ARP欺骗程序多线程编程WinPcapARP协议C语言课程设计总结知识总结:C语言TCP/IP协议:ARPwinpcap多线程技术参考资料:《TCP/IP详解卷1》W.RichardStevens《Windows网络程序设计》《Windows多线程编程》WinPcap官方文档