M5Stack ESP32 裝置上的高科技惡作劇固件
標誌@unagironin
正如今年早些時候宣布的那樣,M5Stick-NEMO 已被存檔,不再積極開發。該專案超出了我所有的個人目標,很高興看到社區聚集在一起,對這個專案感到興奮,為它做出貢獻,並從中獲得靈感。
就我而言,該專案達到了 M5Stick 系列對於此類技巧和惡作劇的能力極限,而無需添加外部硬件,如 SD 卡、無線電調製解調器、更大的 LED、RFID 模組或其他東西。對於驅動這些週邊設備來說,電池壽命也不是最佳的。許多功能請求都圍繞著對這些外部設備的支持,我沒有資源或時間來添加這些,但好消息是其他人已經繼承了這種精神,老實說,提供了更好的功能。 CatHack 是一個前景廣闊的項目。
這麼久了,謝謝所有的魚!
NEMO 啟動了一個個人項目,以幫助我了解有關使用 Arduino IDE 進行 ESP32 開發的更多資訊。我決定複製一些在科技社群中受到廣泛關注的常見、流行的惡作劇,作為對自己的挑戰,並更好地理解這些攻擊。
NEMO得名於《海底總動員》中那條小而聰明、頑固的魚。該項目與另一個與某些海洋生物相關的高科技產品形成鮮明對比。我確實想證明,只要有一個小型開發工具包和一些好奇心,就可以做很多事。我並不妄想透過這個項目取代任何類似設備的功能。這只是為了好玩,也是我自己的教育。
調整 .github/workflow/compile.yml 以使用 DEAUTH 函數進行編譯。
增加了對 StickC Plus 和 Plus2 上的 SONG 的支持
查看接入點詳細資訊時新增了“攻擊選單”
複製門戶(創建與目標具有相同 SSID 的邪惡門戶)
解除身份驗證攻擊(向連接到此存取點的裝置廣播解除身份驗證訊框)
Deauth+Clone(建立具有相同 SSID 的邪惡入口網站並向該 AP 發送取消驗證訊框)
在設定中新增了使用 M5StickC 設備時安裝/卸載 SDCard 的選項
如果不使用 CARDPUTER,則建立新檔案來處理 SPI/SD
SDCARD現在正在開發M5StickC Plus2
想法?
TV B-Gone 連接埠(感謝 MrArm 的 HAKRWATCH)可關閉許多紅外線控制電視、投影機和其他設備
AppleJuice iOS 藍牙裝置配對垃圾郵件
針對 SwiftPair (Windows) 和 Android 的藍牙裝置通知垃圾郵件
WiFi 垃圾郵件 - 有趣的 SSID、WiFi Rickrolling 以及每分鐘創建數百個隨機命名的 SSID 的隨機模式
WiFi NEMO Portal - 嘗試對電子郵件憑證進行社會工程的強制入口網站 - 將使用者名稱和密碼儲存到 SD 卡(如果插入支援的讀卡機)
WiFi SSID 掃描器 - 顯示附近的 2.4 GHz SSID、獲取有關它們的信息,甚至在 NEMO Portal 中克隆 SSID
使用者可調節的 24 小時數位時鐘,由 M5 Stick RTC 支持,因此即使在深度睡眠和低電量模式下也能保持相對穩定的時間
支援 EEPROM 的旋轉、亮度、自動調光和 NEMO Portal SSID 設定
設定選單中的電池電量和積分
主要有以下三個控制:
主頁 - 停止當前進程並讓您從 NEMO 中的幾乎任何位置返回選單
下一個 - 將遊標移到下一個選單選項。在功能模式下,這通常會停止該過程並返回上一個選單。
選擇 - 啟動目前選擇的選單選項,並喚醒功能模式下變暗的螢幕
StickC 和 StickC-Plus
電源:長按電源鍵6秒關閉設備
首頁:點選電源按鈕(最靠近 USB 連接埠)
下一步:點擊側邊按鈕
選擇:點選裝置正面的 M5 按鈕
卡片電腦
Home:點選 Esc/~/` 鍵或左箭頭/, 鍵
下一個/上一個:點擊向下箭頭/。鍵和向上箭頭/;導航鍵
選擇:點選確定/回車鍵或右箭頭/?鑰匙
在 NEMO Portal 模式下,NEMO 啟動名為「Nemo Free WiFi」的開放 WiFi 熱點(可在 Portal.h 中設定),並啟動 DNS、DHCP 和 Web 伺服器。
NEMO Portal 提供一個虛假的登入頁面,聲稱如果您登入即可提供網路存取。
這是一種社會工程攻擊,會記錄在頁面上輸入的使用者名稱和密碼。
從 Wifi 掃描詳細資訊中,您可以從掃描清單複製現有 SSID。退出 NEMO Portal 將清除 Evil Twin SSID
您可以透過從自己的裝置連接到入口網站並瀏覽到 http://172.0.0.1/creds 來查看捕獲的憑證
您可以透過從自己的裝置連接到入口網站並瀏覽到 http://172.0.0.1/ssid 來設定自訂 SSID
如果您的裝置支援 EEPROM 進行設置,您輸入的自訂 SSID 將被儲存為預設值,即使關機也是如此。
如果您的裝置有 SD 卡讀卡器,並且插入了 FAT 檔案系統格式的卡,則使用者名稱和密碼將記錄到 SD 卡上的 nemo-portal-creds.txt 中,供您稍後細讀。
SD 卡支援僅在 M5Stack Cardputer 平台上預設為啟用。它可以在 M5Stick 裝置上啟用,但必須建立 SD 卡讀卡機並將其連接到前面板排針。
NEMO Portal 僅適用於具有有效工作範圍、教育或演示目的的專業活動。未經同意儲存、出售或使用個人資訊是違法的。 ?
這絕對是獲得 NEMO 最簡單的方法
M5Stick C Plus 快速入門包含適用於 Linux、MacOS 和 Windows 的 M5Burner 應用程式的連結。這是安裝 UIFlow 和其他官方韌體的官方工具。我在那裡提供了 NEMO 的最新二進位。
啟動 M5Burner
從左側選單中選擇“StickC”(對於 Cardputer 則選擇 StampS3)
使用應用程式頂部的搜尋來尋找“NEMO”。我的官方版本將由“4x0nn”上傳並附有照片。
點擊下載
點擊刻錄
依照 Espressif 入門指南安裝 ESP-IDF 工具
開啟 esp-idf CMD 工具(在 Windows 上) - 在 Mac 或 Linux 上,esp-idf.py 和 esptool.py 應位於系統路徑中。
esptool.py --port COMPORT -b 115200 write_flash -z 0x0 M5Nemo-VERSION.bin
連接埠可以是 COM 端口,例如 Windows 上的 COM4、COM11。在 Mac 和 Linux 上,它通常位於 /dev 中,例如 /dev/ttyUSB0、/dev/ttyACM0 或 /dev/cu.usbserial-3
M5Nemo-VERSION.bin 應該是您從 GitHub Release 下載的版本 - 最好是最新的可用版本。
如果您想自訂 NEMO 或為專案做出貢獻,您應該熟悉從原始程式碼建立 NEMO。
安裝 Arduino IDE。我在 Linux 和 Windows 上成功使用了 Arduino 1.8,在 Windows 上成功使用了 Arduino 2.2。
安裝適用於 Arduino IDE 的 M5Stack 板:在檔案 -> 首選項中,將此 URL 貼到「Boards Manager URLs」文字方塊中。如果已經存在 URL,請在 URL 之間使用逗號。 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
如果 M5Stack -> M5Stick-C-Plus 未顯示在「工具」->「板」下,則使用「工具」->「板」->「板管理器」並搜尋 M5Stack。這將為大多數 M5Stack 板(包括 Stick C Plus)安裝支援。
確保在板選單中選擇正確的設備型號(例如M5Stick-C、M5Stick-C-Plus 或M5Cardputer)。
安裝必要的庫。在 Sketch -> Include Library -> Library Manager 中,搜尋並安裝下列程式庫及其所需的任何相依性:
M5StickCPlus、M5StickC 或 M5Cardputer
紅外線遙控ESP8266
取消註解頂部附近適合您的平台的相應#define
行(STICK_C、STICK_C_PLUS 或 CARDPUTER)
切換分區方案。 Tools
-> Partition Scheme
-> No OTA (Large APP)
- 有時此選項被標記為Huge APP
配置
程式碼應該可以乾淨地編譯,並且可以在主分支或發布標籤的開箱即用的 M5Stick C Plus 上運行。
僅取消註解一個適當的#define
選項,否則會發生編譯器錯誤。
如果由於某種原因螢幕從等級 0 的非常暗跳到等級 1 的幾乎完全明亮且進一步的亮度等級不會影響任何內容,請將 pct_brightness 變數設為 false。
編譯並上傳項目
安裝 Arduino CLI
將 M5Stack 索引新增至 Arduino 核心
新增 M5Stack 庫
# 安裝 m5stack boardarduino-cli core install m5stack:esp32 --additional-urls https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json --log-level warn --verbose# 安裝 --verbose# 安裝必需的函式庫arduino-cli lib install M5Cardputer --log-level warn --verbose arduino-cli lib install IRRemoteESP8266 --log-level warn --verbose# 編譯 sketcharduino-cli 編譯 --fqbn m5stack:esp32:m5stack_cardputer -e --build-property build.partitions =huapp; 3145728 ./m5stick-nemo.ino
這將根據分區草圖建立多個二進位文件,您可以使用esptool
合併單一二進位文件
安裝 esptool - pip install -U esptool
esptool.py --chip esp32s3 merge_bin --output Final.bin 0x0000 m5stick-nemo.ino.bootloader.bin 0x8000 m5stick-nemo.ino.partitions.bin 0x10000 m5stick-nemo.ino.bin
現在您可以使用esptool
刷新合併的二進位韌體
esptool.exe write_flash -z 0 Final.bin
安裝 Docker
運行./scripts/docker-build.sh
運行./scripts/flash.sh --device=
# 這將根據配置的平台建立包含所有必需程式庫的映像,並將編譯、輸出和合併二進位檔案# 預設情況下,這將為en-us 語言環境中的M5Cardputer 進行編譯,./config/.env. M5Cardputer./腳本/docker-build.sh # 如果你想選擇不同的建置配置,你可以將其作為參數傳遞。請參閱 ./configs/ 以了解各種設定。重複使用上一個步驟中的容器映像。 # 如果您傳遞了不同的建置配置,請確保將其傳遞給 flash 腳本。
有幾個功能可將偵錯資訊輸出到串行監視器。使用 Arduino IDE 或 M5Burner 中的串列監視器功能來收集此資訊。它可能有有用的提示。提交錯誤報告時,包含串行監視器輸出通常會有所幫助。
重置 EEPROM。在支援 EEPROM 設定的型號上,請使用設定選單中的“清除設定”,或在開機時按住“下一步”按鈕(StickC 型號上的側鍵,Cardputer 上的 Tab 或向下箭頭)。
TV-B-Gone 的紅外線 LED 可以透過智慧型手機相機觀察到,發出淡紫色光束。如果它似乎一直亮著,或者在 TV-B-Gone 操作期間根本不閃爍,則表示有問題。報告錯誤。有一個已知問題,即使用藍牙垃圾郵件或隨機 WiFi 垃圾郵件後 TVBG 無法運作。
如果您懷疑 wifi 垃圾郵件不起作用,請嘗試從多個不同裝置查看 wifi 清單。有時,Linux 網路管理器可以看到智慧型手機看不到的網路。如果報告 WiFi 垃圾郵件問題,請附上此測試的結果。
自 2023 年夏季以來,蘋果已經修補了很多藍牙內容。
請透過 GitHub Issues 回報錯誤。這些比社交媒體貼文、M5Burner 條目等上的評論更容易追蹤。
韌體版本
你是如何安裝的(M5Burner,自己編譯,esptool.py)
硬體
具體來說哪些功能和選項不起作用
您如何確定它不起作用以及您進行了哪些測試。包括您測試的設備型號和作業系統,以及串行監視器的任何錯誤或相關輸出(如果適用)。
如果您知道如何修復您發現的錯誤,歡迎 PR!
歡迎貢獻。
請查看該專案的 GitHub 問題。那裡有功能建議和錯誤報告,我很感激能解決這些問題的 PR。
提交 Pull Request 時,請針對開發分支。最簡單的方法是分叉所有分支,或簡單地在您自己的分叉中建立一個「開發」分支,然後使用 GitHub 同步您的開發分支。
注意程式碼中某些硬體(如 LED 和 RTC)的定義和門控方式,並嘗試遵循這些模式。另外,將內容輸出到內建顯示器時,請使用 FGCOLOR、BGCOLOR、TEXT_SIZE* 和 DISP 別名的定義。
請隨意將您的 github 添加到貢獻者數組中,作為拉取請求的一部分。
我想要幫助的事情:
改進了菜單的在地化/翻譯,而不僅僅是 NEMO Portal HTML。
可能需要一個新的 .h 文件
可在設定中進行配置並使用 eeprom 位元組來儲存設定
在實作中無償地使用const
,以便本地化字串僅儲存在快閃記憶體中並直接從快閃記憶體中引用,而不是使用大量 SRAM。
紅外線的
TV-B-Gone 的新「區域」充滿了額外的 IR 代碼,可以打開和關閉 RGB LED 燈帶、空調、風扇、條形音箱等
一種在 NEMO 程式碼庫中轉換或使用翻轉零 IR 程式碼的方法
找出一種方法來讀取和顯示缺少 AXP192 PMU 的 Cardputer 和 StickC-Plus2 型號上的電池電量。 Cardputer 工廠演示中的電池代碼可能是一個不錯的起點。
有針對性 僅針對特定存取點取消身份驗證。取消身分驗證垃圾郵件 PR 將被拒絕。
我可能不會合併的事情:
大量發送 Wi-Fi 取消驗證垃圾郵件
藍牙垃圾郵件可能會破壞健康和健身追蹤器、智慧手錶等。