本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 1653|回复: 1
打印 上一主题 下一主题

什么是ARP?如何防范ARP欺骗?

[复制链接]
跳转到指定楼层
1#
发表于 2013-2-24 15:58:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说一下什么是ARP。如果你在UNIX Shell下输入 arp -a (9x下也是),你的输出看起来应该是这样的:
  Interface: xxx.xxx.xxx.xxx
  Internet Address Physical Address Type
xxx.xxx.xxx.xxx 00-00-93-64-48-d2 dynamic
  xxx.xxx.xxx.xxx 00-00-b4-52-43-10 dynamic
  ...... ......... ....
    这里第一列显示的是ip地址,第二列显示的是和ip地址对应的网络接口卡的硬件地址(MAC),第三列是该ip和mac的对应关系类型。
    可见,arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。
    为什么要将ip转化成mac呢?简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义。但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别。也就是说,只有机器的mac地址和该ip包中的mac地址相同的机器才会应答这个ip包。因为在网络中,每一台主机都会有发送ip包的时候。所以,在每台主机的内存中,都有一个 arp--> mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这是由于以太网在子网层上的传输是靠48位的mac地址而决定的。
    通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的mac地址。如果没有找到,该主机就发送一个ARP广播包,看起来象这样子:
  "我是主机xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip为xxx.xxx.xxx.xx1的主机请告之你的mac来"
  ip为xxx.xxx.xxx.xx1的主机响应这个广播,应答ARP广播为:
  "我是xxx.xxx.xxx.xx1,我的mac为xxxxxxxxxx2"
    于是,主机刷新自己的ARP缓存,然后发出该ip包。
    了解这些常识后,现在就可以谈在网络中如何实现ARP欺骗了,可以看看这样一个例子:
    一个入侵者想非法进入某台主机,他知道这台主机的防火墙只对192.0.0.3(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:
    1、他先研究192.0.0.3这台主机,发现这台95的机器使用一个oob就可以让他死掉。
    2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。
    3、这时,主机发到192.0.0.3的ip包将无法被机器应答,系统开始更新自己的arp对应表。将192.0.0.3的项目搽去。
    4、这段时间里,入侵者把自己的ip改成192.0.0.3
    5、他发一个ping(icmp 0)给主机,要求主机更新主机的arp转换表。
    6、主机找到该ip,然后在arp表中加入新的ip-->mac对应关系。
    7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。
ChinaGDG.com
回复

使用道具 举报

2#
发表于 2013-2-24 16:22:25 | 只看该作者
技术贴。。

arp与dns好像。dns服务器负责把域名解析成IP地址,arp负责把IP地址转换成mac地址~
ChinaGDG.com
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表