获得本站免费赞助空间请点这里
返回列表 发帖

ARP的分析与解决

如果您的网络出现,整体突然掉线,或者有不定时的部分机器掉线,再或者出现一台一台机器的掉线.而且一般情况下几种掉线都会自动恢复.那我非常热切的恭喜您,您中奖啦.奖品是ARP欺骗. 不用高兴也不用激动,因为这个奖项量很大,很朋友都在深受其意.ARP到底咋回事,这里咱说道说道.
  y1 C9 Y1 t% d( N% H3 M5 g  N0 U8 d" _9 ?- J) D
ARP欺骗原理:
3 U/ W8 e. u$ z; D3 l 在同一NET内的所以机器是通过MAC地址通讯。方法为,PC和另一台设备通讯,PC会先寻找对方的IP地址,然后在通过ARP表(ARP表里面有所以可以通讯IP和IP所对应的MAC地址)调出相应的MAC地址。通过MAC地址与对方通讯。也就是说在内网中各设备互相寻找和用来通讯的地址是MAC地址,而不是IP地址。
: s  Z! j/ A8 c. `; D2 F 但是当初ARP方式的设计没有考虑到过多的安全问题。给ARP留下很多的隐患,ARP欺骗就是其中一个例子。 $ o, R+ j; T2 A
网内的任何一台机器都可以轻松的发送ARP广播,来宣称自己的IP和自己的MAC。这样收到的机器都会在自己的ARP表格中建立一个他的ARP项,记录他的IP和MAC地址。如果这个广播是错误的其他机器也会接受。例如: 192。168。1。11机器MAC是 00:00:00:11:11:11,他在内网广播自己的IP地址是192。168。1。254(其实是路由器的IP),MAC地址是00:00:00:11:11:11(他自己的真实MAC).这样大家会把给192。168。1。254的信息和发给00:00:00:11:11:11.也就是192。168。1。11..。 有了这个方法欺骗者只需要做一个软件,就可以在内网想骗谁就骗谁.而且软件网上到处都是,随便DWON随便用.要多随便有多随便啊...
& Z; r+ t$ ?2 S8 H8 I3 } 基于原理,ARP在技术上面又分为,对PC的欺骗和对路由的欺骗.他们的区别在后面的ARP解决里面仔细阐述.
" j9 d' w, ]- b' N. }" S" T ARP欺骗的起因: 9 H5 y, f( e) w; n1 t
网络游戏兴起后网络盗号,木马也跟着疯狂。ARP欺骗就是一种很好的盗号方式。欺骗者利用自己在网吧上网时,先找到内网网关的MAC地址,然后发送自己ARP欺骗,告送内网所以的机器自己是网关。例如:192。168。1。55 MAC00-14-6c-18-58-5a 机器为欺骗者的盗号机器,首先,他会先找到内网的网关(内网网关为 192。168。1。1 MAC为XX.XX.XX.XX.XX.XX)。之后他就会发送ARP广播,说自己的IP地址是192。168。1。1 MAC地址是00-14-6c-18-58-5a.这样,内网的所有收到他发信息得机器都会把它误认为内网的网关。所有上网信息都会通过他的MAC地址发给这个机器,由于找不到真正的网关,这些被骗的机器就无法上网。而发送的所有信息都会被这个盗号机器收到,通过分析收到的信息他可以在里面找到有用的信息,特别是有关于帐号的部分,从而得到正在游戏的玩家的帐号,发生盗号事件。
9 v  B* x+ {  d8 Y ARP的发现: 3 y9 ^% N3 j' p' y* ^" `
ARP的通病就是掉线,在掉线的基础上可以通过以下几种方式判别,1。一般情况下不需要处理1分钟之内就可以回复正常上网。因为ARP欺骗是由时限,过了期限就会自动的回复正常。而且现在大多数路由器都会在很短时间内不停广播自己的正确ARP,使受骗的机器回复正常。但是如果出现攻击性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),他是不断的通过非常大量ARP欺骗来阻止内网机器上网,即使路由器不断广播正确的包也会被他大量的错误信息给淹没。2。打开被骗机器的DOS界面,输入ARP -A命令会看到相关的ARP表,通过看到的网关的MAC地址可以去判别是否出现ARP欺骗,但是由于时限性,这个工作必须在机器回复正常之前完成。如果出现欺骗问题,ARP表里面会出现错误的网关MAC地址,和真实的网关MAC一对黑白立分. 9 L: G7 t3 L9 e" n& x4 a3 G$ j
ARP解决: ' ?3 E; U- r) L% S1 M7 m
现在看到ARP解决方案,都感觉有点效率低下,而且不够稳定.本人对欣向路由较为了解,以他为例吧.
# U) W$ \8 I- c% P" w, ^/ p) P' Y+ ]  
0 N# p6 I2 Y% `1.路由ARP广播. ' k; N6 v9 U/ s4 R( n5 P: K4 h
国内部分硬件路由有此功能,最早是在欣向的路由里面发现这个功能.感觉不错,挺有方法的,但是在软路由里面好像还未发现,软路由的兄弟们加把劲啦.他的原理是路由器不间断的广播正确的路由器ARP.例如:路由器的IP是192.168.1.1 MAC:11:12:13:14:15:16,那他就会不停的每秒广播自己的正确ARP.不管你内网机器是否喜欢收,1秒收一个一秒收一个,收到了就改一次ARP表收到了就改一次ARP表.无穷无尽无止无息,子子孙孙无穷亏也.....如果出现ARP欺骗,欺骗者发出欺骗信息,PC刚收到欺骗信息就收到了正确信息.所以问题也就解决了.但是有个隐患,就是广播风暴的问题.不间断的广播是否会应该内网的网络呢??? (带着问题请教了国内某厂家欣X的工程师,工程师很热情的解除了我的疑惑,感谢一下先).以每秒次的频率发送APR广播在内网是微乎其微的,因为任何一个机器都会有广播发生,多一个ARP最多相当于多几台机器的信息量,对内网是不会有影响的.但是这种方式有他的问题,当欺骗者加大欺骗ARP的频率超过路由时(在欺骗软件上面实现非常容易),还是会造成欺骗的效果.解决也应该很简单就是加大路由器的广播频率,但是欣X的工程师却否定了这种方法,原因请看第2条.
8 W, t$ V5 h- ^' O) Y9 k  * \% L8 [) G$ p* j3 N' U
2.超量路由ARP广播. 7 N, k" W) @6 v
近期发现个别路由厂家宣传可以完全防止ARP问题.我抱着崇敬的心态去学习了一下处理方法,不得不让人失望,是非常失望和痛心.所谓完全防止其实就是前面的路由ARP广播,只是简单的把频率加大到每秒100.200.....次. 这种方法效果单看ARP方面确实比每秒一次要好.但是却是得不偿失,甚至有点.....不说了,免得让人骂.简单给大家分析一下,每秒100为例吧,也就是说,路由器1秒时间会发出100个ARP广播,200台的电脑,每台机器每秒处理100次.如果有10台交换机,就会有10个交换机处理100次.每次交换机都会把信息互相转发,这每秒ARP信息的处理量要按照10N次方*100去计算的.大家如果了解广播的模式就会清楚,交换家之间会互相不停的传递信息,你发给大家,我收到了,还会发给大家.大家收到了还是要发给大家.这样每台PC最终收到的信息每秒要上万条吧(这个量应该只小没大吧?).每秒都这样干100次.不知道网络内部要成为什么样子??PC的就没事老维护ARP表就不干别的了吗?为了一个ARP,7*24小时的折腾网络值得吗?网络性能要降低多少啊.人满时或者有点内网的小攻击时,网吧不瘫痪估计有点难啊,,,死字很容易写啊.当然平时你是感觉不到的.但是我要问一句想出此方法的工程师,你出这个方案,是为了解决问题吗?
, E8 D+ @7 j2 [3 M- o3.极力推荐的方法.静态绑定. % e$ M- d& Q$ X6 L
ARP解决最有效的方法,就是从根本杜绝他的欺骗途径。
. |! y" m8 k$ y5 R) x+ i  u% n6 F 欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以根本解决对内网PC的欺骗。 + k* c" f+ D0 W5 z
方法为:找到路由器的lan口的MAC地址,把MAC地址通过静态的方式帮定到每台PC上面。通过命令,ARP -S 可以实现。 首先,建立一个批处理文件。内容只有一行命令,“ARP -S 内网网关 网关的MAC地址 ”,例如:“ARP -S 192.168.1.1 00-13-32-33-12-11 ”.把批处理文件放到启动里面,这样每次开机都会执行这个文件,即使出现ARP欺骗,由于我们设置的是静态方式,PC也不会去理会欺骗的ARP. ( Y8 L. S, j! ^- \

5 X  \; F( i) i/ {' V0 X7 ^- |, d; T% {# [* T2 w- W! @
如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示: ) D9 O  b$ B( M4 I; d  [
Internet Address Physical Address Type(注意这里)  1 G) e/ w! P4 M- [7 b7 ?
192.168.1.1 00-0f-7a-05-0d-a4 static(静态)
& h  Z9 |9 ^% v! V 一般不绑定,在动态的情况下:
, h# M4 X: B+ H  P: y+ | Internet Address Physical Address Type - n# z& K: O$ E% f; y( Q, s6 g
192.168.1.1 00-0f-7a-05-0d-a4 dynamic(动态)
  W, h$ [+ i( _" j, h: w5 i" Z$ L! a$ @, c, W7 @: P
& c4 W$ w5 x. f, H- W. U
ARP对路由的欺骗. + t4 s0 G' x' U" E. P& v5 _
做了静态绑定之后,为什么还会掉线呢?还是ARP吗?不幸的是,还是ARP( ARP对路由欺骗). " a  S7 p  b7 K( R
因为有种情况下的问题,没有得到解决.大家设想一下,现在的处理方法如果碰到欺骗者不是冒充网关,而是冒充内网的PC会如何呢?答案是掉线,冒充谁,谁掉线.因为路由器收到欺骗ARP后找不到你了,转发给你的信息全部给了欺骗者的机器啦... 我们在PC上面可以绑定网关.难道在路由上面也绑定PC吗? 答案是否定的,难道我内网每台PC的MAC地址都在路由里面绑定,累死了,而且几百个MAC地址看着就眼晕,而且如果有任何改动都需要调整路由器,几百条记录也太累了吧.针对这个问题对多台设备进行了测试,包括3个版本的软路由,欣X,侠X,艾X等等的产品(大家也想测试的话,给当地的厂家代理商说你要试用,简单啊).最终结果不尽人意,软路由3种里面只有1种有可以解决的方法,而且是每台绑定方法.3款硬路由有1款是可以完全防范,2款需要绑定(提醒大家,2款产品都有绑定数量的限制,超过数量无法解决,采购时注意询问).对于1款可以防范的产品做了一些研究但是没有结果,再次打通了欣X的工程师电话,请教处理方法.工程师给出了答案,欣X路由是采用的WINDRIVER的VxWORKSII的操作系统.在效率与安全性要比免费LINUX系统的强很多,这套2代的系统本身就可以维护一个数据库,不从硬件的数据库提取数据,数据表内容都是在PC上网时收集的,对于ARP欺骗根本就不予理睬,针对ARP对路由的欺骗在基础上面就已经给屏蔽了.而且内网可以随意的改动与调整...打住..有点象厂家稿子啦...... # F  r- [5 [6 T; t6 A- I2 w
9 |1 @0 v1 E, x& ^1 @
& x% _2 H3 O' A
ARP的问题这里基本都提到了,如果还有想法请大家提出来.我们一起讨论.......
1 G( \& z- O9 D4 a& U- O+ k/ T8 R0 T! v7 v1 f4 b, p
后面在补充一种ARP欺骗的问题,他就是对交换机,很多带管理的交换机他们都有一张ARP表格需要维护,而且通过这张表来提高数据的交换效率.如果出现ARP欺骗,交换机就无法给目标IP发送数据啦,所以需要在交换机里面做静态ARP绑定. * b5 r' d, N9 _. }, }
- N# a' q3 I. r& I$ i# q8 h
为什么会有不掉线,一切看似正常的ARP    v( L4 Z6 G+ ?7 B1 I$ u
$ V) d3 E4 d8 K* j6 K$ f" b
大家是否出现过网吧丢游戏号,丢QQ号,丢钱包的问题呢?
! e& @) c5 T7 c% w7 B9 x5 s. g, z- V( A0 g
特别是大面积的丢失帐号,很大部分就是ARP造成的.原理是:欺骗者,先骗了PC后骗了路由器.
( U6 ]. L: ^6 c& {0 n1 O% }1 s- r0 e! v# O( @! k* g
这种情况下,PC把信息发给欺骗者,然后欺骗者把信息再转发给路由器.当欺骗者收到路由器回来的信息后再发给相对应的PC.这样就可以再不影响内网PC正常上网情况下,截获PC的上网信息,就可以盗你的游戏帐号,盗你的qq号.偷你的钱包他就要换另一个方法了(下一篇文章着重讨论防范偷钱包.)
; n' w) ^$ u# j9 T2 P3 m, s9 K# s7 F9 f, Z) T9 d7 N' K$ Z9 C
大家问题的解决:
/ P: D4 I1 @- s1。欣X不需要升级就可以解决ARP欺骗路由器的问题,因为他可以本身就防范,原因就是用了VxWorks II,具体看前面就不详细解决啦。另外,这里重申一点大家容易进入的误区...路由器发送ARP包解决ARP欺骗的方法,是很很笨拙,一秒几百次ARP发送的方法更是.......... 3 E. M9 b* ?% n6 c4 u/ f7 p/ W
2。杀病毒还是重装系统都没有太多的意义,因为你能保证不在感染吗,能保证么有人在网络内主动运行吗?
6 n. {& m  {$ S) l; Z& F3。对于那些各类的SERVER,确实比较头痛,因为不论是LIUXN还是WINDOWS都要面临各种内网的机器变动啊,调换啊之类的事情。但是有个好消息,欣向有一个类似网管的软件,好象可以解决类似问题。以欣向的技术估计软件不会差了。
8 k7 Z$ u6 f7 T. Z  u7 D, B8 T- a7 {( ~2 E& R& s; X
4。有朋友提出改动内网PC的IP与MAC,设置为与路由冲突,使路由DWON掉。这个问题超出了ARP的范畴。但是,你说的方法确实破坏力很强,我之前的软路由确实很怕这个东西。但是用欣向的路由就没事啦。 ( T& G2 G" G2 \  n  B/ I

6 i! p# b$ A) c) c8 q大家有问题继续提,我会尽量和大家一起深入探讨的。。。
8 i3 V+ [* j" O% I
' n3 R: O. c# k) O追加欣向ARP工具,并介绍使用方法与技巧。
3 n* g4 Z+ M1 Z  N% J5 f' `
+ ^( A/ ~" K6 Z3 ?. Y经过这2天的测试与使用,发现欣向的这个工具还是非常适应潮流地,是大家需要地,是不错地,是个好同志地,是。。。。好了,先和大家探讨一下如何使用。 - ?# M" b* A# z6 Y# ~7 p: w8 s

9 j! I) _: B2 Z& h0 b" p. @这里给大家推荐的工具包括: 2 g- J. j+ |$ W0 Z6 j4 ^1 b

& K+ v$ k' i! K# y" Z$ w1。欣向ARP工具。包括很全面的ARP防范的功能。(其中包括WinPcap_3_0.,请务必先安装此软件) $ a' K- d7 t. {" x
( B4 H+ `8 P2 A. J% C1 i$ N- X
下载地址: http://www.nuqx.com/downcenter.asp & y0 U! O+ h/ u5 m9 L
" b; [- S* z* X$ G3 U5 [2 `( ^- Q
(试了1个小时,咱这论坛的上传功能实在是不会玩,大家去欣向下吧。)
# U" B! ?+ B4 Z5 _
4 J( t$ E. B/ s$ @2。抓包看包工具。ethereal-setup-0.10.8。 " a2 q7 {$ o/ D

) N  E9 m. ?. d7 H$ Ohttp://www.ethereal.com/distribution/win32/ethereal-setup-0.10.8.exe
3 E) k- ]1 c2 m5 d9 c
, J  p1 ^8 X. K; b欣向ARP工具。(欣全向ARP工具.exe)
# ]0 K( ^* k' R2 Y6 K+ ^. |/ [8 o) w
% _) ~4 z! @4 |0 @ 共分5大功能 (软件中所有需要保存文件的功能都会保存在软件所在的目录中)
- {+ s1 s& T7 \& O9 V
4 c6 g5 U: m# |9 k$ I1。IP/MAC清单 - @. f# w# I( \7 f* }' l: W. w# p

3 W: T5 N* B) [( \; d9 e/ z a。选择网卡。如果是单网卡不需要设置。如果是多网卡需要设置连接内网的那块网卡。
+ f9 U5 U5 _) H  |3 Q! Z7 Z  A9 [3 M
b。IP/MAC扫描。这里会扫描目前网络中所有的机器的IP与MAC地址。请在内网运行正常时扫描,因为这个表格将作为对之后ARP的参照。
( G7 _: n, W  [" a  N# v9 g; M( I6 P* p2 l/ i  G1 B
之后的功能都需要这个表格的支持,如果出现提示无法获取IP或MAC时,就说明这里的表格里面没有相应的数据。 ' h- i* J) T' A) H/ F# @: }! c
, s- C, B; d; h  W. R' E3 _
2。ARP欺骗检测
7 A7 C5 ^2 d- j8 a: k- w' R" B, F2 r& s& Y1 I8 R6 O
这个功能会一直检测内网是否有PC冒充表格内的IP.你可以把主要的IP设到检测表格里面,例如,路由器,电影服务器,等需要内网机器访问的机器IP.
2 K( Y' L5 w, a, @- M, a$ q$ @
4 Y2 \0 U/ I, S6 n(补充")ARP欺骗记录"表如何理解:
. w, j  S( @* T/ {$ N3 a* g4 \2 j% h/ @% C
" time":发现问题时的时间;  1 x# D0 x" C  j; a! @/ D2 J3 G
, O1 z& @. J3 n
"sender":发送欺骗信息的IP或MAC;
3 _! [- R$ ~. f5 G; S
- `) z$ e) I, M" w4 b "Repeat":欺诈信息发送的次数;  
/ P+ `, E8 O% t
) @' Z/ S9 Y- [4 b8 I4 G" ^ " ARP info":是指发送欺骗信息的具体内容.如下面例子:
4 x3 S  n( [; s% ^7 F( ~+ \6 e3 F$ a( Y- a! x7 P
time sender Repeat ARP info
6 `% z5 k- g  x4 ?" D& z: d
. g: Y  ^( Q( o22:22:22 192.168.1.22 1433 192.168.1.1 is at 00:0e:03:22:02:e8
" ~. l' p+ K0 q
* X1 _- @3 s( f2 d+ X% `% {' v这条信息的意思是:在22:22:22的时间,检测到由192.168.1.22发出的欺骗信息,已经发送了1433次,他发送的欺骗信息的内容是:192.168.1.1的MAC地址是00:0e:03:22:02:e8. - }6 {% i$ |; W3 H8 Z1 w9 B4 s
) U, P3 B, n/ J  Q4 P
打开检测功能,如果出现针对表内IP的欺骗,会出现提示。可以按照提示查到内网的ARP欺骗的根源。提示一句,任何机器都可以冒充其他机器发送IP与MAC,所以即使提示出某个IP或MAC在发送欺骗信息,也未必是100%的准确。所有请不要以暴力解决某些问题。
2 m3 t( \6 s- R% h4 M3 s$ |  Q; G0 }% h: c4 V
3。主动维护(快速解决) . |+ m# T: g- u
* f- {( T+ X( M, u5 i, P: U
这个功能可以直接解决ARP欺骗的掉线问题,但是并不是理想方法。他的原理就在网络内不停的广播制定的IP的正确的MAC地址。 1 U  f% L* B$ d; T& e$ Y

& K" {' f8 r, J2 r7 i1 G"制定维护对象"的表格里面就是设置需要保护的IP。发包频率就是每秒发送多少个正确的包给网络内所有机器。强烈建议尽量少的广播IP,尽量少的广播频率。一般设置1次就可以,如果没有绑定IP的情况下,出现ARP欺骗,可以设置到50-100次,如果还有掉线可以设置更高,即可以实现快速解决ARP欺骗的问题。但是想真正解决ARP问题,还是请参照上面绑定方法。 $ w& R2 b* v4 Y" C

3 _# @. S& @* v. |4。欣向路由器日志 $ e7 k7 k% [1 S' q; ^6 `
; ~; ~3 F0 G0 O8 f: B% P
收集欣向路由器的系统日志,等功能。 ; Z; e( E0 g* x4 }( h9 t! r

6 W6 }! c* h, R; O+ T5。抓包 # L! k, `1 O, g/ ]
' R1 N0 _% [$ M% @( j) {8 l
网吧很少接触到包级别的设置或问题。欣向的这个功能很可能把大家带到一个新技术高度,但是对于包的分析比一般的问题要复杂很多了,但是却可以提高对网络的把控力。
# ]$ x! I1 Y! K6 k; ~; l, i: _; C
& ]7 T* T5 \4 x; F8 q大家通过抓到的包可以分析内网的各种问题。具体这里不解释啦,基本所有的TCP/IP问题都可以分析。 . \% g1 ]9 h# l2 @& h
1 }, c7 j! j% U, e$ F  G
抓包功能里面的空白条是控制抓包规则的,ethereal软件就是给大家分析包用的,大家把包文件直接拖到ethereal里面就可以打开。ethereal即可以抓包也可以看包,如果有机会可以研究一下。 : W; N0 b8 ]& D! V# G- _3 U

/ V0 P6 a2 ]' ^( S7 h. H这几天看到很多朋友都在提出一些网络方案,询问是否可以彻底解决ARP问题.还有朋友请求帮忙.不在挨个说了,一起抓吧. ' L6 L% }* C3 s+ @9 d' }) }9 L

2 d! m. e/ @5 {$ `首先要在3个方面考虑,1.路由器.2.PC.3.中间的交换机.
: X+ Z* @6 ]9 r4 w& K4 \2 z. J- S! `6 ^
1.路由器要选择可以防范ARP对路由器欺骗的,应该如果选择看自己的情况.具体品牌就不推荐了,后面我会出一个真假ARP防范区别的方法.让大家可以放心的采购.
; k7 R( A7 G- M& h; Y* f* V0 f1 N; S' F$ [# E8 n$ b" I8 i4 f
2.PC都需要对路由器绑定,还有比较重要的服务器.(一般服务器绑定不是很重要)
3 N! k- i  c, |0 I) k' V3 r, ~3 s- r4 A
3.中间的交换机要关闭MAC管理功能,或者做交换机下面的PC与其他连接交换机端口的MAC-IP绑定.再或者就选用不带MAC管理的交换机.这个功能对网吧其实真是没大用,因为主要业务还是对外网的访问,内网的那电流量再现在强大的交换机面前可以说忽略不计. 4 L* ^& K+ ?- G# c1 `5 g# E
7 U% h5 }4 a* F( b+ B
以上3点全部做到ARP就无作恶之处啦.....
  i' b" Y) V' @7 |
# A3 \9 S5 I; N0 C' U真假ARP防范识别.
- ^3 i( y$ w* [6 ~. u2 L* f7 U/ B4 |- H( o
好多朋友都再说ARP的防范啊,什么100次200次的啊.看着那个烦啊.  
9 E1 V; f2 C2 C1 \7 F, V+ [" w) t9 L
给大家一个检测方法,简单有效.
& }3 r+ L4 L# B7 U+ G$ E2 m% ]+ i, i' m) v7 ?$ E, U
1.测试PC的欺骗防范. & [# L; `" l  ~# ~/ N6 c* z
& ?; L, {% o; `8 N
,关闭路由器,把PC1设置为与路由器同IP,打开欣向ARP工具.记录PC1的IP MAC,然后把PC1设置为"主动维护"里面,............这样就把模拟的ARP攻击的环境假设好了.再把路由器打开,按照正常设置内网的PC上网.然后在"主动维护"里面开始主动维护,,这时路由器会一直广播错误的路由器MAC...先设置到100次,,只到500次看看是否可以防范....现在就看你的路由器的能力了.
# }5 Y! U4 y3 J2 A$ m5 V8 a; ~. h! k) n  j1 w
2.对路由的欺骗防范.   G1 i% T; l) ]$ i4 Q1 U6 n

: k  s0 _$ C$ {& V找3台电脑,先设置错误的IP.然后打开ARP工具记录,把3个IP添加到主动维护里面,之后在把3台电脑的IP改为正确.........然后在开始主动维护....看看是否3台电脑还是否可以上网....黑白立判.
* }. ~- F0 v2 F& b* [, M3 CARP攻击的原理与解决方法(第三版)含如何在局域网内查找病毒主机  
& I0 F4 {5 S, j1 X$ g$ S' U$ {3 Y5 w6 A, r( B
【故障原因】  
) C! M( w# i, ~- r: }" M: \" g' x; k* e( m$ I* U
局域网内有人使用ARP欺骗的木马程序(比如:魔兽世界,天堂,劲舞团等盗号的软件,某些外挂中也被恶意加载了此程序)。    @& t( \, N7 x! k

, s0 j" n! w0 W2 q3 X  k【故障原理】  
) t. z  [) c6 P
, W8 X# n7 V7 z' `3 F要了解故障原理,我们先来了解一下ARP协议。  
& \0 ~4 P" s( u8 J+ G
* a0 N* b, p% y6 e在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。  % n- |- |9 w  w- @1 M' {$ P$ t

1 K4 [* B; S) n! [7 h$ Q6 `( H5 g& kARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。  ; p$ T9 j$ Q0 p! ~: K  A% a& w( ]
6 e5 y$ D( y6 X3 ~: I$ k# G
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下所示。  ) x9 H6 S9 @( Z; `$ s' e  D
  m6 b9 {) ^' \
主机 IP地址 MAC地址  
" y3 r& \: R, BA 192.168.16.1 aa-aa-aa-aa-aa-aa  
4 ?7 r) l* {9 c9 {B 192.168.16.2 bb-bb-bb-bb-bb-bb  
* @! [% u: Y* W6 _+ BC 192.168.16.3 cc-cc-cc-cc-cc-cc  : Q+ k" q) M  l3 f' J
D 192.168.16.4 dd-dd-dd-dd-dd-dd  
. [" E( M8 W6 i- U
  Z2 s+ K6 {, N, _
3 `. q( g8 u4 Q# f我们以主机A(192.168.16.1)向主机B(192.168.16.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.16.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。  
5 f/ V6 a3 j& y" [# Y4 n. J7 ~. W% }* {) [# Z9 q& T& _
从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A进行欺骗,A去Ping主机C却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果进行欺骗的时候,把C的MAC地址骗为DD-DD-DD-DD-DD-DD,于是A发送到C上的数据包都变成发送给D的了。这不正好是D能够接收到A发送的数据包了么,嗅探成功。  
. L# ?6 f, x2 D  n( D: V  k4 x
  A6 u6 k/ v& S% u$ D* E9 I1 YA对这个变化一点都没有意识到,但是接下来的事情就让A产生了怀疑。因为A和C连接不上了。D对接收到A发送给C的数据包可没有转交给C。  & W- N1 E4 O# x) U

- T& Y* P% `; s2 d做“man in the middle”,进行ARP重定向。打开D的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个计划。  
, \  o/ @0 ~' S. j$ ]
9 m5 c8 I- Z- k. SD直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了。  
! r, A8 J1 W  C5 I9 `- `3 I% ?7 j: T2 d) Y  _* K( S
【故障现象】  
  T/ o5 ?8 c: x, t" I1 b  W9 R2 K; m$ @% s  W! c% ?
当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。  
, ^" m0 [! O6 X/ a! x# s% b
5 c* s! b3 |6 J' x切换到病毒主机上网后,如果用户已经登陆了服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录服务器,这样病毒主机就可以盗号了。" i+ {+ O: R. L  J: R( }& r
由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。  # }- M2 t, x6 Y" h7 q/ a+ D+ Z
- m" I5 a1 X1 n1 j) p! V0 |
【HiPER用户快速发现ARP欺骗木马】  ; |; o# Z/ v5 V
( e8 f( [4 |0 N& a
在路由器的“系统历史记录”中看到大量如下的信息(440以后的路由器软件版本中才有此提示):  9 }" R7 j' \9 c* w
4 g' i  i6 i; ?
MAC Chged 10.128.103.124  
* H! t8 g' u9 ]: v- aMAC Old 00:01:6c:36:d1:7f    |- Y4 a) N/ d9 K  D" Z" M
MAC New 00:05:5d:60:c7:18  
, [( V; v6 F5 B+ c0 e0 t+ f# c( d' D
这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。  ( Z1 u3 J# P& M( k7 w
如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。  
4 q; T4 q; ~0 U+ |; \1 d* M' h+ V1 m0 p4 J' t+ s. k2 m+ K
【在局域网内查找病毒主机】  3 E5 i  T0 ^6 v7 @7 F- P
: {3 T, r+ Y+ O6 d4 E7 S9 i: h
在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN工具来快速查找它。  
) y" i! V4 M) g  j3 B+ k) y- c$ x' A
NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。  
+ c0 Z- ]* g! v* s
! m# t* ?6 S: b% L命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。  7 J: R( `% ?# I6 M  @6 N& e

# o8 x5 ~0 x5 Z/ l* xNBTSCAN的使用范例:  + L; v! D0 \* w

  F# r% r1 t( \, I$ n" Z; m假设查找一台MAC地址为“000d870d585f”的病毒主机。  
' b. T( K( y" {* ]; R1 G1 S, N( z& Z+ f: k  k# ?/ t# c4 E+ [+ u. O
1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:下。  
, a4 t* D  O" X- J5 q4 \  r% v, t) i
2)在Windows开始—运行—打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C: btscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。  
/ h/ n+ C8 V$ ~" C
9 ^! h3 |0 O! E; q# J2 g3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。  6 V* e, I* G6 x5 Q  d8 v( W# t

: N) X* y: E  D【解决思路】  " h! `$ Z0 N  e
+ @' y/ y- u* P' d  u, U+ Q3 z' K
1、不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。  
+ t% {9 E( a9 c, m
6 E2 u" C- D$ {8 I  u1 M2、设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。  
* h# `3 K& \3 ]# b" z) F  l! I2 ~' ?( I; O/ k
3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。  + `6 l; e" \0 K. F, a" Q5 G8 R
" g  ~  i& }" k* O7 e- j
4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。  $ n! I! G. j, s: G

0 U) o3 n( @6 u& @5、使用"proxy"代理IP的传输。  8 F/ C/ c; k! D7 D# ?5 _* I+ x

9 a4 e+ v1 k; A0 B6、使用硬件屏蔽主机。设置好你的路由,确保IP地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。  1 `9 e( B, y* W6 v1 e3 |$ \9 B

& N# ^  G1 W1 C5 K2 Z0 J7、管理员定期用响应的IP包中获得一个rarp请求,然后检查ARP响应的真实性。  
( x. o9 P) x" U# i3 A! h& y* c/ t
7 T! z5 e9 t! _7 \2 {8、管理员定期轮询,检查主机上的ARP缓存。  
  k* T+ ~) _8 a3 g. f% n) x4 e1 g( c* L8 @* |* ]8 y% C
9、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
任何一件事,只要用心总能变的简单。

返回列表
【捌玖网络】已经运行: