0x00前言
之前做的WIFI攻击实验都是基于arduino环境开发的,最近想尝试一下使用micropython完成deautch(解除认证)攻击。本次开发板使用的还是TPYBoardv202(某宝上有卖,30元),因为它主要的功能就是支持micropython开发。
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 time
import uos