etherpeek nx在网络维护中的应用

摘要:该文分析了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  ip

  hardware 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

-a

interface: 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  ip

  hardware 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Windows编程之hdc和hwnd的区别

在windows编程中类型名前面加H的基本是句柄常用句柄 : HBITMAP 保存位图信息的内存域的句柄 HBRUSH 画刷句柄 HCTR 子窗口控件句柄 HCURSOR 鼠标光标句柄 HDC 设备描述表句柄 HDLG 对话框句柄 HFONT 字体句柄 HICON 图标句柄 HINSTANCE 应用程序实例句柄 HMENU 菜单句柄 HMODUL…

java在dos中如何测试_[求助]怎么在java中模拟dos命令行

[CODE]/** Test.java** Created on 2006年12月21日, 下午3:53** To change this template, choose Tools | Template Manager* and open the template in the editor.*/package testCMD;/**** author lbf*/import java.io.*;import java.awt.*;import java.awt.event.*;import …

谈谈基于SQL Server 的Exception Handlingp[下篇]

六、SqlException 在上面一节中,我给出了一个完整的例子说明了:如何在将message定义在sys.messages中保证message的一致性和可维护性;如何在Stored procedure中使用RAISERROR将一个可预知的Error抛出;如何在Stored procedure中使用…

char * 转LPCTSTR若干方法

如何将char* 转换为LPCTSTR?? rainForestBache (百奇) 2004-10-19 20:17:48 在 VC/MFC / 基础类 提问 请多多指教 问题点数:20、回复次数:10 1楼 stephen_young () 回复于 2004-10-19 20:33:45 得分 5 实际上将char*转…

【转】修改static控件背景颜色和文字颜色

当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息。如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄,Windows 会使用该画刷来绘制控件背景(子窗口背景)。 也…

用C#中的string.Replace有错误,无法替换。

我用的是.net 1.1,在编程要将[Title]替换为“这是标题”,用string.Replace替换总是不对:temp.Replace("[Title]","这是标题");temp输出后显示没有被替换。用较短的实际字符串是可以被替换的,所以我不怀疑我的…

java中随机数彩票练习_基于javascript实现彩票随机数生成(简单版)

本文实例讲解了JavaScript 实现彩票中随机数组的获取详细代码,分享给大家供大家参考,具体内容如下效果图:具体代码:Math.random方法彩票随机数的生成开始获取随机数组//获取节点var btnGo document.getElementById("btnGo&q…

C/C++中near和far的区别

在80286以前的微处理器(CPU)组成的确16位机上,Windows操作系统(包括DOS)对于内存是分段使用的(分段内存模式,Segment Memory Mode)。运行在这些16位CPU微机上的Windows&#xff…

【转】Windows编程之滚动条—滚动条消息

在用鼠标单击滚动条或者拖动卷动方块时,Windows给窗口消息处理程序发送WM_VSCROLL(供上下移动)和WM_HSCROLL(供左右移动)消息。在滚动条上的每个鼠标动作都至少产生两个消息,一条在按下鼠标按钮时产生&…

创建IE各版本专属CSS

IE下专属CSS&#xff1a; <![if !IE]><link rel"stylesheet" type"text/css" href"NOT-IE.css" /><![endif]>IE 6 ONLY: <!--[if IE 6]><link rel"stylesheet" type"text/css" href"IE-6-S…

juc是什么java_JUC简介

JUC是什么JUC是 在Java 5.0添加的 java.util.concurrent包的简称&#xff0c;目的就是为了更好的支持高并发任务&#xff0c;让开发者利用这个包进行的多线程编程时可以有效的减少竞争条件和死锁线程。JUC的结构1&#xff0c;tools(工具类)&#xff1a;又叫信号量三组工具类&am…

简述TCP/IP四层体系结构及每层作用

应该说是Internet四层体系结构 1.数据链路层 2.网络层 3.传输层 4.应用层 &#xff0c;其中IP是在第二层网络层中&#xff0c;TCP是在第3层传输层中&#xff0c;Internet体系结构最重要的是TCP/IP协议&#xff0c;是实现互联网络连接性和互操作性的关键&#xff0c;它把许多…

WinAPI: SetTextColor - 设置设备环境的文本颜色

//声明: SetTextColor(DC: HDC; {设备环境句柄}Color: COLORREF {颜色值} ): COLORREF; {返回指定的颜色值; 如果返回值是 CLR_INVALID 表示设置失败}//举例: procedure TForm1.Button1Click(Sender: TObject); beginSetTextColor(Canvas.Handle, clRed);Canvas.Te…

java volidate线程安全_03.(多线程与并发)面试题-02--Volidate的原理和指令重排序

线程栈(线程的工作内存)保存了线程运行时候变量值信息。当线程访问某一个对象时候值的时候&#xff0c;首先通过对象的引用找到对应在堆内存的变量的值&#xff0c;然后把堆内存变量的具体值load到线程本地内存中&#xff0c;建立一个变量副本&#xff0c;之后线程就不再和对象…

选址问题java_学习使用分治算法来解决邮局选址问题(Java实现)

邮局选址问题(分治算法)前言提示&#xff1a;在算法的学习过程中我们会遇到各种各样的算法思想&#xff0c;其中最常见的就有分治算法思想&#xff0c;而本文的问题邮局选址问题就是基于分治思想而去实现的一个日常问题提示&#xff1a;以下是本文内容&#xff0c;我将对该问题…

新学期新开始

新学期&#xff0c;新开始&#xff01;告诉自己&#xff0c;一定要坚持走自己的路。太多的事情&#xff0c;太多的诱惑。我们要坚持自己的脚步&#xff0c;要知道&#xff1a;坚持就是胜利。终将会有自己的一片天地。不能被中间的事情分神&#xff0c;忘了自己远方的那盏明灯&a…

210板wince键盘驱动分析和移植

主要是bsp包里面的3个cpp文件的分析。 首先是pddlist.cpp文件 这个文件介绍了3种键盘的wince的api入口函数名前面加winapi&#xff09;&#xff0c;本文只关心第二种矩阵键盘。 然后在kbd.cpp文件中可以找到这个入口函数Matrix_Entry。 这里值得注意的是&#xff0c;本驱动…

【转】各种消息下wParam及lParam值的含义

01、WM_PAINT消息 LOWORD(lParam)是客户区的宽&#xff0c;HIWORD(lParam)是客户区的高 02、滚动条WM_VSCROLL或WM_HSCROLL消息 LOWORD(wParam)指出了鼠标对滚动条的操作。比如上、下、左、右、翻页、移动等。 03、击键消息&#xff0c;有WM_SYSKEYDOWN、WM_SYSKEYUP、WM_KEY…

WinAPI: GetCurrentThread、GetCurrentThreadId、GetCurrentProcess、GetCurrentProcessId

{返回当前线程的虚拟句柄} GetCurrentThread: THandle;{返回当前线程 ID} GetCurrentThreadId: DWORD;{返回当前进程的虚拟句柄} GetCurrentProcess: THandle;{返回当前进程 ID} GetCurrentProcessId: DWORD;提示:ID 是系统唯一的标识.所谓虚拟句柄, 就是该句柄只在调用进程的进…

Windows Embedded CE 6.0开发初体验(一)Windows CE概述

这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面&#xff0c;只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识&#xff0c;解决大家会在实际开发中碰到的一些小问题&#xff0c;让大家了解嵌入式开发与应用程序开发&#xff…