SnifferPro的基本使用和实例[图文]运行环境及安装SnifferPro可运行在局域网的任何一台机器上,如果是练习使用,网络连接最好用Hub且在一个子网,这样能抓到连到Hub上每台机器传输的包。本文用的版本是4.6,SnifferPro软件的获取可在,查找相应的下载站点来下载。该版本是不要序列号的。安装非常简单,setup后一路确定即可,第一次运行时需要选择你的网卡。最好在win2000下运行,在win2003下运行网络流量表有问题。常用功能介绍1、Dashboard(网络流量表)点击图1中①所指的图标,出现三个表,第一个表显示的是网络的使用率(Utilization),第二个表显示的是网络的每秒钟通过的包数量(Packets),第三个表显示的是网络的每秒错误率(Errors)。通过这三个表可以直观的观察到网络的使用情况,红色部分显示的是根据网络要求设置的上限。选择图1中②所指的选项将显示如图2所示的更为详细的网络相关数据的曲线图。每个子项的含义无需多言,下面介绍一下测试网络速度中的几个常用单位。在TCP/IP协议中,数据被分成若干个包(Packets)进行传输,包的大小跟操作系统和网络带宽都有关系,一般为64、128、256、512、1024、1460等,包的单位是字节。很多初学者对Kbps、KB、Mbps等单位不太明白,B和b分别代表Bytes(字节)和bits(比特),1比特就是0或1。1Byte=8bits。1Mbps(megabitspersecond兆比特每秒),亦即1x1024/8=128KB/sec(字节/秒),我们常用的ADSL下行512K指的是每秒512K比特(Kb),也就是每秒512/8=64K字节(KB)图1图22、Hosttable(主机列表)如图3所示,点击图3中①所指的图标,出现图中显示的界面,选择图中②所指的IP选项,界面中出现的是所有在线的本网主机地址及连到外网的外网服务器地址,此时想看看192.168.113.88这台机器的上网情况,只需如图中③所示单击该地址出现图4界面。图3图4中清楚地显示出该机器连接的地址。点击左栏中其它的图标都会弹出该机器连接情况的相关数据的界面。图43、Detail(协议列表)点击图5所示的“Detail”图标,图中显示的是整个网络中的协议分布情况,可清楚地看出哪台机器运行了那些协议。注意,此时是在图3的界面上点击的,如果在图4的界面上点击显示的是那台机器的情况。图54、Bar(流量列表)点击图6所示的“Bar”图标,图中显示的是整个网络中的机器所用带宽前10名的情况。显示方式是柱状图,图7显示的内容与图6相同,只是显示方式是饼图。图6图75、Matrix(网络连接)点击图8中箭头所指的图标,出现全网的连接示意图,图中绿线表示正在发生的网络连接,蓝线表示过去发生的连接。将鼠标放到线上可以看出连接情况。鼠标右键在弹出的菜单中可选择放大(zoom)此图。图8抓包实例1、抓某台机器的所有数据包如图9所示,本例要抓192.168.113.208这台机器的所有数据包,如图中①选择这台机器。点击②所指图标,出现图10界面,等到图10中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图11界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。图9图10图112、抓Telnet密码本例从192.168.113.208这台机器telnet到192.168.113.50,用SniffPro抓到用户名和密码。步骤1:设置规则如图12所示,选择Capture菜单中的DefindFilter,出现图13界面,选择图13中的ADDress项,在station1和2中分别填写两台机器的IP地址,如图14所示选择Advanced选项,选择选IP/TCP/Telnet,将PacketSize设置为Equal55,PacketType设置为Normal.。图12图13图14步骤2:抓包按F10键出现图15界面,开始抓包。图15步骤3:运行telnet命令本例使telnet到一台开有telnet服务的Linux机器上。telnet192.168.113.50login:testPassword:步骤4:察看结果图16中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图17界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。可以清楚地看出用户名为test密码为123456。图16图17解释:虽然把密码抓到了,但大家也许对包大小(PacketSize)设为55不理解,网上的数据传送是把数据分成若干个包来传送,根据协议的不同包的大小也不相同,从图18可以看出当客户端telnet到服务端时一次只传送一个字节的数据,由于协议的头长度是一定的,所以telnet的数据包大小=DLC(14字节)+IP(20字节)+TCP(20字节)+数据(一个字节)=55字节,这样将PacketSize设为55正好能抓到用户名和密码,否则将抓到许多不相关的包。图183、抓FTP密码本例从192.168.113.208这台机器ftp到192.168.113.50,用SniffPro抓到用户名和密码。步骤1:设置规则如图12所示,选择Capture菜单中的DefindFilter出现图19界面,选择图19中的ADDress项,在station1和2中分别填写两台机器的IP地址,选择Advanced选项,选择选IP/TCP/FTP,将PacketSize设置为InBetween63-71,PacketType设置为Normal。如图20所示,选择DataPattern项,点击箭头所指的AddPattern按钮,出现图21界面,按图设置OFFset为2F,方格内填入18,name可任意起。确定后如图22点击AddNOT按钮,再点击AddPattern按钮增加第二条规则,按图23所示设置好规则,确定后如图24所示。图20图22图24步骤2:抓包按F10键出现图15界面,开始抓包。步骤3:运行FTP命令本例使FTP到一台开有FTP服务的Linux机器上D:/ftp192.168.113.50Connectedto192.168.113.50.220test1FTPserver(Versionwu-2.6.1(1)WedAug905:54:50EDT2000)ready.User(192.168.113.50:(none)):test331Passwordrequiredfortest.Password:步骤4:察看结果图16中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图25界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。可以清楚地看出用户名为test密码为123456789。图25解释:虽然把密码抓到了,但大家也许设不理解,将图19中PacketSize设置为63-71是根据用户名和口令的包大小来设置的,图25可以看出口令的数据包长度为70字节,其中协议头长度为:14+20+20=54,与telnet的头长度相同。Ftp的数据长度为16,其中关键字PASS占4个字节,空格占1个字节,密码占9个字节,Od0a(回车换行)占2个字节,包长度=54+16=70。如果用户名和密码比较长那么PacketSize的值也要相应的增长。DataPattern中的设置是根据用户名和密码中包的特有规则设定的,为了更好的说明这个问题,请在开着图15的情况下选择Capture菜单中的DefindFilter,如图20所示,选择DataPattern项,点击箭头所指的AddPattern按钮,出现图26界面,选择图中1所指然后点击2所指的SetData按钮。OFFset、方格内、Name将填上相应的值。同理图27中也是如此。这些规则的设置都是根据你要抓的包的相应特征来设置的,这些都需要对TCP/IP协议的深入了解,从图28中可以看出网上传输的都是一位一位的比特流,操作系统将比特流转换为二进制,Sniffer这类的软件又把二进制换算为16进制,然后又为这些数赋予相应的意思,图中的18指的是TCP协议中的标志位是18。OFFset指的是数据包中某位数据的位置,方格内填的是值。图26图27图284、抓HTTP密码步骤1:设置规则按照下图29、30进行设置规则,设置方法同上。图29图30步骤2:抓包按F10键开始抓包。步骤3:访问:察看结果图16中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图31界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。在Summary中找到含有POST关键字的包,可以清楚地看出用户名为qiangkn997,密码为?,这可是我邮箱的真实密码!当然不能告诉你,不过欢迎来信进行交流。图31后记本文中的例子是网内试验,若捕捉全网机器的有关数据请将图13中的station设置为any-any,作为学习研究可以,可别做坏事!如果要用好SniffPro必须有扎实的网络基础知识特别是TCP/IP协议的知识,其实SniffPro本身也是学习这些知识的好工具。SnifferPro是个博大精深的工具,由于水平有限,本文这是介绍了其中的一小部分,希望能起到抛砖引玉的作用。