410 likes | 537 Views
黑 客 技 术. —— 协议分析攻击. 协议分析攻击. 协议分析器通过捕获网络上的数据包来获取网络上的有关信息,以监视网络的运行,从而发现网络中出现的问题。 网络监听是黑客们常用的一种方法。当成功地登录进一台网络上的主机,并取得了这台主机的超级用户的权限之后,往往要扩大战果,尝试登录或者夺取网络中其他主机的控制友。 网络监听则是一种最简单而且最有效的方法,它常常能轻易地获得用其他方法很难获得的信息。. 网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等。
E N D
黑 客 技 术 ——协议分析攻击
协议分析攻击 • 协议分析器通过捕获网络上的数据包来获取网络上的有关信息,以监视网络的运行,从而发现网络中出现的问题。 • 网络监听是黑客们常用的一种方法。当成功地登录进一台网络上的主机,并取得了这台主机的超级用户的权限之后,往往要扩大战果,尝试登录或者夺取网络中其他主机的控制友。 • 网络监听则是一种最简单而且最有效的方法,它常常能轻易地获得用其他方法很难获得的信息。
网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等。网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等。 • 但在网络中,监听效果最好的地方是在网关、路由器、防火墙一类的设备处,通常由网络管理员来操作。 • 对于一个施行网络攻击的人来说,能攻破网关、路由器、防火墙的情况极为少见,在这里完全可以由安全管理员安装一些设备,对网络进行监控,或者使用一些专门的设备,运行专门的监听软件,并防止任何非法访关。 • 然而,潜入一台不引人注意的计算机中,悄悄地运行一个监听程序,一个黑客是完全可以做到的,也是大多数黑客的做法。
协议分析器的功能 • 捕获数据包: • 监视某个网络实体,捕获所有流经该实体的数据。高端协议分析器还可以制定捕获的计划和触发条件。 • 数据包统计: • 对捕获到的数据包进行统计和分析,根据时间、协议类型和错误率等进行分析,可打印出各种直观的图表和报表。 • 过滤数据 • 通过过滤,有选择地捕获数据包,或对所捕获的数据有选择地加以显示,以避免捕获大量数据包造成系统资源的太多消耗。 • 数据包解码 • 从捕获的0/1比特流表示的数据包中识别出封装的头部信息、净负荷,并且要能适合多种协议的数据包解码。 • 读取其他协议分析器的数据包格式 • 利用其他协议分析器获得的数据,提高工作效率,扩大工作能力。
被监听的网络通常包括以下几种: • 以太网:当主机工作在监听模式下,无论数据包中的目标物理地址是什么,主机都将接收。 • FDDI、Token-ring:数据包沿环传送,高的传输率使监听变得困难。 • 搭线监听:可以被一些与电话公司协作的人或有机会在物理上访问到线路的人利用电话线监听。通过有线电视信道传送IP被监听的可能性高,会被一些可以物理上访问到TV电缆的人截获。 • 微波、无线电波:属广播型传输媒介,任何人都可利用接收器截获信息。
以太网中可以监听的原因 • 网卡的工作模式: • 广播模式:该模式下的网卡能够接收网络中的广播信息。 • 组播模式:设置在该模式下的网卡能够接收组播数据。 • 直接模式:只有目的网卡才能接收该数据。 • 混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而无论该数据是否是传给它的。 • 前三种是默认模式,正常情况下,一个网络接口应该只响应以下两种数据帧: • 与自己硬件地址相匹配的数据帧 • 发向所有机器的广播数据帧
以太网协议的工作方式为将要发送的数据包发往连在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收信包。以太网协议的工作方式为将要发送的数据包发往连在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收信包。 • 但是,当主机工在监听模式下,无论数据包中的目标物理地址是什么,主机都将接收。 • 在协议的高层或用户看来,当同一网络中的两台主机通信时,源主机将写有目的主机IP地址的数据包发向网关。
但是,这种数据包并不能在协议栈的高层直接发送出去。要发送的数据包必须从TCP/IP协议的IP层交给网络接口,即数据链路层。但是,这种数据包并不能在协议栈的高层直接发送出去。要发送的数据包必须从TCP/IP协议的IP层交给网络接口,即数据链路层。 • 但是,网络接口不能识别IP地址。在网络接口,带有IP地址的数据包又被封装以太帧的帧头。在帧头中,包含了网络接口能识别源主机和目的主机的物理地址。物理地址与IP地址对应,一个IP地址对应一个物理地址。 • 发向局域网之外的帧中携带的是网关的物理地址,由网关决定向何处发送。对于作为网关的主机,由于它连接了多个网络,因此它同时具有多个IP地址,在每个网络中,它都有一个。
在以太网中,填写了物理地址的帧从网络接口(即网卡)中发送出去,传送到物理线路上。在以太网中,填写了物理地址的帧从网络接口(即网卡)中发送出去,传送到物理线路上。 • 在Internet上,有许多这样的局域网,几台甚至十几台主机通过一条电缆或一个集线器连在一起。 • 如果局域网是由一条粗缆或细缆连接机而成,则数字信号在电缆上传输,信号能到达线路上每一台主机。 • 当使用集线器时,发送出去的信号到达集线器,由集线器再发向连接在信线器上的每一条线路。于是,在物理线路上传输的数字信号也能到达连接在集线器上的每一主机。
数字信号到达一台主机的网络接口时,在正常情况下,对于每一个到达网络接口的数据帧,都要进行检查:数字信号到达一台主机的网络接口时,在正常情况下,对于每一个到达网络接口的数据帧,都要进行检查: • 如果数据帧中携带的物理地址是自己的,或者物理地址是广播地址,则将数据帧交给上层协议软件,即IP层软件。否则,就将这个帧丢弃。
然而,当主机工作在混杂模式下,则所有的数据帧都将被交给上层协议软件处理。然而,当主机工作在混杂模式下,则所有的数据帧都将被交给上层协议软件处理。 • 可见,协议分析器工作在网络环境中的底层,它会“嗅”到所有在网络上传输的数据。 • 由于在一个以太网中,账号和口令都是以明文形式传输的,因此一旦入侵者获取了其中一台主机的管理员权限,并将其配置成混杂模式,它就有可能对网络中的其他所有计算机发起攻击。
当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于混杂模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。 • 能不能监听不在同一个网段计算机传输的信息? 答案是否定的!一台计算机只能监听经过自己网络接口的那些信包,即只能捕获同一个物理网段内的包,就是说你和监听目标之间没有路由(交换)或其它屏蔽广播包的设备,才能接收到传输的所有信息。
局域网的这种工作方式,一个形象的例子是,大房间就像是一个共享的信道,里面的每个人好像是一台主机。局域网的这种工作方式,一个形象的例子是,大房间就像是一个共享的信道,里面的每个人好像是一台主机。 • 人们所说的话是信息包,在大房间中到处传播。 • 当我们对其中某个人说话时,所有的人都能听到。但只有名字相同的那个人,才会对这些话语做出反映,进行处理。 • 其余的人听到了这些谈话,只能从发呆中猜测,是否在监听他人的谈话。
目前的绝大多数计算机网络使用共享的通信信道。通信信道使计算机有可能接收发向另一台计算机的信息。 • 要说明的是,Internet中使用的大部分协议都是很早设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础之上。 • 而在通常的网络环境下,用户的所有信息(包头和口令信息)都是以明文的方式在网上传输。因此,对于一个网络黑客和网络攻击者来说,进行网络监听,获得用户的各种信息并不是一件很困难的事。 • 只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。 • 因此,直到现在,网络安全还是非常脆弱的。
交换式网络的监听 交换式网络不是共享网络,交换式设备可以准确地将数据报文发给目的主机。这样,安装了协议分析器的主机可能收不到某些数据包,协议分析器软件也就不能工作。 但是,在交换环境中,协议分析攻击也并非完全不可能。一个简单的方法,就是将安装有协议分析器软件的计算机伪装成为网关。 网关是一个网络与其他网络之间的接口,所有发往其他网络的数据包都必须经过网关转发,即一个局域网上发往其他网络的数据帧的目标地址都是指向网关的。 如果把安装有协议分析器软件的计算机伪装成为网关,协议分析器就能嗅到本地网中的数据。
在正常情形下,B无法收到A与C之间的通信报文的。但是,若在B上运行ARP欺骗的软件ARPredirect(dsniff软件的一部分),并发出一条命令:在正常情形下,B无法收到A与C之间的通信报文的。但是,若在B上运行ARP欺骗的软件ARPredirect(dsniff软件的一部分),并发出一条命令: ARPredirect –t 202.113.240.2 202.113.240.3 就可以将该网络中主机发送的数据报文重定向:ARPredirect就开始向A发假冒的ARP应答,说B是网关;A就会刷新自己的缓存,将B的硬件地址作为网关地址保存。 这样,当A需要同其他网络中的主机进行通信时,就会依据缓存中的网关地址(现在是B),先把数据包发往B;B可以先窃取A发出的数据包中的有关信息,再用IP转发或其他软件将这些数据包转发到C,发出去。对A来说,一切都非常正常,但有关内容已经被窃去。
当然,如果在A上用ARP命令查看ARP高速缓存,可以发现网关地址已经被换掉了。当然,如果在A上用ARP命令查看ARP高速缓存,可以发现网关地址已经被换掉了。 因此,在交换环境中,一个ARP(地址解析——将IP地址解析为局域网中的MAC地址)欺骗加上一个协议分析器软件,同样可以实现协议分析攻击。
嗅探器Sniffer 嗅探器Sniffer,是一种重要的网络协议分析工具。 Sniffer可以是硬件或软件。放置Sniffer的目的是使网络接口(比如以太网适配器)处于监听模式,从而可截获网络上的内容。 在这种意思上,每一个机器,每一个路由器都是一个Sniffer,或者可以成为一个Sniffer。要使一台机器成为一个Sniffer,则需要一个特殊的软件(Ethernet卡的广播驱动程序或专用协议分析工具软件)能使网络处于监听模式。 要使主机工作在监听模式下,需要向网络接口发送I/O控制命令,将其设置为监听模式。
网络监听的原理 Sniffer通常运行在路由器,或有路由器功能的主机上。这样就能对大量的数据进行监控。 Sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用Sniffer这种手段,以便得到更多的信息。 Sniffer软件工作在网络的应用层,要让它能抓到流经网卡的包,就需要一个特别的机制,这个机制位于网驱动程序与上层应用的中间,主要作用是将网卡设置成混杂模式,使链路层的网卡驱动程序上传的数据帧有两个去处:一个是正常的协议栈,另一个就是分组捕获及过滤模块。 对于非本地包,前者会丢弃,后者则会根据上层应用要求(过滤器设置)决定上传还是丢弃。
网络监听的原理 网络监听运行时,需要消耗大量的处理器时间,此时就详细分析包中的内容,会造成许多包来不及接收而漏掉,因此,网络监听软件通常都是将监听到的信息包放在文件中,待以后再分析。 网络监听软件常常要保存大量的信息,并对收集的大量信息进行整理,非常消耗CPU资源,因此,正在进行监听的机器对用户的请来响应很慢。 在一个担负繁忙任务的计算机中进行监听,可立即被管理员发现,因为他发现计算机的响应速度令人出奇慢。
嗅探器Sniffer • 嗅探器是一类功能更为强大的协议分析器,除了能完成协议分析器的功能外,通过捕获网络数据包来进行网络流量分析外,还可以: • 找出网络中潜在的问题; • 确定在通信所使用的多个协议中,属于不同协议的流量大小,哪台主机承担主要协议的通信; • 哪台主机是主要的通信目的地; • 报文发送的时间是多少,主要间报文传送的时间间隔等。
Sniffer的危害 • 嗅探器被黑客利用,可对网络进行安静的、消极的安全攻击: • 用来捕获网络中传输的用户口令; • 用来捕获专用的、机密的或敏感数据; • 用来捕获更高级别的访问权限或危害网络领居的安全 • 窥探低层协议信息(如两台主机之间的接口地址、远程网络接口IP地址、IP路由信息和TCP连接序号等)
Sniffer的预防 • 确保以太网的整体安全:因为Sniffer行为要想发生,前提条件就是以太网内部的一台有漏洞的主机被攻破,只有利用被功破的主机,才能进行Sniffer。 • 使用加密传输敏感数据: • 使用安全拓扑结构:一个网络段必须有足够的理由才能信任另一个网络段。网络段应该考虑在数据之间的信任关系上来设计,一个网络段仅能由互相信任的计算机组成。每台机器通过硬连接线接到Hub,Hub再接到交换机上,保证一旦出现Sniffer,它只对最小的范围有效。
检测Sniffer的方法 • 反应时间 向怀疑有网络监听行为的网络发送大量物理地址不存在的包,由于监听程序将处理这些包,将导致性能下降。根据各个主机回应的情况进行判断。 • 观测DNS 监听软件往往会尝试进行反向地址解析,查看DNS上是否地址解析请求明显增多。 • 利用Ping模式监测 对怀疑有网络监听行为的机器,构造一种正确的IP地址和错误的物理地址的ICMP包去Ping,运行监听程序的机器会有回应。但正常的机器不接收错误的物理地址。 • 利用ARP数据包监测 向局域网内的主机发送非广播式的arp包来检测,如果局域网内的某个主机响应了这个ARP请求,那么可以判断它很可能就是处于网络监听模式了,这是目前相对言比较好的监测模式。
Sniffer工具 • Sniffer的工具 • NetXray 由Cinco Networks公司开发高级数据包查错工具,界面友好。 • Sniffer Pro 目前惟一能够为7层OSI网络模型提供全面性能管理的工具。 • 防止Sniffer的工具 AntiSniffer可监测同一网段内的机器,如果返回正值,则表明该机处于混杂模式,有可能已被安装Sniffer。
典型嗅探器——Sniffer Pro • 捕获网络流量进行详细分析 • 可识别250种以上的网络协议,可以基于协议、MAC/IP地址、匹配模式等设置过滤 • 实时监控网络活动,利用专家系统帮助分析网络及应用故障 • 进行网络使用统计、错误统计、协议统计、工作站和服务器统计 • 可以设置多种触发模式,如基于错误报文、外部事件 • 具有可选的流量发生器,模拟网络运行,衡量响应时间、路由跳数,进行排错
Sniffer Pro使用说明 • 选定要监视的网卡: 在进行流量捕获之前首先选择网络适配器,确定从计算机的哪个网络适配器上接收数据。 位置:File→select settings
捕获面板 报文捕获功能可以在报文捕获面板中完成。
高级捕获条件 在Define Filter对话框的“Advance”页面下,编辑协议捕获条件,如图: 位置:Monitor/Capture/Display菜单→Define Filter
高级捕获条件 • 在协议选择树中你可以选择你需要捕获的协议条件,如果什么都不选,则表示忽略该条件,捕获所有协议。 • 在捕获帧长度条件下,你可以捕获等于、小于、大于某个值的报文。 • 在错误帧是否捕获栏,你可以选择当网络上有如下错误时是否捕获。 • 在保存过滤规则条件按钮“Profiles”,你可以将你当前设置的过滤规则,进行保存,在捕获主面板中,你可以选择你保存的捕获条件。
报文捕获面板 在捕获报文快捷键中有一个望远镜图标,当其变红时,表示已经捕获到数据,此时,单击该图标捕获停止即可观看有关信息。位置:Capture →Start(F10)
捕获过程报文统计 在捕获过程中可以查看捕获报文的数量和缓冲区的利用率。 位置:Capture →Capture Panel; Detail选项卡显示导出到文件的进度等详细统计信息。 Gauge选项卡显示利用率、捕获速度和实时错误率。
编辑报文发送 Tools →Packet Generator 首先要指定数据帧发送的长度,然后从链路层开始,一个一个将报文填充完成,从“Decode”页面中,可看见解析后的直观表示。
捕获编辑报文发送 将捕获到的报文直接转换成发送报文,然后修修改改可也。如下是一个捕获报文后的报文查看窗口: 位置:在捕获结果窗口中选中“”
专家分析系统 Diagnose选项卡:对网络中异常现象的诊断情况 Symptoms选项卡:查看网络中的异常征兆 Objects选项卡:分析对象类型
网络监视功能 能够时刻监视网络,统计网络上资源的利用率,并能够监视网络流量的异常状况
Application Response Time (ART) ART是可以监视TCP/UDP应用层程序在客户端和服务器响应时间,如HTTP,FTP,DNS等应用。 Monitor → Application Response Time
数据报文解码详解 • 数据报文分层 上图所示在Sniffer的解码表中分别对每一个层次协议进行解码分析。链路层对应“DLC”;网络层对应“IP”;传输层对应“UDP”;应用层对对应的是“NETB”等高层协议。 Sniffer可以针对众多协议进行详细结构化解码分析。并利用树形结构良好的表现出来。
IP协议 • IP报文结构为IP协议头+载荷,其中对IP协议头部的分析是分析IP报文的主要内容之一。这里给出了IP协议头部的一个结构。 • 版本:4——IPv4 • 首部长度:单位为4字节,最大60字节 • TOS:IP优先级字段 • 总长度:单位字节,最大65535字节 • 标识:IP报文标识字段 • 标志:占3比特,只用到低位的两个比特 MF(More Fragment) MF=1,后面还有分片的数据包 MF=0,分片数据包的最后一个 DF(Don't Fragment) DF=1,不允许分片 DF=0,允许分片
段偏移:分片后的分组在原分组中的相对位置,总共13比特,单位为8字节段偏移:分片后的分组在原分组中的相对位置,总共13比特,单位为8字节 • 寿命:TTL(Time To Live)丢弃TTL=0的报文 • 协议:携带的是何种协议报文 1 :ICMP 6 :TCP 17:UDP 89:OSPF • 头部检验和:对IP协议首部的校验和 • 源IP地址:IP报文的源地址 • 目的IP地址:IP报文的目的地址
上图为Sniffer对IP协议首部的解码分析结构,和IP首部各个字段相对应,并给出了各个字段值所表示含义的英文解释。上图为Sniffer对IP协议首部的解码分析结构,和IP首部各个字段相对应,并给出了各个字段值所表示含义的英文解释。 如上图报文协议(Protocol)字段的编码为0x11,通过Sniffer解码分析转换为十进制的17,代表UDP协议。其他字段的解码含义可以与此类似,只要对协议理解的比较清楚对解码内容的理解就很容易。