构造ARP协议(上)

       拿TCP帧来说,构造一帧网络数据的时候,应用层的原始数据,被不同的层封装,最后发到网络上。

       从层的角度来看,TCP和UDP都是工作在运输层的,而ARP是工作在数据链路层的。即ARP在构造数据的时候,是从数据链路层开始的,所以一个完整的arp协议是不包含IP头的,更不可能包含TCP,UDP头。

       从协议上来看,ARP和TCP,UDP相同的地方,只有以太网首部是相同的了。另外UDP和ARP都是面向无连接的广播协议,所以都可以调用sendto()函数来发送数据。再看下图的arp协议,就简单明了了

     在开始编程之前,我们可以手动构造一个arp数据帧,来加深一下对arp的理解。现在我用Hack向被欺骗者发送虚假IP地址192.168.0.108,   和虚假的MAC地址aa.bb.cc.dd.ee.ff,注意这里是hack发给被欺骗者,hack是源头,被欺骗者是目标。

我们来看以太网首部(也叫以太帧头)

ARP 应答包的格式具体如下:
以太网目的地址:被欺骗者mac地址-01.02.03.04.05.06(16进制);

主机的 MAC 地址:hack的地址(要欺骗,就要填假地址)-aa.bb.cc.dd.ee.ff(16进制);

帧类型:0x0806 表示 ARP 帧;

硬件类型:0x0001 表示以太网;

协议类型:0x0800 表示 IPv4 协议;

硬件地址长度:0x06;

协议地址长度:0x04;

OP 操作选项:0x0002 表示 ARP 应答;

发送端以太网地址:再填一遍刚刚的假地址aa.bb.cc.dd.ee.ff(16进制);

发送端 IP 地址:hack的假IP地址-192.168.0.108,换成16进制就是c0.a8.0.6c;

目的以太网地址:再填一遍被欺骗者的mac地址01.02.03.04.05.06;

目的 IP 地址:被欺骗者的 IP 地址-192.168.0.102,换成16进制就是c0.a8.0.66;

把上面的组装起来就是

01 02 03 04 05 06    aa bb cc dd ee ff    0806    0001  0800    06    04    0002    aa bb cc dd ee ff    c0 a8 00 6c    01 02 03 04 05 06   c0 a8 00 66

由hack发送给被欺骗者,就能实现arp欺骗。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值