2.1使用Sniffer捕获数据包【实验目的】通过实验,了解FTP、HTTP等协议明文传输的特性,了解局域网内的监听手段,掌握Sniffer嗅探器软件的使用方法,掌握对嗅探到的数据包进行分析的基本方法,并能够对嗅探到的数据包进行网络状况的判断。【实验环境】网内设有三台主机,IP地址分别为219.224.78.145、219.224.78.146、219.224.78.150,其中主机219.224.78.145安装Sniffer软件Ethereal和SnifferPro,在主机219.224.78.146上运行FTP服务器,结构如图2-1所示。图2-1【实验原理】网络监听是一种常用的被动式网络攻击方法,能帮助入侵者轻易获得用其他方法很难获得的信息,包括用户口令、账号、敏感数据、IP地址、路由信息、TCP套接字号等。管理员使用网络监听工具可以监视网络的状态、数据流动情况以及网络上传输的信息。嗅探器(Sniffer)是利用计算机的网络接口截获发往其他计算机的数据报文的一种技术。它工作在网络的底层,将网络传输的全部数据记录下来。嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能。嗅探器可以分析网络的流量,以便找出所关心的网络中潜在的问题。不同传输介质网络的可监听性是不同的。一般来说,以太网被监听的可能性比较高,因为以太网是一个广播型的网络。微波和无线网被监听的可能性同样比较高,因为无线电本身是一个广播型的传输媒介,弥散在空中的无线电信号可以被很轻易地截获。在以太网中,嗅探器通过将以太网卡设置成混杂模式来捕获数据。因为以太网协议工作方式是将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。但是,当主机工作在监听模式下,无论数据包中的目标地址是什么,主机都将接收(当然自己只能监听经过自己网络接口的那些包)。在Internet上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起,当同一网络中的两台主机通信的时候,源主机将写有目的主机地址的数据包直接发向目的主机。但这种数据包不能在IP层直接发送,必须从TCP/IP协议的IP层交给网络接口,也就是数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。在帧头中有两个域,分别为只有网络接口才能识别的源主机和上的主机的物理地址,这是一个与IP地址相对应的48位的以太地址。传输数据时,包含物理地址的帧从网络接口(网卡)发送到物理的线路上,如果局域网是由一条粗缆连接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。当数字信号到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃,对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,所有的数据帧都将交给上层协议软件处理。而且当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的数据包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。另外,现在网络中使用的大部分网络协议都是很早设计的,许多协议的实现都是基于一种非常友好的、通信双方充分信任的基础之上,许多信息以明文发送。因此,如果用户的账户名和口令等信息也以明文的方式在网络上传输,而此时一个黑客或网络攻击者正在进行网络监听,只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。同理,正确地使用网络监听技术也可以发现入侵并对入侵者进行追踪定位,在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息,成为打击网络犯罪的有力手段。目前常用的嗅探器工具主要有Ethereal、SnifferPro等。两个软件功能相似,均具有捕获网络中传输的数据功能,除此之外,SnifferPro还具有捕获网络流量进行详细分析的功能,并能够利用专家分析系统诊断问题,可以实时监控网络活动,收集网络利用率和错误等信息。【实验步骤】实验1:用Ethereal捕获网络中传输的数据包。(1)打开Ethereal窗口。双击桌面上Ethereal图标,打开Ethereal窗口。(2)设置过滤规则。在主窗口中,单击【Filter】按钮,打开过滤器的设置界面,可以根据需要选取或直接输入过滤命令,并支持and/or的功能连接。这里输入“ip.addr==219.224.78.146”,结果如图2-2所示。单击【OK】按钮。图2-2(3)查看网络监听。单击【Capture】|【Interface】查看可以进行监听的网络接口。如图2-3所示。图2-3(4)选择并设定监听接口并选择网络接口。单击需要监听接口的【Prepare】按钮,可以进行监听接口的选择和设定,在【Interface】栏选定接口。如图2-4所示。单击【Start】,开始在【Interface】栏选定的接口上进行嗅探、监听。单击【Cancel】回到【Interface】窗口。(5)进入网络嗅探状态。在【Interface】窗口中,单击需要监听接口的【Capture】按钮,即进入网络嗅探状态,如图2-5所示。(6)结束监听。当有需要的数据包出现或监听一段时间后,单击【Stop】按钮,结束监听并自动进入协议分析界面。如图2-6所示。图2-4图2-5图2-6实验2:用SnifferPro捕获网络中传输的数据包。(1)打开SnifferPro主界面。双击桌面上SnifferPro图标,运行SnifferPro,进入主界面。如图2-7所示。图2-7(2)选择进行监听的网络接口。选择【FileSelectSettings】,在弹出的对话框中选择要进行监听的网络接口所对应的网卡,并单击【确定】按钮。如图2-8所示。图2-8(3)定义抓包过滤规则。选择【Capture】|【DefineFilter】,或单击捕获面板上的按钮,弹出定义抓包过滤规则对话框。为简化实验过程,本实验仅对默认规则进行修改,更多的过滤规则可通过单击【Profiles】按钮并在弹出的对话框中进行新建、删除、重命名等操作,这里不再赘述。(4)设置监听地址。单击【Address】选项卡,设置要监听的网络通信收发双方的地址。其中【Address】下拉菜单用来设置地址的类型(如网卡物理地址、IP地址等),Mode复选框用来设置应包含(Include)还是排除(Exclude)下面地址列表中所列出的地址,地址列表中的三列分别表示通信双方的地址及通信方向。在本实验中,应在【Address】下拉菜单中选择IP,在【Mode】复选框中选中【Include】,在地址列表的【Station1】和【Station2】列中填入要监听的通信双方的IP地址【219.224.78.150】和【219.224.78.146】,并在方向(Dir.)一列中选择双向箭头。如图2-9所示。图2-9(5)设置所抓数据包属性。单击【Advanced】选项卡,对要抓取的数据包的大小、类型、及使用的协议进行设置。本实验中在IP及其下级选项ICMP前面的方框中打勾,其他设置不变,如图2-10所示。图2-10要说明的是,在此若不进行任何设置,则SnifferPro捕获通信双方传送的所有数据包;若仅在勾选了IP选项,而不勾选其任何下级选项,则SnifferPro捕获通信双方传送的所有靠IP协议提供服务的数据包(包含ICMP数据包),这两种设置也可用于本次实验,但捕获的结果包含其他协议的数据包,不利于进一步分析。单击【Summary】选项卡,可看到修改后的过滤规则的完整描述,如图2-11所示。确认无误后,单击【确定】按钮结束过滤规则的设置。图2-11(6)捕获数据包。选择【Capture】|【Star】,或按【F10】,或单击捕获面板上的按钮,开始捕获数据包。(7)发送Ping包。令IP地址为219.224.78.150的主机pingIP地址为219.224.78.146的主机。(8)结束捕获。选择【Capture】|【StopandDisplay】,也可以按【F9】,或单击捕获面板上的按钮,结束捕获数据包,并显示结果。单击下面的【Decode】选项卡,得到捕获数据包的解码信息。其中包含上、中、下三个区域,上面的区域显示了截获的整个通信过程中所有数据包的简要描述,由此可以清楚地了解到通信协议的工作过程(本实验中是ICMP协议);中间的区域显示了在上面区域选中的包的详细结构,清楚地描述了各层协议所使用的数据包的格式结构;下面的区域显示的是在最上面区域所选中的数据包的完整二进制表示,其中阴影部分是在中间区域中所选中的数据结构的二进制表示。请根据捕获数据包的解码结果,分析ICMP协议的工作过程及数据包格式。(9)修改过滤规则。使之只捕获FTP协议传送的数据包,然后在IP地址为202.204.78.150的主机上从IP地址为219.224.78.146的FTP服务器下载一个小文件,捕获这个过程中通信双方传送的包,根据解码结果分析FTP协议的工作过程,并尝试找出客户端所使用的用户名及密码。(10)监视抓包过程。除了对捕获数据包的数据进行解码,以供使用者分析外,该软件还可截获网络中所有主机传送的包,并实时地对其进行自动分析,由此得到网络的通信状态信息,如网络负荷、协议使用的分布规律、通信量靠前的若干主机的通信量、相互通信量靠前的若干主机对的通信量等。实现这些功能的子程序被称为监视器。利用这些监视器提供的信息,管理人员可以更好地管理网络和检测故障。单击【Monitor】菜单下的子菜单,打开监视器。练习1:使用SnifferPro捕获网络中某台主机的(IP地址自行确定)FTP数据包,并进行分析(三次握手等);练习2:使用SnifferPro捕获网络中某台主机的(IP地址自行确定)捕获HTTP数据包,并进行分析(浏览的网站、有无用户账号等)。2.2使用SuperScan扫描端口【实验目的】了解端口扫描的用途及扫描原理,掌握使用SuperScan扫描工具对计算机端口进行扫描的方法。【实验环境】两台装有Windows2000/XP/2003操作系统,SuperSscan等工具的计算机。【实验原理】一个开放的端口就是一条与计算机进行通信的信道,对端口的扫描可以得到目标计算机开放的服务程序、运行的系统版本信息。扫描工具是对目标主机的安全性弱点进行扫描检测的软件。它一般具有数据分析功能,通过对端口的扫描分析,可以发现目标主机开放的端口和所提供的服务,以及相应服务软件版本和这些服务及软件的安全漏洞,从而可以及时了解目标主机存在的安全隐患。1.端口基本知识端口是TCP协议定义的。TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。套接字采用[IP地址:端口号]的形式来定义。通过套接字中不同的端口号来区别同一台计算机上开启的不同TCP和UDP连接进程。对于两台计算机间的任一个TCP连接,一台计算机的一个[IP地址:端口]套接字会和另一台计算机的一个[IP地址:端口]套接字相对应,彼此标识着源端、目的端上数据包传输的源进程和目标进程。这样网络上传输的数据包就可以由套接字中的IP地址和端口号找到需要传输的主机和连接进程了。由此可见,端口和服务进程一一对应,通过扫描开放的端口,就可以判断出计算机中正在运行的服务进程。TCP/UDP的端口号在0~65535范围之内,其中1024以下的端口保留给常用的网络服务。例如:21端口为FTP服务,23端口为TELNET服务,25端口为SMTP服务,80端口为HTTP服务,110端口为POP3服务等。2.扫描原理常用的端口扫描技术如下:(1)TCPconnect()扫描这是最基本的TCP扫描,操作系统提供的connect()系统调用