当前位置:Linux教程 - Linux - 网络监听攻击技术学习的第一阶段

网络监听攻击技术学习的第一阶段



         网络监听攻击技术学习的第一阶段
    ————LAN结构以及LAN监听算法的概述

    by 寒路
    E-mail:sem-xa@yeah.net


    很多朋友来信询问,说其想了解关于LAN监听和报文截获的一些技术。我勉为其难而疏虞这个概念,因为在我看来先了解到LAN的构造再去熟悉它的监听是一种正常的学习阶段,所以便整理出该篇文章,算是对来信的回复吧。但首先你在看这个文章的时候应当对LAN有一定的概念。

    LAN属于分组广播式网络。在广播通信网络中所有的工作站都连接到共享的传输介质上,任何站发出的数据包其它站都能接收。对共享信道的分配技术是LAN的核心技术。而lAN的特点、数据速率和通信效率则是由拓扑机构和传输介质决定的。其实LAN可以从一个最简单的定义上去理解,那就是将短距离的计算机联网的一种技术,即局域网。LAN的特点、数据速率和传输类型以及通讯效率、网络应用的领域是由拓扑结构和传输介质决定的。通常情况下LAN所用的拓扑结构是总线型拓扑结构、环型和星型的结构。当然还有树型拓扑,但这种结构并不是被常常采用的,因为它的构造复杂程度和费用也将多于其它拓扑结构,可实用型却并不见得好,所以本文将略去它。

    总线拓扑概念:
    总线拓扑是一种多点介质,所有的站都通过接口硬件连接到总线上。工作站发出的数据组成帧,数据帧沿着总线向两端传播,到达末端的信号被终端匹配器吸收。数据帧中含有源地址和目标地址,而每个工作站都监视着总线上的信号,并且复制发给自己的数据帧。总线属于共享介质,所以在多个工作站同时发送数据的时候就可能发生冲突,这就需要到MAC(介质访问控制)技术。当老式的Polling(轮询)方式不适合分布式控制的时候,一种分布式竞争发送的访问控制方法也就应运而生。突发式通信是短时间的零星传输,像终端与主机之间的通信就是个例子。它不对各个工作站的发送权限进行控制,只是由各个工作站“自由竞争”的形式来寻找发送的机会。其实这种现象所造成的结果朋友们是可想而知的,那就是凌乱,不过它适合于这种分布式控制。因为它简单实用,一般在轻负载或中等负载下效率也比较高,当然了,负载如果超重那么性能也就很快降低。这种机构确定了总线拓扑的实用领域。如果说在一个极为不信任的网络环境下存在这样的结构,那么这在安全上绝对不是件好事情。

    |____A________B_________C_________D________|
    总线拓扑结构形状,ABCD分别代表各个工作站
    环型拓扑结构概念:
    很显然,环型拓扑是一系列首尾相互连接的中继器组成的结构,每个Repeater(中继器)连接一个工作站。整个的环型属于单向或顺时针方向以及逆时针方向传输的,也就是说在环网上传送的数据是单方向循环传输的。当工作站发出的数据组成数据帧。在数据帧的帧头部分包含了源地址和目标地址字段以及其它的控制信息,数据帧在环上循环的时候被目标工作站复制,在返回到发送站后将被回收。由于多个工作站共享环上的传输介质,那么用访问逻辑控制各个工作站是很需要的,它也存在着自己的MAC(介质访问控制),即MAC循环式。在循环式中,每个工作站会轮流着得到发送的机会。如果说工作站利用这个机会发送,则可能对其发送时间和发送的数据量有一定的限制,超过这个限制的就被赶之下次轮流的机会中发送了。所有的工作站按照一定的逻辑顺序传输权限,或是集中式,也或者是分布式。环网是一种分布控制的循环式,那么就需要这样的介质访问控制。如果在一段时间内有很多站需要发送数据,那么这种循环式便是很实用的。但它在安全上所存在的问题是显而易见的。地址冒充和欺骗将是这个环境中最常见的攻击形式,如果这个环境是不信任的话。
    A +------中继线----+B
    | |
    | |
    | |
    | |
    C+----------------+D
    环型拓扑结构图

    星型拓扑结构概念:
    通俗的讲,星型拓扑的结构类似于星星的形状,它有一个中心结点,而所有的工作站都将连接到这个中心结点上。这个中心结点负责网络内的控制和交换。这个中心结点的设备便是HUB(集线器)。HUB将接收到的工作站发来的数据帧,向所有的输出链路广播出去,换句话来说就是每个工作站将需要发送的数据首先发到 HUB,然后再通过HUB向目标站转发。但当多个工作站同时给HUB发出数据的时候也会像其它拓扑结构一样发生冲突。在星型网中,竞争式MAC也适合于它。
    A B
    \\ /
    \\ /
    \\ /
    \\ /
    HUB
    / \\
    / \\
    / \\
    C/ \\D
    星型拓扑结构图

    在Internet上存在着Route这个概念,但在LAN中因其是分组广播式的网络,所以网络层的路由功能是不需要的。IEEE802小组专门为其在这一点上标准了上层协议的服务访问点SAP。从这一点上也注定了LAN内的监听是很容易做到的。但LAN内的监听最初的设想是为了避免冲突。当网络内网络延迟很小,只要有站在发送,别的站就很快的监听到,这样就可以避免传输发生冲突。在LAN上有一个协议——CSMA协议(载波监听多路访问协议)。这个协议就是为避免传输冲突而设计的。当某个工作站在发送数据之前,首先要做的就是监听信道上是否有别的工作站发送的载波信号,这就是CSMA的目的。如果说工作站听到了载波信号,那么就说明了目前这个信道正在有人使用它。特殊情况下也会遇到没有收到载波信号,但站在发送的时候仍是不可以,这有可能是因为网络延迟的缘故,也就是说其它工作站已经开始传输了,只是载波信号尚未传输过来而已。这种避免上相对的而不是绝对的,只能说上将冲突的发生减少,但不能完全避免。
    LAN内的监听算法有三种,它们的原始意义都是为避免冲突而诞生的,这一点无可否认。这三种算法分别是:

    A、非坚持型
    这种算法的概念是“当一个站准备好数据帧发送之前,首先监听信道是否处于忙碌状态。这样工作站可以选择发送。若信道闲,那么立即发送;若信道忙,则后退一个随机时间”。这样就产生了随机时间延迟,大大的减少了冲突的概率,但相当产生的弊端就是因后推随机时延而使某个时段产生空闲,降低了信道的可利用性。

    B、l-坚持型
    l-坚持型监听算法是在非坚持型算法的基础上延伸的。“当一个工作站准备好发送数据帧之前,先监听信道是否处于忙碌状态,若闲则立即发送;若忙则继续监听,直到信道闲为止”。这种算法的好处在于可以减少信道的闲置时间,但相对带来的是监听上的冲突,因为同时都有很多个工作站在监听着。

    C、P-坚持型
    这个算法是上面两种算法的延伸,它结合了它们的优点,但同时也增加了复杂性。“当一个工作站准备好发送数据帧之前,先监听信道是否处于忙碌状态,若闲则以概率P发送,以概率(l-P)延迟一个时间单位,一个时间单位等于网络传输时延期r;若信道忙则继续监听,直到信道空闲后以概率P发送;若发送延迟一个时间单位r,则以概率P发送”。P-坚持型的复杂程度取决于概率P的值,P的取值应当是在重负载下能使网络正常有效的运行。在这一点上需要掌握的就是高级数学的知识。

    LAN中的数据都是以帧(Frame)的单位传输的。帧组成的部分有好几个,而不同的部分则有不同的功能,帧通过网络驱动程序进行成型,然后经过网卡发送到网络中。在这个传输过程中,运行LAN的可监听的共性可以实现这些帧的截获。LAN工作方式是将要发送的数据包发往连接在一起的所有主机。在包头中包括有应该接收数据包的主机的正确地址,因为只有与数据包中目标地址一致的那台主机才能接收到信息包,但是当主机工作在监听模式下的话不管数据包中的目标物理地址是什么,主机都将可以接收到。许多局域网内有十几台甚至上百台主机是通过一个电缆、一个集线器连接在一起的,在协议的高层或者用户来看,当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包直接发向目的主机,或者当网络中的一台主机同外界的主机通信时,源主机将写有目的的主机IP地址的数据包发向网关。但这种数据包并不能在协议栈的高层直接发送出去,要发送的数据包必须从TCP/IP协议的IP层交给网络接口,也就是所说的数据链路层。网络接口不会识别IP地址的。在网络接口由IP层来的带有IP地址的数据包又增加了一部分以太祯的祯头的信息。在祯头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址这是一个48位的地址,这个48位的地址是与IP地址相对应的,换句话说就是一个IP地址也会对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,它也就同时具备有很多个IP地址,在每个网络中它都有一个。而发向网络外的祯中继携带的就是网关的物理地址。LAN中填写了物理地址的祯从网络接口中,也就是从网卡中发送出去传送到物理的线路上。如果局域网是由一条粗网或细网连接成的,那么数字信号在电缆上传输信号就能够到达线路上的每一台主机。再当使用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了。当数字信号到达一台主机的网络接口时,正常状态下网络接口对读入数据祯进行检查,如果数据祯中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据祯交给IP层软件。对于每个到达网络接口的数据祯都要进行这个过程的。但是当主机工作在监听模式下的话,所有的数据祯都将被交给上层协议软件处理。当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网(使用了不同的掩码、IP地址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。
    很显然,要完全掌握网络监听的攻击技术,是通过熟悉网络的构造积累成的,绝对不是只凭那些嗅探器去机械的做,这样的结果只能使你成为一个只知饭菜香,但却不懂怎么烹饪的人。万一没有烹饪师傅在的话可千万别把自己给饿着:-)。近一步掌握的LAN监听攻击技术我将在第二阶段进行描述。


    发布人:闻君 来自:网络技术