目前已有几种类型的包捕获应用软件,例如:基于原始套接字、基于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网络...
基于WinPcap 开发的网络抓包软件,自己开发了一部分功能。主要有: 链路层协议抓包:网络唤醒协议、链路层发现协议、PPPoE、PPPS、HDLC、LCP ppp链路控制协议、LinuxSLL 网络层协议抓包:Arp、IP、ICMP、IGMP、GRE...
网络抓包工具 跟踪调式抓包工具 软件抓包工具(可指定任意进程进行跟踪抓包)
网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包网络抓包
网络抓包工具,局域网抓包工具 抓包工具 最强大最好用的网络抓包工具。
网络抓包工具 网络抓包工具 网络抓包工具 网络抓包工具 网络抓包工具 网络抓包工具
packetvb,vb类,封装了 winpcapa, vbpcap又称为PacketVB,是一种能够被VB调用的数据包捕获开发库,vbpcap封装了WinPcap的API函数的ActiveX库,由Politecnico di ...5.下面就可以使用vbpcap.dll来编写网络抓包程序了
网络抓包程序 java 基本网络 流程 实现 抓包
基于java的网络抓包程序,使用java编写,可以直接使用
HOU网络抓包主要用来捕获指定程序的网络通信数据!可以用来抓取浏览器、qq、msn等网络程序通信的原始数据包,对分析网络通信很有用。
网络抓包源码,可以用电子书来查看,我也不太清楚怎么用,我是在网上找的,谁会用谁用!
提供在VS2013下基于WinForm使用SharpPcap实现网络抓包程序详细说明与例程,包括软件配置和详细开发步骤说明
用于网络抓包,简单上手,可检测开发板与主机或者其他的之间的连接是否连接顺畅
java实现对网络包的抓取,对数据包的分析,然后对http数据包进行重组还原成网页。
该资源为网络协议原理课程中的网络抓包与分析实验的实验报告
WinCap简介 网络抓包 库文件 只是简单的介绍
毕业设计(JAVA网络抓包)毕业设计(JAVA网络抓包)毕业设计(JAVA网络抓包)
网络抓包软件,绿色免安装版,支持对特定的网络主机,特定的网络协议进行抓包,当然也支持所有的网路和协议.