灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2753回复:0

ARP欺骗教程图解 (案例、过程、分析,并有配套的仿真链接)

楼主#
更多 发布于:2011-10-29 22:06
这个ARP欺骗案例用最简单的拓扑、场景来显示黑客作案的方式、过程。案例有两个版本:仿真、图解。图解版本,从仿真截图,并加标注,说明主要步骤的关键。
-         背景:计算机经互联网相连而传递信息,信息标明发送行、接收方的IP地址,而具体的传送是经过链路而实现的。若两个计算机都在同一个局网内,发送方还需要知道接收方的MAC地址(硬件地址)。如果发送方不知道接收方的MAC地址,就无法发送信息,得问ARP。ARP会在局网里向所有的计算机广播:你的地址是这个接收方的地址吗?如果是,请告诉我你的MAC地址。用电话来比喻,IP地址是姓名,MAC是电话号码,ARP是查号台。
-         ARP欺骗原理:计算机通信用IP地址,在以太网中,主机传递信息用IP地址及MAC地址(硬件地址)。主机之间知道彼此的IP地址,但不知道对方的MAC地址。在传递信息时,发送方得先问ARP找到对方的MAC地址才能发送。ARP向局网中的所有主机广播询问接收方的MAC地址。这个询问(ARP Request)包含了发送方的IP、MAC地址,黑客若在这个局网中,也会收到ARP Request,而得知发送方的地址。从偷听各个主机所发送的ARP Request,黑客知道了它们的的MAC地址,就可以冒充别的主机,进行欺骗活动,截取数据包。这段说明有些抽象、拗口,看下面的图解能更清楚些。
-         预备知识:MAC地址,交换机洪泛、转发,ARP。见参考资料
1.拓扑:在一个局网里,有三台主机H1, H2, H3连接到一个交换机S1,它们的MAC地址分别为MAC.H1, MAC.H2, MAC.Attacker (H3是黑客)。

图片:34_3710_98fa655b92750b5.jpg


这个拓扑是从ARP Spoofing仿真截图而来,仿真用动画显示ARP Spoofing仿真的过程,用户可以观察数据包-ARP表-MAC表间的因果关系,控制时间轴,检查数据包内容等细节。
-         拓扑中的地址以<地址类别>.<主机>表示。例:H1的IP地址是IP.H1, H1的MAC地址是MAC.H1。
2.初始化

图片:34_3710_9d0f3728dca0523.jpg


初始化时,主机的ARP表里只有自己的MAC地址,不知道其它主机的MAC。交换机S1的MAC表也是空的。
3.H1发送ARP Request查询H2的MAC地址

图片:34_3710_c69f3a1820e734b.gif


H1要知道H2是否在线,就ping H2。但不知道H2的MAC地址,不能发送ping, H1就洪泛ARP Request向局域网查询H2的MAC地址.
-         截图中H1的ARP表增添一个条目(IP.H2, Incomplete),意思是H1正在查询H2的MAC.
-         若运行ARP Spoofing仿真,用户可以点击ARP Request,查看报文(target mac为0,表示H1不知道H2的MAC地址),Link报头(Destination MAC设置为0xFFFFFFFF,表示这是一个广播包).
交换机S1收到ARP Request时,因为它是广播包所以将其洪泛。
4.收到了ARP Request,H2回复ARP Reply, H3 (黑客)记录H1的MAC地址

图片:34_3710_8532733e3c0e49f.jpg


主机收到ARP Request后有两种反应:不更新ARP表,更新ARP表,记录方式方的MAC地址(把ARP Request报文里的sender ip, sender mac添加到ARP表)。多数ARP软件不更新ARP表,这是H2的做法,
但黑客一定会把发送行的地址记录到ARP表。
 

5. H1  ping H2. H2收到Ping,要回复Echo,但不知道H1的MAC,得发送ARP Request查询

图片:34_3710_130fae6251aa905.jpg


H1收到了H2的ARP Reply后,更新ARP表,(IP.H2, Incomplete) 变成(IP.H2, MAC.H2),并再ping H2.
H2收到ping后,要发送Echo回复,但不知道H1的MAC,就发送ARP Request (ARP Req2)查询。
ARP Request被交换机洪泛,送往H1, H3.
6.H1, H3都收到了H2的ARP Request,做出不同反应
 

图片:34_3710_4b9c58b9b378083.jpg


H1, H3收到H2的ARP Request,做出不同的反应:H1发送ARP Reply回复H2,H3把H2的地址记录到ARP表。
7.H3开始攻击,冒充H1发送ARP Reply给H2.

图片:34_3710_5b5ba5c1967ec0d.jpg


黑客冒充H1发送一个ARP Reply给H2,在ARP Reply的报文中,把sender ip设为IP.H1 (H1的IP), sender mac设为自己的MAC.这样,下次H2要发送数据包给H1时,会被H3收到,而不是H1.这是因为在局网中传送是根据Link报头的目的MAC地址。同时, H1若换了一个网卡,就会发送ARP Reply通知自己的MAC地址改变,H2收到这样的ARP Reply,也不以为怪。
8. H2上当,把H1的MAC地址篡改为黑客的MAC地址。

图片:34_3710_8a982352ba555a3.jpg



H2刚收到H1的ARP Reply,把ARP表的条目(IP.H1, Incomplete)改为(IP.H1, MAC.H1)。
H2马上又收到H3的ARP Reply,把ARP表的条目(IP.H1, MAC.H1)改为(IP.H1, MAC.HAttacker)。
【注】若操作仿真,用户可以看到两个ARP Reply对H2 ARP表的连续改变。
 

9.  H1再ping H2. H2回复Echo ,用的MAC目的地址是黑客的,不是H1的

图片:34_3710_1e449a3ee4da93b.jpg


10.H2发送给H1的Echo被黑客收到, H1, H2毫不知情。

图片:34_3710_4df873462905b74.jpg


黑客得逞了。H2发送给H1的数据包,都给黑客收到了。这个案是Ping/Echo,在实际情况,可能是机密信息或银行交易。
黑客收到H2的数据包后,可以记录后再转发给H1,而H1, H2并不知道这个数据包已被黑客偷听过。黑客也可以把数据包篡改后再转发给H1,收到H1得到错误的信息。
【注】最后一步交换机根据Echo的目的MAC地址把Echo转发到H3,与交换机原理有关,若不熟悉,见参考资料、
参考资料:
[a] ARP
Visualland ARP仿真目录(Overview)
ARP入门,见ARP basic仿真http://www.visualland.net/view.php?cid=857;protocol=ARP;title=1. Basic-update 
谢希仁计算机网络第五版4.2.4地址解析协议ARP
RFC 826 http://www.faqs.org/rfcs/rfc826.html
MAC地址: LAN overview
谢希仁计算机网络第五版3.4.3 MAC层
Wikipedia MAC address http://en.wikipedia.org/wiki/MAC_address
百度百科MAC地址http://baike.baidu.com/view/69334.htm
[c]交换机怎么转发、洪泛数据包,发现新地址。
VisuallandSwitch 仿真目录,  Switching and flooding 仿真 , MAC discovery 仿真
谢希仁计算机网络第五版3.5.2在数据链路层扩展以太网
Wikipedia: Network Switch. http://en.wikipedia.org/wiki/Network_switch


喜欢0 评分0
游客

返回顶部