信息安全网络嗅探与监听大作业.docx
《信息安全网络嗅探与监听大作业.docx》由会员分享,可在线阅读,更多相关《信息安全网络嗅探与监听大作业.docx(13页珍藏版)》请在冰豆网上搜索。
![信息安全网络嗅探与监听大作业.docx](https://file1.bdocx.com/fileroot1/2023-5/16/9e6cf30b-090f-48b5-b887-5a960e540eea/9e6cf30b-090f-48b5-b887-5a960e540eea1.gif)
信息安全网络嗅探与监听大作业
网络嗅探与监听
一、背景与意义
随着计算机网络技术的飞速发展,借助网络嗅探器进行网络流量监控和网络问题分析已成为网络管理员不可缺少的工作内容。
网络嗅探器是利用计算机的网络接口截获在网络中传输的数据信息的一种工具,主要用于分析网络的流量,以便找出所关心的网络中潜在的问题--例如:
现在正在兴起的网络支付业务,在使用这个业务中我们的账户安全显得尤其重要,我们可以利用网络嗅探器来提高我们自己的账户安全。
网络嗅探器是一种利用网络传输机制工作的网管工具,同时又是一种黑客工具,主要是用来被动监听、捕捉、解析网络上的数据包并作出各种相应的参考数据分析;其既可以是一种软件也可以是一种硬件。
硬件的网络嗅探器也称为协议分析器,是一种监视网络数据运行的设备,协议分析器既能用于合法网络管理也能用于窃取网络信息,但协议分析器价格非常昂贵。
狭义的网络嗅探器是指软件嗅探器,由于简单实用,目前对于软件网络嗅探器的研究Et益成为热点。
将网络接口卡NIC(NetworkInterfaceCard)设置为杂收模式,嗅探器程序就有了捕获经过网络传输报文的能力。
二、网络嗅探器的基本原理
网络嗅探器通常由4部分组成。
1)网络硬件设备。
2)监听驱动程序。
截获数据流,进行过滤并把数据存人缓冲区。
3)实时分析程序。
实时分析数据帧中所包含的数据,目的是发现网络性能问题和故障,与入侵检测系统不同之处在于它侧重于网络性能和故障方面的问题,而不是侧重发现黑客行为。
4)解码程序。
将接收到的加密数据进行解密,构造自己的加密数据包并将其发送到网络中。
网络嗅探器作为一种网络通讯程序,是通过对网卡的编程实现网络通讯的,对网卡的编程使用通常的套接字(socket)方式进行。
但通常的套接字程序只能响应与自己硬件地址相匹配的,或是以广播形式发出的数据帧,对于其他形式的数据帧,如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址后将不引起响应,即应用程序无法收取到达的数据包。
而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包。
显然,要达到此目的就不能再让网卡按通常的模式工作,而必须将其设置为混杂模式。
现在企业局域网中常用的网络协议是“以太网协议”。
而这个协议有一个特点,就是某个主机A如果要发送一个主机给B,其不是一对一的发送,而是会把数据包发送给局域网内的包括主机B在内的所有主机。
在正常情况下,只有主机B才会接收这个数据包。
其他主机在收到数据包的时候,看到这个数据库的目的地址跟自己不匹配,就会把数据包丢弃掉。
但是,若此时局域网内有台主机C,其处于监听模式。
则这台数据不管数据包中的IP地址是否跟自己匹配,就会接收这个数据包,并把数据内容传递给上层进行后续的处理。
这就是网络监听的基本原理。
在以太网内部传输数据时,包含主机唯一标识符的物理地址(MAC地址)的帧从网卡发送到物理的线路上,如网线或者光纤。
此时,发个某台特定主机的数据包会到达连接在这线路上的所有主机。
当数据包到达某台主机后,这台主机的网卡会先接收这个数据包,进行检查。
如果这个数据包中的目的地址跟自己的地址不匹配的话,就会丢弃这个包。
如果这个数据包中的目的地址跟自己地址匹配或者是一个广播地址的话,就会把数据包交给上层进行后续的处理。
在这种工作模式下,若把主机设置为监听模式,则其可以了解在局域网内传送的所有数据。
如果这些数据没有经过加密处理的话,那么后果就可想而知了。
三、网络嗅探与监听的实现的实例分析
在本文中采用的网络嗅探与监听软件是IrisTrafficAnalyzer,Iris师出名门--eeye,eeye是一家以网络安全见长的公司,它的扫描器以及其他安全方案在业界也算鼎鼎大名了。
Iris的最大特点,在你安装完成之后,只需简单的点一下界面上一个按钮就可以开始Sniffing抓包了!
Iris的安装文件也不到5M,安装下来才占用10多M。
对比SnifferPro这些而言可谓苗条身材。
现在主要针对一个简单应用来说明Iris的使用方法。
3.1例子:
利用Iris捕获校内密码
在做这个实例里,密为校内网的密码和用户名都是明文发送,所以就给了我们找回密码的机会!
第一步:
开启抓包功能
点选工具栏上类似播放健的那个按钮(Start/StopCapture),就是
这个按钮!
图1
第二步:
开启Filter功能
在没有开启Filter功能之前,你可能抓获的是所有进出你网卡的流量,有过路的,有看热闹的,当然也有你要找的,为了方便我们查找目标,我们需要简单的过滤一下!
我们定义一个IP过滤器,具体设置如图3
查看当前局域网内活动的主机和网关
设置目标IP地址过滤器
图3
第三步:
打开人人网主页,登入人人的个人主页
第四步:
停止抓包
点工具栏上StopCapture按钮
第五步:
寻找密码
因为校内的用户名和密码都是明文传输的,所以你的密码就藏在你捕获的那些报文里面现在你只需要一个一个检视。
如下图4:
图4
3.2对具体某一帧数据进行分析
下图是一帧数据的结构组成
从上图我们可以看出协议由外向内封装,分别是:
1、数据链路层对应“EthernetII”协议;
2、网络层对应“IP”协议;
3、传输层对应“TCP”协议;
下面我们就分别对这三层协议做详细解释。
以太网数据包结构
EthernetII的协议结构为:
7
1
6
6
2
46-1500bytes
4
Pre
SFD
DA
SA
LengthType
Dataunit+pad
FCS
下图是Iris对EthernetII协议解码后的内容
字段
说明
Destinationaddress
DA,目标MAC地址6字节
Sourceaddresses
SA,源MAC地址6字节
Protocol
LengthType,承载的上层协议类型
Dataunit+pad,数据字段(46-1500bytes)
FCS检验(4bytes)
MAC地址:
MAC地址为16进制编码,在解码中可以将前3bytes代表厂商的字段翻译出来,方便定位问题,如网络上有两台设备IP地址冲突,可以通过厂商信息方便的将故障设备找到,如00e04C为TP-LINK,000AKB为迅捷,00A0C9为Intel等等,此资料可参见科来软件提供的EthernetCodesmasterpage(Ethernet.txt)。
上层协议:
EthernetII承载的上层协议主要包括0x800为IP协议和0x806为ARP协议。
IP协议结构
IP头的结构如下:
4
8
16
19
32bits
Ver
IHL
Typeofservice
Totallength
Identification
Flags
Fragmentoffset
Timetolive
Protocol
Headerchecksum
Sourceaddress
Destinationaddress
Option+Padding
Data
下图是Iris对IP层解码后的内容,我们利用此实例进行说明:
下面是IP协议解码的对应字段解释:
字段
说明
Version:
4
版本号为4,即IPv4协议,
HeaderLength:
5
头部长度20字节,5bits
Typeofservice:
0000000
服务提供类型,显示参数摘要。
Precedence
优先路由信息
Delay
迟延
Throughput
吞吐量
Reliability
可靠性
TotalLength:
131
总长131(单位字节,最长为65535字节)
Identification:
10403
标识
FragmentationFlags:
000.....
标志
Reserved:
保留
Fragment:
片断
MoreFragment:
最后片断
FragmentOffset:
0
偏移量
TimetoLive:
TTL,科来网络分析系统5.0将丢弃TTL=0的数据包
Protocol:
17
是哪种协议,1–ICMP,6–TCP,17–UDP,89–OSPF
CheckSum:
0xCE73
对IP协议头的校验合,0xCE73为正确
SourceIP:
192.168.1.1
源IP地址
DestinationIP:
192.168.1.2
目标IP地址
TCP协议结构
以下是DNS协议的结构:
16
32bits
Sourceport
Destinationport
Sequencenumber
Acknowledgementnumber
Offset
Reserved
U
A
P
R
S
F
Window
Checksum
Urgentpointer
Option+Padding
Data
下图是Iris对TCP协议进行解码视图:
TCP字段的详细说明:
字段
说明
SourcePort:
80
源端口,HTTP为80端口
DestinationPort:
3406
目标端口
SequenceNumber:
4161759990
32bits.Thesequencenumberofthefirstdataoctetinthissegment(exceptwhenSYNispresent).IfSYNispresent,thesequencenumberistheinitialsequencenumber(ISN)andthefirstdataoctetisISN+1.
AckNumber:
0
32bits.IftheACKcontrolbitisset,thisfieldcontainsthevalueofthenextsequencenumberwhichthesenderofthesegmentisexpectingtoreceive.Onceaconnectionisestablished,thisvalueisalwayssent.
DataOffset:
80
HeaderLength:
80
4bits.Thenumberof32-bitwordsintheTCPheader.Thisindicateswherethedatabegins.ThelengthoftheTCPheaderisalwaysamultipleof32bits.
Reserved:
0
6bits.Reservedforfutureuse.Mustbeclearedtozero.
Urgentpointer:
Urgentpointerfieldsignificant.
Acknowledgmentnumber
Acknowledgmentfieldsignificant.
PushFunction:
Pushfunction.
Resettheconnection:
Resettheconnection.
Synchronizesequence:
Synchronizesequencenumbers.
Endofdata:
Nomoredatafromsender.
Window
16bits.Itspecifiesthesizeofthesender'sreceivewindow,thatis,thebufferspaceavailableinoctetsforincomingdata.
CheckSum:
16bits.Thechecksumfieldisthe16bitone¡¯scomplementoftheone¡¯scomplementsumofall16-bitwordsintheheaderandtext.Ifasegmentcontainsanoddnumberofheaderandtextoctetstobechecksummed,thelastoctetispaddedontherightwithzerostoforma16-bitwordforchecksumpurposes.Thepadisnottransmittedaspartofthesegment.Whilecomputingthechecksum,thechecksumfielditselfisreplacedwithzeros.
UrgentPointer
16bits.Thisfieldcommunicatesthecurrentvalueoftheurgentpointerasapositiveoffsetfromthesequencenumberinthissegment.Theurgentpointerpointstothesequencenumberoftheoctetfollowingtheurgentdata.ThisfieldcanonlybeinterpretedinsegmentsforwhichtheURGcontrolbithasbeenset.
四、局域网监听的常见防范措施
1、采用加密技术,实现密文传输
从上面的分析中,我们看到,若把主机设置为监听模式的话,则局域网中传输的任何数据都可以被主机所窃听。
但是,若窃听者所拿到的数据是被加密过的,则其即使拿到这个数据包,也没有用处,无法解密。
这就好像电影中的电报,若不知道对应的密码,则即使获得电报的信息,对他们来说,也是一无用处。
所以,比较常见的防范局域网监听的方法就是加密。
数据经过加密之后,通过监听仍然可以得到传送的信息,但是,其显示的是乱码。
结果是,其即使得到数据,也是一堆乱码,没有多大的用处。
现在针对这种传输的加密手段有很多,最常见的如IPSec协议。
Ipsec有三种工作模式,一是必须强制使用,二是接收方要求,三是不采用。
当某台主机A向主机B发送数据文件的时候,主机A与主机B是会先进行协商,其中包括是否需要采用IPSec技术对数据包进行加密。
一是必须采用,也就是说,无论是主机A还是主机B都必须支持IPSec,否则的话,这个传输将会以失败告终。
二是请求使用,如在协商的过程中,主机A会问主机B,是否需要采用IPSec。
若主机B回答不需要采用,则就用明文传输,除非主机A的IPSec策略设置的是必须强制使用。
若主机B回答的是可以用IPSec加密,则主机A就会先对数据包进行加密,然后再发送。
经过IPSec技术加密过的数据,一般很难被破解。
而且,重要的是这个加密、解密的工作对于用户来说,是透明的。
也就是说,我们网络管理员之需要配置好IPSec策略之后,员工不需要额外的动作。
是否采用IPSec加密、不采用会有什么结果等等,员工主机之间会自己进行协商,而不需要我们进行额外的控制。
在使用这种加密手段的时候,唯一需要注意的就是如何设置IPSec策略。
也就是说,什么时候采用强制加密,说明时候采用可有可无的。
若使用强制加密的情况下,一定要保证通信的双方都支持IPSec技术,否则的话,就可能会导致通信的不成功。
最懒的方法,就是不管三七二十一,给企业内的所有电脑都配置IPSec策略。
虽然,都会在增加一定的带宽,给网络带来一定的压力,但是,基本上,这不会对用户产生多大的直接影响。
或者说,他们不能够直观的感受到由于采用了IPSec技术而造成的网络性能减慢。
2、利用路由器等网络设备对网络进行物理分段
我们从上面的以太网工作原理的分析中可以知道,如果销售部门的某位销售员工发送给销售经理的一份文件,会在公司整个网络内进行传送。
我们若能够设计一种方案,可以让销售员工的文件直接给销售经理,或者至少只在销售部门内部的员工可以收的到的话,那么,就可以很大程度的降低由于网络监听所导致的网络安全的风险。
如我们可以利用路由器来分离广播域。
若我们销售部门跟其他部门之间不是利用共享式集线器或者普通交换机进行连接,而是利用路由器进行连接的话,就可以起到很好的防范局域网监听的问题。
如此时,当销售员A发信息给销售经理B的时候,若不采用路由器进行分割,则这份邮件会分成若干的数据包在企业整个局域网内部进行传送。
相反,若我们利用路由器来连接销售部门跟其他部门的网络,则数据包传送到路由器之后,路由器会检查数据包的目的IP地址,然后根据这个IP地址来进行转发。
此时,就只有对应的IP地址网络可以收到这个数据包,而其他不相关的路由器接口就不会收到这个数据包。
很明显,利用路由器进行数据报的预处理,就可以有效的减少数据包在企业网络中传播的范围,让数据包能够在最小的范围内传播。
不过,这个利用路由器来分段的话,有一个不好地地方,就是在一个小范围内仍然可能会造成网络监听的情况。
如在销售部门这个网络内,若有一台主机被设置为网络监听,则其虽然不能够监听到销售部门以外的网络,但是,对于销售部门内部的主机所发送的数据包,仍然可以进行监听。
如财务经理发送一份客户的应手帐款余额表给销售经理的话,有路由器转发到销售部门的网络后,这个数据包仍然会到达销售部门网络内地任一主机。
如此的话,只要销售网络中有一台网络主机被设置为监听,就仍然可以窃听到其所需要的信息。
不过若财务经理发送这份文件给总经理,由于总经理的网段不在销售部门的网段,所以数据包不会传送给财务部门所在的网络段,则销售部门中的侦听主机就不能够侦听到这些信息了。
另外,采用路由器进行网络分段外,还有一个好的副作用,就是可以减轻网络带宽的压力。
若数据包在这个网络内进行传播的话,会给网络带来比较大的压力。
相反,通过路由器进行网络分段,从而把数据包控制在一个比较小的范围之内,那么显然可以节省网络带宽,提高网络的性能。
特别是企业在遇到DDOS等类似攻击的时候,可以减少其危害性。
3、利用虚拟局域网实现网络分段
我们不仅可以利用路由器这种网络硬件来实现网络分段。
但是,这毕竟需要企业购买路由器设备。
其实,我们也可以利用一些交换机实现网络分段的功能。
如有些交换机支持虚拟局域网技术,就可以利用它来实现网络分段,减少网络侦听的可能性。
虚拟局域网的分段作用跟路由器类似,可以把企业的局域网分割成一个个的小段,让数据包在小段内传输,将以太网通信变为点到点的通信,从而可以防止大部分网络监听的入侵。
不过,这毕竟还是通过网络分段来防止网络监听,所以,其也有上面所说的利用路由器来实现这个需求的缺点,就是只能够减少网络监听入侵的几率。
在某个网段内,仍然不能够有效避免网络监听。
五、结束语
网络监听技术作为一种工具,总是扮演着正反两方面的角色。
对于入侵者来说,最喜欢的莫过于用户的口令,通过网络监听可以很容易地获得这些关键信息。
而对于入侵检测和追踪者来说,网络监听技术又能够在与入侵者的斗争中发挥重要的作用。
鉴于目前的网络安全现状,我们应该进一步挖掘网络监听技术的细节,从技术基础上掌握先机,才能在与入侵者的斗争中取得胜利