目前已有几种类型的包捕获应用软件,例如:基于原始套接字、基于LibPcap库和基于WinPcap库,Jpcap是Windows和Linux平台中实现的一个跨平台网络数据包处理开发库。
【网络嗅探】是一种常用的收集网络数据包的方法,其基本原理对经过网卡的数据包进行捕获和解码,从链路层协议开始进行解码分析,一直到应用层的协议,最后获取数据包中需要的内容。
网卡工作模式
在实际的系统中,数据的收发由网卡来完成,网卡的主要工作原理是整理计算机发往网线上的数据,并将数据包发送出去。当网卡接收到传输来的数据时,根据接收数据帧的目的MAC地址和网卡驱动程序设置的接收模式进行判断,对需要接收的就产生中断信号送CPU,然后由操作系统调用驱动程序进行接收;认为不该接收的就丢弃不管,所以不该接收的数据在网卡处就截断了。
【嗅探器】作为一种网络通讯程序,主要是通过对网卡的编程来实现的,对网卡的编程有很多种方法,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播方式发出的数据帧,对于其他形式的数据帧,网络接口在验证目的地址并非自身地址之后将不引起响应,也就是说应用程序无法接收到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包既可以是发给自己的也可以是发给别人的。显然,要达到此目的就不能让网卡按通常的正常模式工作,而必须将其设置为混杂模式。嗅探程序的设计一般有如下几个阶段:
(1)包捕获设置:包括网络适配器的识别和网卡混杂模式的设置;
(2)过滤器设置:对数据包的捕获设定一些条件,如可以按某些特定的IP地址进行过滤,也可根据网络协议只捕获某种特定的协议,如TCP或UDP包中的数据,还可以过滤出包含特定信息的数据包,例如包含用户名和密码信息的数据包;
(3)数据分析:对捕获的数据进行分析处理,获得数据包中的上层信息。
【局域网监听】利用的是所谓的“ARP欺骗”技术。在以前曾经一段阶段,局域网的布局是使用总线式(或集线式)结构,要到达监听只需要将网卡设定为混杂模式即可,但现在的局域网络普遍采用的是交换式网络,所以单纯靠混杂模式来达到监听的方法已经不可行了。所以为了达到监听的目的,我们需要“欺骗”路由器、“欺骗”交换机,即“ARP欺骗”技术。
假设本机为A,监听目标为B。
首先,伪造一个ARP REPLY包,数据链路层头及ARP内容部分的源MAC地址填入A的MAC地址,而源IP部分填入网关IP,目的地址填入B的MAC、IP,然后将这个包发送给B,而B接收到这个伪造的ARP REPLY包后,由于源IP为网关IP,于是在它的ARP缓存表里刷新了一项,将(网关IP,网关MAC)刷新成(网关IP,A的MAC)。而B要访问外部的网都需要经过网关,这时候这些要经过网关的包就通通流到A的机器上来了。
接着,再伪造一个ARP REPLY包,数据链路层头及ARP内容部分的源MAC地址填入A的MAC地址,而源IP部分填入B的IP,目的地址填入网关MAC、IP,然后将这个包发给网关,网关接收到这个伪造的ARP REPLY包后,由于源IP为B的IP,于是在它的ARP缓存表里刷新了一项,将(B的IP,B的MAC)刷新成(B的IP,A的MAC)。这时候外部传给B的数据包经过网关时,就通通转发给A。
这样还只是拦截了B的数据包而已,B并不能上网——解决方法是将接收到的包,除了目的地址部分稍做修改,其它原封不动的再转发出去,这样就达到了监听的目的——在B不知不觉中浏览了B所有的对外数据包。
分享到:
相关推荐
Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络...
网络抓包工具是一种用于监测和分析网络数据传输的软件,它们可以帮助我们查看网络中的数据包流动情况,这对于网络故障排查、网络安全分析以及软件调试等工作至关重要。本文将详细讲解网络抓包工具的功能、工作原理...
在实际操作中,一个简单的Java网络抓包程序可能包括以下步骤: 1. 使用Jpcap或其他类似库打开网络接口并设置过滤器,指定只抓取特定类型的包(如HTTP)。 2. 监听网络数据包,对每个捕获的数据包进行解码和分析。 3....
网络抓包工具是IT行业中非常重要的诊断和分析工具,它们被广泛用于监控和记录网络通信,帮助用户深入了解网络流量和数据传输的过程。标题中的“网络抓包工具”、“局域网抓包工具”以及“抓包工具”都指的是这类能够...
网络抓包工具是一种用于监测和分析网络通讯数据的软件,它们可以帮助我们查看并理解网络上流动的数据包。在IT行业中,这些工具对于网络故障排查、性能优化、协议分析以及安全审计等工作至关重要。本文将深入探讨网络...
《HOU网络抓包工具详解及其在网络通信分析中的应用》 网络抓包工具是网络诊断与分析中的重要手段,它们能够捕获网络上的数据包,为开发者和网络安全专家提供宝贵的实时网络流量信息。HOU网络抓包1.1e正是这样一款...
基于WinPcap 开发的网络抓包软件,自己开发了一部分功能。主要有: 链路层协议抓包:网络唤醒协议、链路层发现协议、PPPoE、PPPS、HDLC、LCP ppp链路控制协议、LinuxSLL 网络层协议抓包:Arp、IP、ICMP、IGMP、GRE...
"科来网络分析网络抓包工具"是一款专用于网络诊断和数据包捕获的专业软件,广泛应用于网络管理员、安全专家以及IT技术爱好者之中。这款工具能够实时监控网络流量,捕捉并解析网络数据包,帮助用户深入理解网络行为,...
网络抓包程序是一种用于监测和分析网络数据传输的工具,它们可以帮助我们查看网络通信的细节,包括发送和接收的数据包、协议类型、源和目标地址等。在Java中实现网络抓包,通常需要借助第三方库,如libpcap的Java...
在IT行业中,网络抓包工具是网络分析和故障排查的重要工具。本文将深入探讨Linux环境下的网络抓包工具,特别是标题中提到的基于Qt界面的pcap实现。首先,我们来了解一下`pcap`。 `pcap`是libpcap库的简称,它是一个...
网络抓包及分析是IT行业中一项至关重要的技术,它允许我们洞察网络通信的细节,用于故障排查、性能优化、安全审计等多方面。本神器专为此目的设计,它结合了易用性和强大的功能,使用户能够高效地进行网络数据包捕获...
网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包
【标题】"基于winpcap的网络抓包工具"涉及的核心技术是winpcap库,它是一个用于网络数据包捕获和分析的开源库。在Windows操作系统环境下,winpcap提供了一个底层接口,允许应用程序直接访问网络接口卡(NIC)的数据...
手机网络抓包是一种技术手段,用于监测和分析设备通过网络发送和接收的数据包。在4G网络分析中,这一工具尤为关键,因为它可以帮助开发者、网络安全专家以及普通用户了解网络通信的底层细节,诊断网络问题,优化应用...
在IT行业中,网络抓包是一项重要的技术,它用于获取网络数据包的信息,帮助开发者和网络管理员分析网络通信过程,排查问题或进行性能优化。Java作为一种跨平台的编程语言,提供了丰富的库和工具来实现网络抓包功能。...
《网络协议原理与分析》实验报告的焦点是网络抓包与分析,主要使用了Wireshark这一工具。网络抓包是一种技术,它允许我们捕获在网络中传输的数据包,以便于理解网络通信的过程,诊断问题,或者进行安全审计。在这个...
【VC Sockt 网络抓包Packinter】是一个基于VC++的高效网络数据包捕获工具,其核心在于利用Socket技术实现网络流量的监控和分析。在深入理解这个工具之前,我们先来探讨一下Socket编程和网络抓包的基本概念。 Socket...