论文部分内容阅读
摘 要:本文从基本的ARP和ICMP通信协议出发,利用Socket通信原理,研究共享以太网及交换式以太网的监听技术,给出了实现的具体步骤。
关键词:ARP欺骗 网络监听
网络监听给网络管理员提供了一个观察网络运行状况,数据流动状况,以及传输的明文信息的工具。 网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等,但是监听效果最好的地方是在网关、路由器、防火墙一类的设备处,通常由网络管理员来操作,其中最方便实现的是在一个以太网中的任何一台上网的主机上。
ARP协议:IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。
ARP欺骗:ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成电脑无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在表面看来,就是上不了网了,“网络掉线了”。
ICMP重定向:ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。
一、网络监听的基本原理
在共享介质的以太网中如果所有的主机通过集线器连接到外部网络,在这样的网络中通信主机将所要发送的数据包进行广播,发往连在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址。只有与数据包中目标地址一致的那台主机才能接收信包。因此任意主机都可以通过将网卡设置为混杂模式来监听网内的所有通信。当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,利用ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的,因此它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。
交换式以太网是通过交换机将网内主机相连,交换机将对每个端口收到数据帧进行源和目的MAC地址检测,然后与内部动态的MAC端口映射表进行比较,若数据帧的源MAC地址不在映射表中,则将该MAC地址和对应接收端口加入映射表中,同时根据映射表中与目的MAC地址对应的端口号,交换机把数据帧仅从该端口发送出去。因此交换机的每个端口可平行、安全、同时地互相传输信息,其它端口的主机即使将网卡设置为混杂模式,也只能监听到连结在同一端口上主机间的数据传输。
二、共享介质以太网监听
如图1所示,三台主机
A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA
B: ip地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB:BB
C: ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC
假设一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料他知道这台主机A的防火墙只对主机C有信任关系(开放23端口(telnet))。而他必须要使用telnet来进入主机A,这个时候入侵者必须让主机A相信主机B就是主机C,如果主机A和主机C之间的信任关系是建立在IP地址之上的。如果单单把主机B的IP地址改的和主机C的一样,那是不能工作的,至少不能可靠地工作。如果你告诉以太网卡设备驱动程序, 自己的IP是192.168.0.3,那么这只是一种纯粹的竞争关系,并不能达到目标。我们可以先研究C这台机器如果我们能让这台机器暂时当掉,竞争关系就可以解除,这个还是有可能实现的。在机器C当掉的同时,将机器B的IP地址改为192.168.0.3,这样就可以成功的通过23端口telnet到机器A上面,而成功的绕过防火墙的限制。
但是如果主机A和主机C之间的信任关系是建立在硬件地址的基础上的,上面的方法就失效了。这个时候还需要用ARP欺骗的手段让主机A把自己的ARP缓存中的关于192.168.0.3映射的硬件地址改为主机B的硬件地址。
我们可以人为的制造一个arp_reply的响应包,发送给想要欺骗的主机,这是可以实现的,因为协议并没有规定必须在接收到arp_echo后才可以发送响应包.这样的工具很多,我们也可以直接用snifferpro抓一个arp响应包,然后进行修改。
你可以人为地制造这个包。可以指定ARP包中的源IP、目标IP、源MAC地址、目标MAC地址。这样你就可以通过虚假的ARP响应包來修改主机A上的动态ARP缓存达到欺骗的目的。
实现步骤:
1)B发送ARP 查询报文,获得主机A 的MAC地址
2)B发送伪造的ARP 报文给A,该报文的源MAC地址为BB:BB:BB:BB:BB:BB,IP 为168.0.0.3 ,因为ARP 表是动态的,为了能进行持续的监听应该间隔一定时间先欺骗的主机发送伪造的ARP 报文。
3)主机A更新了ARP表中关于主机C的IP-->MAC对应关系。 4)此时可以通过程序进行抓包或包过滤提取来自A发送到C的报文,如果不影响C的正常通信或者隐蔽话,应该将收到的来自A发送到C的包进行转发到C,使A,C觉察不到数据包经过了B.
三、交换式以太网监听
如图2所示A、C位于同一网段而主机B位于另一网段,三台机器的IP地址和硬件地址如下:
A: IP地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA
B: IP地址 192.168.1.2 硬件地址 BB:BB:BB:BB:BB:BB
C: IP地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC
这种情况下B与A在不同的网络段,显然用上面的办法的话,即使欺骗成功,那么由主机B和主机A之间也无法建立telnet会话,因为路由器会发现地址在192.168.0.这个网段之内,而不会把主机A发给主机B的包向外转发。如果要实现把这样的数据包转发出来就必须使用ICMP重定向技术,把ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的。
下面是结合ARP欺骗和ICMP重定向进行攻击的步骤:
1)为了使自己发出的非法ip包能在网络上能够存活长久一点,开始修改IP包的生存时间TTL为下面的过程中可能带来的问题做准备。把TTL改成255. (TTL定义一个IP包如果在网络上到不了主机后,在网络上能存活的时间,改长一点在本例中有利于做充足的广播)
2)寻找主机C的漏洞按照这个漏洞当掉主机C。
3)该网络中的主机找不到原来的192.0.0.3后,将更新自己的ARP对应表。此时发送一个原IP地址为192.168.0.3硬件地址为BB:BB:BB:BB:BB:BB的ARP响应包。
4)现在每台主机都更新了自己的ARP表,一个新的MAC地址对应192.0.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的IP包丢给路由。于是他还得构造一个ICMP的重定向广播。
5)自己定制一个ICMP重定向包告诉网络中的主机:"到192.0.0.3的路由最短路径不是局域网,而是路由,请主机重定向你们的路由路径,把所有到192.0.0.3的ip包丢给路由。"
7)主机A接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3的通讯都丢给路由器。
8)入侵者终于可以在路由外收到来自路由内的主机的IP包了,他可以开始telnet到主机的23端口。
其实上面的想法只是一种理想话的情况,主机许可接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难。
TCP/IP协议实现中关于主机接收ICMP重定向报文主要有下面几条限制:
1)新路由必须是直達的
2)重定向包必须来自去往目标的当前路由
3)重定向包不能通知主机用自己做路由
3)被改变的路由必须是一条间接路由
四、总结
本文通过对共享介质的以太网和交换式以太网的监听原理进行详细阐述,并进行了试验能够进行简单的监听。要实现通用方便的监听工具还要进一步研究,本文的研究证明了以太网监听工具实现的可行性。
参考文献
[1]TCP/IP 详解 卷1:协议 (美)W.Richard Stevens著 范建华 胥光辉 张涛等译 机械工业出版社 2005 ISBN 7-111-07566-8/TP.1194
[2] 基于ETHERNET的网络监听以及ARP欺骗 徐丹 黎俊伟 高传善 计算机应用与软件 2005年11期
[3]交换式以太网中的ARP与DNS欺骗技术分析 郭润 王振兴 敦亚南 微计算机信息 2005年30期
关键词:ARP欺骗 网络监听
网络监听给网络管理员提供了一个观察网络运行状况,数据流动状况,以及传输的明文信息的工具。 网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等,但是监听效果最好的地方是在网关、路由器、防火墙一类的设备处,通常由网络管理员来操作,其中最方便实现的是在一个以太网中的任何一台上网的主机上。
ARP协议:IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。
ARP欺骗:ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成电脑无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在表面看来,就是上不了网了,“网络掉线了”。
ICMP重定向:ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。
一、网络监听的基本原理
在共享介质的以太网中如果所有的主机通过集线器连接到外部网络,在这样的网络中通信主机将所要发送的数据包进行广播,发往连在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址。只有与数据包中目标地址一致的那台主机才能接收信包。因此任意主机都可以通过将网卡设置为混杂模式来监听网内的所有通信。当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,利用ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的,因此它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。
交换式以太网是通过交换机将网内主机相连,交换机将对每个端口收到数据帧进行源和目的MAC地址检测,然后与内部动态的MAC端口映射表进行比较,若数据帧的源MAC地址不在映射表中,则将该MAC地址和对应接收端口加入映射表中,同时根据映射表中与目的MAC地址对应的端口号,交换机把数据帧仅从该端口发送出去。因此交换机的每个端口可平行、安全、同时地互相传输信息,其它端口的主机即使将网卡设置为混杂模式,也只能监听到连结在同一端口上主机间的数据传输。
二、共享介质以太网监听
如图1所示,三台主机
A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA
B: ip地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB:BB
C: ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC
假设一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料他知道这台主机A的防火墙只对主机C有信任关系(开放23端口(telnet))。而他必须要使用telnet来进入主机A,这个时候入侵者必须让主机A相信主机B就是主机C,如果主机A和主机C之间的信任关系是建立在IP地址之上的。如果单单把主机B的IP地址改的和主机C的一样,那是不能工作的,至少不能可靠地工作。如果你告诉以太网卡设备驱动程序, 自己的IP是192.168.0.3,那么这只是一种纯粹的竞争关系,并不能达到目标。我们可以先研究C这台机器如果我们能让这台机器暂时当掉,竞争关系就可以解除,这个还是有可能实现的。在机器C当掉的同时,将机器B的IP地址改为192.168.0.3,这样就可以成功的通过23端口telnet到机器A上面,而成功的绕过防火墙的限制。
但是如果主机A和主机C之间的信任关系是建立在硬件地址的基础上的,上面的方法就失效了。这个时候还需要用ARP欺骗的手段让主机A把自己的ARP缓存中的关于192.168.0.3映射的硬件地址改为主机B的硬件地址。
我们可以人为的制造一个arp_reply的响应包,发送给想要欺骗的主机,这是可以实现的,因为协议并没有规定必须在接收到arp_echo后才可以发送响应包.这样的工具很多,我们也可以直接用snifferpro抓一个arp响应包,然后进行修改。
你可以人为地制造这个包。可以指定ARP包中的源IP、目标IP、源MAC地址、目标MAC地址。这样你就可以通过虚假的ARP响应包來修改主机A上的动态ARP缓存达到欺骗的目的。
实现步骤:
1)B发送ARP 查询报文,获得主机A 的MAC地址
2)B发送伪造的ARP 报文给A,该报文的源MAC地址为BB:BB:BB:BB:BB:BB,IP 为168.0.0.3 ,因为ARP 表是动态的,为了能进行持续的监听应该间隔一定时间先欺骗的主机发送伪造的ARP 报文。
3)主机A更新了ARP表中关于主机C的IP-->MAC对应关系。 4)此时可以通过程序进行抓包或包过滤提取来自A发送到C的报文,如果不影响C的正常通信或者隐蔽话,应该将收到的来自A发送到C的包进行转发到C,使A,C觉察不到数据包经过了B.
三、交换式以太网监听
如图2所示A、C位于同一网段而主机B位于另一网段,三台机器的IP地址和硬件地址如下:
A: IP地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA
B: IP地址 192.168.1.2 硬件地址 BB:BB:BB:BB:BB:BB
C: IP地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC
这种情况下B与A在不同的网络段,显然用上面的办法的话,即使欺骗成功,那么由主机B和主机A之间也无法建立telnet会话,因为路由器会发现地址在192.168.0.这个网段之内,而不会把主机A发给主机B的包向外转发。如果要实现把这样的数据包转发出来就必须使用ICMP重定向技术,把ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的。
下面是结合ARP欺骗和ICMP重定向进行攻击的步骤:
1)为了使自己发出的非法ip包能在网络上能够存活长久一点,开始修改IP包的生存时间TTL为下面的过程中可能带来的问题做准备。把TTL改成255. (TTL定义一个IP包如果在网络上到不了主机后,在网络上能存活的时间,改长一点在本例中有利于做充足的广播)
2)寻找主机C的漏洞按照这个漏洞当掉主机C。
3)该网络中的主机找不到原来的192.0.0.3后,将更新自己的ARP对应表。此时发送一个原IP地址为192.168.0.3硬件地址为BB:BB:BB:BB:BB:BB的ARP响应包。
4)现在每台主机都更新了自己的ARP表,一个新的MAC地址对应192.0.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的IP包丢给路由。于是他还得构造一个ICMP的重定向广播。
5)自己定制一个ICMP重定向包告诉网络中的主机:"到192.0.0.3的路由最短路径不是局域网,而是路由,请主机重定向你们的路由路径,把所有到192.0.0.3的ip包丢给路由。"
7)主机A接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3的通讯都丢给路由器。
8)入侵者终于可以在路由外收到来自路由内的主机的IP包了,他可以开始telnet到主机的23端口。
其实上面的想法只是一种理想话的情况,主机许可接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难。
TCP/IP协议实现中关于主机接收ICMP重定向报文主要有下面几条限制:
1)新路由必须是直達的
2)重定向包必须来自去往目标的当前路由
3)重定向包不能通知主机用自己做路由
3)被改变的路由必须是一条间接路由
四、总结
本文通过对共享介质的以太网和交换式以太网的监听原理进行详细阐述,并进行了试验能够进行简单的监听。要实现通用方便的监听工具还要进一步研究,本文的研究证明了以太网监听工具实现的可行性。
参考文献
[1]TCP/IP 详解 卷1:协议 (美)W.Richard Stevens著 范建华 胥光辉 张涛等译 机械工业出版社 2005 ISBN 7-111-07566-8/TP.1194
[2] 基于ETHERNET的网络监听以及ARP欺骗 徐丹 黎俊伟 高传善 计算机应用与软件 2005年11期
[3]交换式以太网中的ARP与DNS欺骗技术分析 郭润 王振兴 敦亚南 微计算机信息 2005年30期