论文部分内容阅读
摘要:Arp是TCP/IP协议族中的关键成员之一,由于Arp协议应用的广泛性,使得利用Arp协议进行网络攻击具有广泛的应用性。该文详细讨论的几种Arp网络攻击技术,包括Arp扫描技术、Arp欺骗技术和Arp攻击技术,并从时效性和准确性上进行了分析。
关键词:Arp扫描;Arp欺骗;网络攻击
中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)22-6176-03
1 Arp协议介绍
Arp(Address Resolution Interface,地址解析协议)是TCP/IP协议族中的关键成员之一,是联系网络层协议(IP)与数据链路层(含介质访问控制子层)协议(如以太网,IEEE802.I)的桥梁。
1.1 Arp数据包格式
图1
以太网首部:
48比特:目的以太网地址,全1的地址表示为广播地址。
48比特:发送方以太网地址
16比特:帧类型,对于Arp请求来说,该值为0X0806
以太网数据包:
16比特: (ar$hrd) 硬件类型 (例如:以太网、令牌网) 它的值为1即表示以太网地址。
16比特: (ar$pro) 协议类型。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示I P地址。
8比特: (ar$hln) 硬件地址长度
8比特: (ar$pln) 协议地址长度
16比特: (ar$op) 包类型。Arp请求(值为1)、Arp应答(值为2)、RArp请求(值为3)和RArp应答(值为4)。
N比特: (ar$sha) 发方硬件地址, 长度n 取决于ar$hln。以太网中,n=48。
M比特: (ar$spa) 发方协议地址, 长度n 取决于ar$hln。IP中,m=48。
N比特: (ar$tha) 接收方硬件地址。
M比特: (ar$tpa) 接收方协议地址。
Arp高效运行的关键是由于每个主机上都有一个Arp地址转换表。这个地址转换表存放了最近应用协议地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为2 0分钟,起始时间从被创建时开始算起。我们可以用Arp –a命令来检查Arp缓存表中的内容。参数-a的意思是显示高速缓存中所有的内容。
C:>Arp -a
Interface: 192.168.0.100 --- 0x10004
Internet AddressPhysical Address Type
192.168.0.1 1c-af-f7-16-0b-2c dynamic
48 bit的以太网地址用6个十六进制的数来表示,中间以冒号或者‘-’隔开。
2 Arp扫描原理
Arp扫描是指利用Arp协议对内网主机在线情况进行扫描探测的方式。当主机接收到对本机的Arp地址请求包后,将会发送本机的硬件地址到源主机。这样我们就可以编程模拟此通信过程,以是否能够获得目标主机的Arp回复包作为主机在线的判断标准,对主机进行在线状态探测。如果要对内网中的所有主机进行扫描,则须进行内网主机扫描遍历。对单个主机的扫描过程描述如下:
{
发送请求对主机B的Arp请求广播包;
While(等待时间<时间阀值)
{
等待时间 =等待时间+1;
If (接收主机B的Arp回复包)then
{
主机在线;
退出;
}
}
主机不在线;
}
由于从数据请求包的发出到接收到目标主机的Arp回复包需要一定的时间延迟,所以应当设置一个时间阀值来定义超时。
需要注意的是Arp请求包的发送过程,需要自己构造以太网包头,以太网包头内的目的MAC地址可以填写广播地址(全1),也可以填写目标主机的真实MAC地址。并且这个检测流程仅可以对内网主机进行探测,在对同一网段外的主机发送Arp请求时,将会收到交换机发来的Arp回复包,而非目的主机的Arp回复。
Arp扫描仅可以用于对主机的存活性检测。
2.1 Arp扫描耗时分析
在这里我们从时间角度去分析Arp扫描的性能,分析方法采用了环境试验测试的方法,程序实现了Arp扫描,通过监听网络数据包,测算出精确耗时,测试网络环境中采用单线程方式进行扫描测试。实验所用环境是一个通过Cisco Catalyst 3560 交换机进行互联的内网,抓包软件选用wireshark 1.0.0版本。
1) 单包分析
对主机15.39.31.8的Arp请求报文在2.526355时刻发出,回复报文在时刻2.526516收到,整个过程耗时161微秒。如图2。
图2
2) 单线程扫描分析
模拟程序对15.39.31.*网段内主机进行Arp扫描,耗时84毫秒。共探测到在线主机56台。
2.2 Arp扫描准确度分析
Arp协议是局域网通信中的基础协议,关闭Arp协议或者不支持Arp协议的网络仅能通过网关静态Arp地址表的方式进行网络通信,也就是说在不使用静态Arp地址表的局域网中,Arp协议是不可被禁止的。在这种情况下,使用Arp协议来扫描存活主机能够得到正确的结果。由于在当前的网络应用中,仅有极少数网络完全使用静态Arp地址表进行通信,因此我们的分析限定在基于动态Arp协议获取的网络内。
分析扫描的准确度包括两个方面,一方面是正确认定存活主机,另一方面是正确认定不存活的主机。目前的网络安全产品对正常的Arp协议并不进行过滤,因此理论上讲,使用Arp协议对内网主机存活性的认定正确率能达到100%。
3 Arp 欺骗技术
Arp欺骗,又称Arp缓存欺骗,是对内网远程主机Arp地址表进行攻击的一种手段,在前几章我们讲到,一台主机如果需要和另外一台主机通信,需要两个地址的对应关系,一个是IP地址,另一个是MAC地址。 Arp协议正式提供了这两种地址之间的转换功能,根据Arp地址协议,当主机收到Arp请求包时,主机将保存下请求包内的地址对应关系到本地缓存表中。Arp欺骗技术正是利用协议的这个漏洞,通过构造错误的对应关系报文来对主机进行Arp欺骗。主机收到包含错误对应关系的Arp请求报文后,更新本地Arp地址缓存表,之后的通信受错误地址对应关系影响,发往错误的MAC地址设备。如图3。
受到Arp欺骗的主机A中,错误的保存了主机B的MAC地址对应,导致本应发要发给主机B的数据将被网络发至主机Attacker。如果再对主机B实施Arp欺骗,通过构造错误的Arp包,更改主机B的Arp缓存表中的主机A的MAC地址纬Attacker的MAC地址,那么就实现了Attacker主机对主机A和主机B的通信欺骗和通信监听。
图3
对主机A和B讲,并没有发现自己的通信异常,但是Attacker主机此时已经实现了对两者的通信监听。下面我们讨论下Arp欺骗具体的实现手段。
首先定义如下名称:
1) Target: Arp欺骗的目标主机
2) Attacker: 攻击者主机
3) aIP,bIP: 主机 A和B 的ip地址
4) aMAC,bMAC: 主机 A和B 的MAC地址
5) TargetMAC: 目标主机的MAC地址
6) TargetIP: 目标主机的IP地址
7) AttackerMAC: 攻击主机的MAC地址
8) AttackerIP:攻击主机的IP地址
9) Arprequest: A---> B with (aIP,aMAC,bIP,bMAC):从主机A发往主机B的 Arp地址请求报文,该报文使用(aIP,aMAC,bIP,bMAC)构造。
10) Arpreply: A---> B with (aIP,aMAC,bIP,bMAC): A到B的Arp回复报文。
a 进行Arp欺骗
报文格式:
(1) Arprequest: Attacker ---> Target with (aIP, AttackerMAC, TargetIP, TargetMAC)
(2) Arpreply: Attacker ---> Target with (aIP, AttackerMAC, TargetIP, TargetMAC)
Arp请求报文包含了错误的主机A的MAC地址,目标主机收到该报文后,认定A主机的MAC地址是AttackerMAC,并保存aIP到AttackerMAC的地址转换关系,因此所有本应发往主机A的数据包被发给主机Attacker。
Arp回复报文用来维持Arp欺骗,同样的,目的主机在Arp缓存表中保存了aIP到AttackerMac的错误对应关系,发往主机A的数据包被错误的发给了Attacker。
b 认定网络中存在相同IP地址
报文格式:
(1) Arpreply: Attacker ---> Target with (TargetIP, aMAC, TargetIP,TargetMAC)
(2) Arprequest: Attacker ---> Target with (TargetIP, aMAC, TargetIP, TargetMAC)
如果发送上面两种报文到目的主机,则目的主机认为在网络中存在一个与本地IP地址相同的主机,目的主机操作系统将会提示“IP地址冲突”。
c 恢复Arp欺骗
报文格式:
Arpreply: Attacker --->Target with (aIP, aMAC, TargetIP,TargetMAC)
包含正确信息的Arp请求报文,能够恢复目的主机的Arp缓存表。
4 Arp攻击技术
Arp攻击是指应用Arp欺骗技术手段,以瘫痪对方主机和网络为目的的行为。在内网环境下,根据攻击范围的不同,攻击手段区分为两种,一种是全通信攻击,另一种是半通信攻击。全通信攻击是指向目标主机发送对内网所有主机的Arp欺骗报文,从而导至目标主机所有的对外通信中断。全通信攻击方式发送的报文量大,极易导致网络流量异常,特别是对整个网络实施攻击时,猛增的网络流量易被安防系统发现并阻止。半通信攻击仅向目标主机实施对网关的欺骗报文,影响主机对外网的通信。这种方式报文量小,但不能干扰主机在网内的通信。对网络实施Arp攻击的伪代码如下:
For(i=0;i<网络容量;i++)
{
判断主机i是否存活;
IF(主机i存活)
{发送Arp欺骗报文;}
}
在实际的应用中,需要不断地重复上述代码来维持攻击效果,每次重复攻击之间需留有一定的时间间隔来避免网络流量的激增。间隔的设置可以根据实际的攻击需要和网络容量的大小来进行设定。
5 小结
Arp协议的应用性非常广,并且目前大多数网络设备并不屏蔽正常的Arp协议数据流,因此利用Arp进行网络渗透攻击不失一种较好的手段,通过本文的讨论,可以将此技术应用在军事网络战、军事技术情报获取、网络安全侦察等多个领域。
参考文献:
[1] W.Richard Stevens.TCP/IP详解卷1:协议[M].北京:机械工业出版社,2006.
[2] 周贺,彭婧,冯光焰.Arp协议的安全问题及其解决方案[J].计算机与网络,2007(23):33-35.
[3] 杨杨,房超,刘辉.Arp欺骗及ICMP重定向攻击技术研究[J].计算机工程,2008,1(34):103-104.
[4] JEFFRY.最全的Arp欺骗攻击原理深入分析[EB/OL].(2007-10-10)[2008-12-10].http://netsecurity.51cto.com/art/200710/57693.htm.
关键词:Arp扫描;Arp欺骗;网络攻击
中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)22-6176-03
1 Arp协议介绍
Arp(Address Resolution Interface,地址解析协议)是TCP/IP协议族中的关键成员之一,是联系网络层协议(IP)与数据链路层(含介质访问控制子层)协议(如以太网,IEEE802.I)的桥梁。
1.1 Arp数据包格式
图1
以太网首部:
48比特:目的以太网地址,全1的地址表示为广播地址。
48比特:发送方以太网地址
16比特:帧类型,对于Arp请求来说,该值为0X0806
以太网数据包:
16比特: (ar$hrd) 硬件类型 (例如:以太网、令牌网) 它的值为1即表示以太网地址。
16比特: (ar$pro) 协议类型。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示I P地址。
8比特: (ar$hln) 硬件地址长度
8比特: (ar$pln) 协议地址长度
16比特: (ar$op) 包类型。Arp请求(值为1)、Arp应答(值为2)、RArp请求(值为3)和RArp应答(值为4)。
N比特: (ar$sha) 发方硬件地址, 长度n 取决于ar$hln。以太网中,n=48。
M比特: (ar$spa) 发方协议地址, 长度n 取决于ar$hln。IP中,m=48。
N比特: (ar$tha) 接收方硬件地址。
M比特: (ar$tpa) 接收方协议地址。
Arp高效运行的关键是由于每个主机上都有一个Arp地址转换表。这个地址转换表存放了最近应用协议地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为2 0分钟,起始时间从被创建时开始算起。我们可以用Arp –a命令来检查Arp缓存表中的内容。参数-a的意思是显示高速缓存中所有的内容。
C:>Arp -a
Interface: 192.168.0.100 --- 0x10004
Internet AddressPhysical Address Type
192.168.0.1 1c-af-f7-16-0b-2c dynamic
48 bit的以太网地址用6个十六进制的数来表示,中间以冒号或者‘-’隔开。
2 Arp扫描原理
Arp扫描是指利用Arp协议对内网主机在线情况进行扫描探测的方式。当主机接收到对本机的Arp地址请求包后,将会发送本机的硬件地址到源主机。这样我们就可以编程模拟此通信过程,以是否能够获得目标主机的Arp回复包作为主机在线的判断标准,对主机进行在线状态探测。如果要对内网中的所有主机进行扫描,则须进行内网主机扫描遍历。对单个主机的扫描过程描述如下:
{
发送请求对主机B的Arp请求广播包;
While(等待时间<时间阀值)
{
等待时间 =等待时间+1;
If (接收主机B的Arp回复包)then
{
主机在线;
退出;
}
}
主机不在线;
}
由于从数据请求包的发出到接收到目标主机的Arp回复包需要一定的时间延迟,所以应当设置一个时间阀值来定义超时。
需要注意的是Arp请求包的发送过程,需要自己构造以太网包头,以太网包头内的目的MAC地址可以填写广播地址(全1),也可以填写目标主机的真实MAC地址。并且这个检测流程仅可以对内网主机进行探测,在对同一网段外的主机发送Arp请求时,将会收到交换机发来的Arp回复包,而非目的主机的Arp回复。
Arp扫描仅可以用于对主机的存活性检测。
2.1 Arp扫描耗时分析
在这里我们从时间角度去分析Arp扫描的性能,分析方法采用了环境试验测试的方法,程序实现了Arp扫描,通过监听网络数据包,测算出精确耗时,测试网络环境中采用单线程方式进行扫描测试。实验所用环境是一个通过Cisco Catalyst 3560 交换机进行互联的内网,抓包软件选用wireshark 1.0.0版本。
1) 单包分析
对主机15.39.31.8的Arp请求报文在2.526355时刻发出,回复报文在时刻2.526516收到,整个过程耗时161微秒。如图2。
图2
2) 单线程扫描分析
模拟程序对15.39.31.*网段内主机进行Arp扫描,耗时84毫秒。共探测到在线主机56台。
2.2 Arp扫描准确度分析
Arp协议是局域网通信中的基础协议,关闭Arp协议或者不支持Arp协议的网络仅能通过网关静态Arp地址表的方式进行网络通信,也就是说在不使用静态Arp地址表的局域网中,Arp协议是不可被禁止的。在这种情况下,使用Arp协议来扫描存活主机能够得到正确的结果。由于在当前的网络应用中,仅有极少数网络完全使用静态Arp地址表进行通信,因此我们的分析限定在基于动态Arp协议获取的网络内。
分析扫描的准确度包括两个方面,一方面是正确认定存活主机,另一方面是正确认定不存活的主机。目前的网络安全产品对正常的Arp协议并不进行过滤,因此理论上讲,使用Arp协议对内网主机存活性的认定正确率能达到100%。
3 Arp 欺骗技术
Arp欺骗,又称Arp缓存欺骗,是对内网远程主机Arp地址表进行攻击的一种手段,在前几章我们讲到,一台主机如果需要和另外一台主机通信,需要两个地址的对应关系,一个是IP地址,另一个是MAC地址。 Arp协议正式提供了这两种地址之间的转换功能,根据Arp地址协议,当主机收到Arp请求包时,主机将保存下请求包内的地址对应关系到本地缓存表中。Arp欺骗技术正是利用协议的这个漏洞,通过构造错误的对应关系报文来对主机进行Arp欺骗。主机收到包含错误对应关系的Arp请求报文后,更新本地Arp地址缓存表,之后的通信受错误地址对应关系影响,发往错误的MAC地址设备。如图3。
受到Arp欺骗的主机A中,错误的保存了主机B的MAC地址对应,导致本应发要发给主机B的数据将被网络发至主机Attacker。如果再对主机B实施Arp欺骗,通过构造错误的Arp包,更改主机B的Arp缓存表中的主机A的MAC地址纬Attacker的MAC地址,那么就实现了Attacker主机对主机A和主机B的通信欺骗和通信监听。
图3
对主机A和B讲,并没有发现自己的通信异常,但是Attacker主机此时已经实现了对两者的通信监听。下面我们讨论下Arp欺骗具体的实现手段。
首先定义如下名称:
1) Target: Arp欺骗的目标主机
2) Attacker: 攻击者主机
3) aIP,bIP: 主机 A和B 的ip地址
4) aMAC,bMAC: 主机 A和B 的MAC地址
5) TargetMAC: 目标主机的MAC地址
6) TargetIP: 目标主机的IP地址
7) AttackerMAC: 攻击主机的MAC地址
8) AttackerIP:攻击主机的IP地址
9) Arprequest: A---> B with (aIP,aMAC,bIP,bMAC):从主机A发往主机B的 Arp地址请求报文,该报文使用(aIP,aMAC,bIP,bMAC)构造。
10) Arpreply: A---> B with (aIP,aMAC,bIP,bMAC): A到B的Arp回复报文。
a 进行Arp欺骗
报文格式:
(1) Arprequest: Attacker ---> Target with (aIP, AttackerMAC, TargetIP, TargetMAC)
(2) Arpreply: Attacker ---> Target with (aIP, AttackerMAC, TargetIP, TargetMAC)
Arp请求报文包含了错误的主机A的MAC地址,目标主机收到该报文后,认定A主机的MAC地址是AttackerMAC,并保存aIP到AttackerMAC的地址转换关系,因此所有本应发往主机A的数据包被发给主机Attacker。
Arp回复报文用来维持Arp欺骗,同样的,目的主机在Arp缓存表中保存了aIP到AttackerMac的错误对应关系,发往主机A的数据包被错误的发给了Attacker。
b 认定网络中存在相同IP地址
报文格式:
(1) Arpreply: Attacker ---> Target with (TargetIP, aMAC, TargetIP,TargetMAC)
(2) Arprequest: Attacker ---> Target with (TargetIP, aMAC, TargetIP, TargetMAC)
如果发送上面两种报文到目的主机,则目的主机认为在网络中存在一个与本地IP地址相同的主机,目的主机操作系统将会提示“IP地址冲突”。
c 恢复Arp欺骗
报文格式:
Arpreply: Attacker --->Target with (aIP, aMAC, TargetIP,TargetMAC)
包含正确信息的Arp请求报文,能够恢复目的主机的Arp缓存表。
4 Arp攻击技术
Arp攻击是指应用Arp欺骗技术手段,以瘫痪对方主机和网络为目的的行为。在内网环境下,根据攻击范围的不同,攻击手段区分为两种,一种是全通信攻击,另一种是半通信攻击。全通信攻击是指向目标主机发送对内网所有主机的Arp欺骗报文,从而导至目标主机所有的对外通信中断。全通信攻击方式发送的报文量大,极易导致网络流量异常,特别是对整个网络实施攻击时,猛增的网络流量易被安防系统发现并阻止。半通信攻击仅向目标主机实施对网关的欺骗报文,影响主机对外网的通信。这种方式报文量小,但不能干扰主机在网内的通信。对网络实施Arp攻击的伪代码如下:
For(i=0;i<网络容量;i++)
{
判断主机i是否存活;
IF(主机i存活)
{发送Arp欺骗报文;}
}
在实际的应用中,需要不断地重复上述代码来维持攻击效果,每次重复攻击之间需留有一定的时间间隔来避免网络流量的激增。间隔的设置可以根据实际的攻击需要和网络容量的大小来进行设定。
5 小结
Arp协议的应用性非常广,并且目前大多数网络设备并不屏蔽正常的Arp协议数据流,因此利用Arp进行网络渗透攻击不失一种较好的手段,通过本文的讨论,可以将此技术应用在军事网络战、军事技术情报获取、网络安全侦察等多个领域。
参考文献:
[1] W.Richard Stevens.TCP/IP详解卷1:协议[M].北京:机械工业出版社,2006.
[2] 周贺,彭婧,冯光焰.Arp协议的安全问题及其解决方案[J].计算机与网络,2007(23):33-35.
[3] 杨杨,房超,刘辉.Arp欺骗及ICMP重定向攻击技术研究[J].计算机工程,2008,1(34):103-104.
[4] JEFFRY.最全的Arp欺骗攻击原理深入分析[EB/OL].(2007-10-10)[2008-12-10].http://netsecurity.51cto.com/art/200710/57693.htm.