kaipankefu
2009/6/19 7:17:15
再次声明,本人是乖孩子,发此教程只要是为了让大家掌握ARP欺骗攻击的原理,并用java实现它请各位看官不要以身试法!!另外,掌握此原理也可直接令校园网瘫痪。所以千万千万千万不要去随意尝试!!!就算尝试了也不要说是我教的
ARP攻击原理
一台电脑通过网络访问另一台电脑的时候,在数据链路层需要知道对方的MAC地址进行真正的物理通信.
而电脑上的应用程序通常都是根据另一台电脑的IP地址来和对方建立通信,这时候就需要有一个协议将
IP地址解析到MAC地址,这就是ARP协议.
而ARP具体过程就是当需要通过IP获取一个远端的的MAC地址的时候,系统会首先检查ARP表中
是否存在对应的IP地址,如果没有,则发送一个ARP广播,当某一个拥有这个MAC地址的节点
收到ARP请求的时候,会创建一个ARP reply包,并发送到ARP请求的源节点,
ARP Reply包中就包含了目的地节点的MAC地址,在源节点接受到这个reply后,
会将目的地节点的MAC地址保存在ARP缓存表中,下一次再次请求同一 IP地址的时候,
系统将会从ARP表中直接获取目的地MAC地址,而不需要再次发送ARP广播。
用ping命令举例来说, 在机器A,比如说IP是192.168.1.2中发出下面的ping命令:
ping 192.168.1.3,如果192.168.1.3这个MAC地址在机器A的ARP缓存表中不存在,这时候
机器A就会发送一个ARP广播,当192.168.1.3接到广播后,会给机器A回一个
ARP Reply包,其中包含了192.168.1.3的MAC地址,这是正常的ARP过程.
假设IP--MAC的对应关系为(192.168.1.3--00-1C-23-2E-A7-0E)
但是局域网内的其他机器也可向机器A发一个假的IP--MAC对应关系ARP Reply包,
机器A接收到这个假的包后同样会更新自己的ARP缓存表.假设发送的为
(192.168.1.3--00-1C-23-2E-A7-0A,0A实际上为192.168.1.4的MAC地址)
那么机器A再通过IP往192.168.1.3发送数据的时候,实际上却发到了192.168.1.4这台机器.
这样就到达了ARP攻击或者叫做ARP欺骗.ARP攻击只能发生在局域网内.
zhangle9
2009/6/21 12:36:52
下面用JAVA代码模拟一下上面说到的ARP欺骗.
192.168.1.4将一个192.168.1.3的假的MAC地址发给 192.168.1.2.
需要用到jpcap.jar,这个包是街货,随便找找都能下到,我就不提供下载地址了
想玩的同学自己拿舍友的电脑试试,,不要恶作剧啊!!
whw2002fy
2009/6/24 4:51:51
等我学会了写数据包之后再用更高大上的方法去实现它,本期水贴就此结束,结贴!
xiaoyuankk
2009/6/24 20:46:44
等下,发下源码链接,代码我没有打包了,所以只有会java的同学才有这个使用福利了。直接导入到eclipse里跑,把ip地址改成舍友的就可以了
顶顶
聪明的人都离开了。
剩下的成了富翁。
——马云