摘要:该文分析了etherpeek nx的工作原理,主要利用etherpeek nx的数据包截取和分析功能来对netrobocop(网络执法官)数据包的分析,了解局域网和netrobocop的基本原理,从而更好地维护网络的安全和畅通。
关键字:etherpeek nx ,netrobocop ,arp欺骗
一、前言
随着计算机网络技术的发展,特别是internet的广泛使用,网络也被各行各业所广泛应用络的使用给人们的日常工作和生活带来了很大的好处,然后网络的结构越来越复杂,规模越来越大,另外在网络上也存在着各种网络不安全的因素存在,对于这样的情况,网络管理人员必定要借助各种网络分析工具来实现网络的管理和维护。其中网络监听在协助网络管理员监测网络传输数据,排除网络故障等方面具有不可替代的作用,因而一直倍受网络管理员的青睐。
二、etherpeek nx简介
网络监听也就是我们经常听到的网络嗅探(sniffer),它是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。sniffer的工具有很多,其中wildpackets 公司的etherpeek nx是比较常用也是功能比较强的一种。在2003年度的cmp media"s network magazine上wildpackets公司的etherpeek nx v2.0和rmongrabber被评为最佳产品。
etherpeek nx软件评估及分析整个osi七层的架构。解析每个封包及即时的监视网路的各种状态,包含各个网络结点及网络架构的问题。问题的自动识别能对其发生的问题提供说明及解决方案,并可以追踪36种以上的网络状况,及提供latency及throughput解析。还能将网络上的所有结点沟通的状态以图形的方式完全显示出来。它的显示方式让管理者能非常容易的了解网络目前的状況。
三、局域网工作原理
现在的局域网以ieee802.3的以太网为主流,以太网和tcp/ip可以说两者的关系几乎是密不可分。tcp/ip是一个协议族,以tcp(传输控制协议)和ip(因特网协议)为主,还包括了很多其他的协议,下面是tcp/ip中的各种常用协议以及它们和osi参考模型的对照。
smtp
dns
http
ftp
telnet
tcp
udp
ip
icmp
arp
rarp
ieee 802 以太网 slip/ppp pdn 等
网卡、电缆、双绞线等
图1 tcp/ip的网络体系结构
应用层
传输层
网络层
数据链路层
物理层
从上面的图中我们可以看出,第一层物理层和第二层数据链路层是tcp/ip的基础,而tcp/ip本身并不十分关心低层,因为处在数据链路层的网络设备驱动程序将上层的协议和实际的物理接口隔离开来络设备驱动程序位于数据链路层的介质访问子层(mac)。
tcp/ip使用32位的ip地址,以太网则使用48位的硬件地址,这个硬件地址也就是网卡的mac地址,两者间使用arp和rarp协议进行相互转换。
在每台连网的计算机上都保存着一份arp缓存表,arp缓存表中存放着和它连入的计算机的ip地址和mac地址的对照表,每台计算机在和其他计算机连接时都会查询本地的arp缓存表,找到了对方的ip地址的mac地址,那么就会进行数据传输,目的地就是对方的mac地址。如果这台计算机中没有对方的arp记录,那么它首先要广播一次arp请求,连网的计算机都能收到这个广播信息,当对方的计算机接收到请求后就发送一个应答,应答中包含有对方的mac地址,当前计算机接收到对方的应答,就会更新本地的arp缓存。接着使用这个mac地址发送数据(由网卡附加mac地址)。
因此,本地高速缓存的这个arp表是本地网络流通的基础,而且这个缓存是动态更新的。
以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。在正常的情况下,一个网络接口应该只响应这样的两种数据帧:
1. 与自己硬件地址相匹配的数据帧。
2. 发向所有机器的广播数据帧。
数据的收发是由网卡来完成的,网卡接收到传输来的数据,网卡内的单片程序接收数据帧的目的mac地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知cpu,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。cpu得到中断信号产生中断,操作系统就根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。而对于网卡来说一般有四种接收模式:
广播方式:该模式下的网卡能够接收网络中的广播信息。
组播方式:设置在该模式下的网卡能够接收组播数据。
直接方式:在这种模式下,只有目的网卡才能接收该数据。
混杂方式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。
etherpeek nx正是使用了网卡的混杂模式,让网卡接收一切它所能接收的数据,这就是etherpeek nx的基本工作原理。知道了它的工作原理我们就可以用它来进行网络数据包的截取和分析以及控制了。
四、etherpeek nx对netrobocop数据包的截取和分析
正因为etherpeek nx能接收局域网中的所有数据,并能对数据进行分析,那么我们可以利用它来进行网络上数据的分析和侦察,找出网络中非法数据,并对它作出有效的控制。下面就以网络工具软件netrobocop(网络执法官)为例来用etherpeek nx对它的数据包进行分析。
netrobocop这个软件用于管理局域网,它可以获取每个ip地址和mac地址的对应表,也能反映网络用户的连接状况,可以限定各机器(包括计算机和指定了ip的网络设备)所用的ip、上网时段,以及阻止未经登记的计算机与网络连接,记录与网络连接的各机器的上网时间。但是它一旦被人非法使用就会造成网络的混乱,而且netrobocop这个工具软件也没有公布它的原理,用etherpeek nx对它数据包的分析也能了解一下这个软件的原理。
以下使用了局域网中三台计算机,分别是:
计算机a ip地址192.168.11.1 mac地址 00-e0-4c-3c-0f-14
计算机b ip地址192.168.11.2 mac地址 00-e0-4c-02-88-24
计算机c ip地址192.168.11.3 mac地址 00-e0-4c-3c-05-20
其中在计算机c上安装了netrobocop软件和etherpeek nx软件。
在没有运行netrobocop的正常网络情况下,我们查询计算机a和b的arp缓存表如下:
计算机a上 c:windowsdesktop>arp -a
interface: 192.168.11.1 on interface 0x1000002
internet address physical address type
192.168.11.2 &nbs
p; 00-e0-4c-3b-f0-46 dynamic
192.168.11.3 00-e0-4c-3c-05-20 dynamic
计算机b上 c:windowsdesktop>arp -a
interface: 192.168.11.2 on interface 0x1000002
internet address physical address type
192.168.11.1 00-e0-4c-3c-0f-14 dynamic
192.168.11.3 00-e0-4c-3c-05-20 dynamic
在运行了netrobocop后,它会列出所有设定ip地址网段内连网的计算机,显示了包括该计算机的ip地址、mac地址、计算机名字、上线时间及网卡型号等信息。在没有对其他用户限制权限时,通过etherpeek nx的capture功能获取数据进行分析可以看到,netrobocop是通过不停的向网络上发送某个网段内的所有ip地址的arp请求数据,询问对方计算机的mac地址,每台计算机在收到这个arp请求数据后就返回一个arp响应数据,返回给发送方自己的mac地址,对这个正常的arp响应数据分析显示它的信息如下(计算机b发送给计算机c的arp响应):
flags: 0x00
status: 0x00
packet length:64 / 数据包长度
timestamp: 11:04:07.168000 09/25/2003
ethernet header
destination: 00:e0:4c:3c:05:20 / 目标mac地址
source: 00:e0:4c:3b:f0:46 / 源mac地址
protocol type: 0x0806 ip arp / 协议类型
arp - address resolution protocol
hardware: 1 ethernet (10mb)
protocol: &nb
sp; 0x0800 iphardware address length:6
protocol address length:4
operation: 2 arp response / arp响应
sender hardware address:00:e0:4c:3b:f0:46 / 发送方mac地址
sender internet address:192.168.11.2 / 发送方ip地址
target hardware address:00:e0:4c:3c:05:20 / 接收方mac地址
target internet address:192.168.11.3 / 接收方ip地址
extra bytes
number of bytes:
................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.. 00 00 / 填充数据
fcs - frame check sequence
fcs (calculated): 0xdec47b2a / 校验和
这时候的网络充满了arp请求数据和arp响应数据,这些数据占用了很大的网络带宽,降低了网络的流量和利用率,不管你是通过capture获取数据的方式来分析或者利用etherpeek nx的协议类型数据分析或者流量分析都可以看出。
接下来就进行netrobocop的限制权限功能,看看它到底是怎样限制网络上用户的连网的。在计算机c上对计算机b进行限制,禁止它和其它主机相连。这时候查看计算机a和计算机b的arp缓存表可以看出来它把各自计算机的arp缓存表中计算机a和计算机b的mac地址(下面框出来的部分)给换掉了。
计算机a上 c:windowsdesktop>arp -a
interface: 192.168.11.1 on interface 0x1000002
internet address physical address type
192.168.11.2 00-e0-4c-02-88-24 dynamic
192.168.11.3 00-e0-4c-3c-05-20 dynamic
计算机b上 c:windowsdesktop>arp
-ainterface: 192.168.11.2 on interface 0x1000002
internet address physical address type
192.168.11.1 00-e0-4c-05-77-76 dynamic
192.168.11.3 00-e0-4c-3c-05-20 dynamic
其实这就是一个arp欺骗。这时候如果计算机b有发送到ip为192.168.11.1的计算机a的数据通过查找arp缓存表就转换成其它的mac地址,数据到达计算机a后它通过对照mac地址,发现不是自己的mac地址就丢弃这个数据,计算机a就收不到计算机b发来的数据,也就是计算机b不能连通计算机a。但是计算机c为了还能控制计算机b,它不修改自己的mac地址,保持着和计算机b的通信。
实现这个arp欺骗的过程通过etherpeek nx的数据截取和分析可以看出它采用的也是arp响应数据。arp协议并不只在发送了arp请求数据才接收arp响应数据。当计算机接收到arp响应数据的时候,就会对本地的arp缓存表进行更新,将arp响应中的ip地址和mac地址存储在arp缓存表中。
这个arp欺骗的arp响应数据其实就是计算机c借用了计算机a的ip地址向计算机b发送了一个随机伪造的mac地址,它的数据包如下:
flags: 0x00
status: 0x00
packet length:64
timestamp: 11:04:08.318000 09/25/2003
ethernet header
destination: 00:e0:4c:3b:f0:46
source: 00:e0:4c:05:77:76 / 伪造的mac地址
protocol type: 0x0806 ip arp
arp - address resolution protocol
hardware: 1 ethernet (10mb)
protocol: 0x0800 ip
hardware address length:6
protocol address length:4
operation: 2 arp response
sender h
ardware address:00:e0:4c:05:77:76 / 伪造的mac地址sender internet address:192.168.11.1 / 伪造的计算机a的ip地址
target hardware address:00:e0:4c:3b:f0:46
target internet address:192.168.11.2
extra bytes
number of bytes:
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20
fcs - frame check sequence
fcs (calculated): 0xc3277168
arp缓存表是动态更新的,如果只发送一个这样的带arp欺骗的arp响应数据,在经过一段时候没有通信后它就会从arp缓存表中删除,下次再有连接的话就再进行arp请求和arp响应,更新成正确的mac地址。为了防止arp缓存更新,netrobocop在一直不停地给计算机b发送这个带arp欺骗的arp响应数据。同时它也一直不停的向计算机a发送带arp欺骗的arp响应数据,这样就可以完全阻止计算机a和计算机b的双方的通信。
如果发送方和接收方的ip地址一样会怎样呢?也就是我们经常见到的ip地址冲突警告,netrobocop就是利用它来产生ip地址冲突的。计算机c发给计算机a的ip冲突的arp响应数据如下:
flags: 0x00
status: 0x01
packet length:64
timestamp: 11:06:29.841000 09/25/2003
ethernet header
destination: 00:e0:4c:3c:0f:14
source: 00:e0:4c:78:84:6b / 伪造的mac地址
protocol type: 0x0806 ip arp
arp - address resolution protocol
hardware: 1 ethernet (10mb)
protocol:
0x0800 iphardware address length:6
protocol address length:4
operation: 2 arp response
sender hardware address:00:e0:4c:78:84:6b / 伪造的mac地址
sender internet address:192.168.11.1 / 伪造的和接收方相同的ip地址
target hardware address:00:e0:4c:3c:0f:14
target internet address:192.168.11.1
extra bytes
number of bytes:
................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.. 00 00
fcs - frame check sequence
fcs (calculated): 0xfe9194da
这样,计算机a在收到这个带ip冲突的arp响应数据后,网卡在检测到发送方和接收方使用了相同的ip地址,就会产生一个ip地址冲突中断,cpu接收中断后就弹出一个警告窗口。这个带ip冲突的arp响应数据也是在一直不停地发送的,所以计算机a就一直收到这个ip冲突警告。
五、etherpeek nx对netrobocop的解决方法
通过对netrobocop数据的截取和分析,了解了netrobocop这个网络软件的基本原理。一旦这个软件被非法使用,某些用户可能被非法限制权限后就很难摆脱它的控制,而且它是利用网络的底层功能arp欺骗来实现控制,没有什么现成的工具和软件来阻止这种限制,除非它对你取消限制权限才有可能正常连网使用。那我们对这种限制是否就束手无策了呢?答案当然是否定的,其实我们可以用netrobocop的arp欺骗原理来进行反击,摆脱它的控制,保持网络的正常状态。当然在这种情况下,网络上就会充满了这些arp的数据包,占用很大的网络流量,影响正常的网络使用。使用的方法可以这样来实现,因为一旦受到netrobocop的限制,你已经没办法和其他计算机进行通信,但控制你的那台计算机还可以和你通信,我们就是利用它的这个线索找到控制你的计算机,通过etherpeek nx的capture功能就可以发现,找出它的ip地址和mac地址,然后通过etherpeek nx的发送数据功能给它也发送带arp欺骗的arp响应数据,让它断开和其他计算机的连接,从而摆脱它的控制。
六、结束语
如etherpeek nx和netrobocop这些网络工具可以被网管人员用于加强安全性、加强网络的自由度,也可以被恶意用户用于非法的网络活动。我们只要能分析了这些网络工具的原理,就能用这些工具来更好地维护网络的安全和畅通。
参考文献:
[1] ramadas shanmugam著,尹浩琼,李剑译,tcp/ip详解(第二版),电子工业出版社,2003
[2] anonymous著,maximum security,sams publishing,1997
[3] 余建斌著,黑客的攻击手段及用户对策,人民邮电出版社,1998
[4] anonymous
著,前导工作室译,网络安全技术内幕,机械工业出版社,1999