Прошивка для высокотехнологичных розыгрышей на устройствах M5Stack ESP32
Логотип @unagironin
Как было объявлено ранее в этом году, M5Stick-NEMO заархивирован и больше не находится в активной разработке. Проект превзошел все мои личные цели, и было удивительно видеть, как сообщество собралось вместе, воодушевилось проектом, внесло в него свой вклад и вдохновилось им.
Насколько я понимаю, проект достиг предела возможностей семейства M5Stick для подобных трюков и розыгрышей без добавления внешнего оборудования, такого как SD-карты, радиомодемы, более крупные светодиоды, RFID-модули или другие вещи. Срок службы батареи также неоптимален для управления этими внешними периферийными устройствами. Многие запросы на функции связаны с поддержкой этих внешних устройств, и у меня нет ресурсов или времени, чтобы добавить их, но хорошая новость в том, что другие продолжили этот дух, честно говоря, с лучшими функциями. Одним из многообещающих проектов является CatHack.
Всего доброго и спасибо за рыбу!
NEMO запустил личный проект, чтобы помочь мне узнать больше о разработке ESP32 с помощью Arduino IDE. Я решил воспроизвести несколько распространенных, популярных розыгрышей, которые привлекли много внимания в техническом сообществе, как вызов самому себе, а также чтобы лучше понять эти атаки.
НЕМО назван в честь маленькой, умной и упрямой рыбки из фильма «В поисках Немо». Этот проект контрастирует с другим высокотехнологичным гаджетом, связанным с некоторыми морскими существами. Я действительно хотел доказать, что с помощью небольшого набора средств разработки и некоторого любопытства можно сделать множество вещей. У меня нет иллюзий по поводу превосходства этим проектом возможностей какого-либо аналогичного устройства. Это просто для развлечения и моего собственного образования.
Скорректирован .github/workflow/compile.yml для компиляции с функцией DEAUTH.
Добавлена поддержка SONG на StickC Plus и Plus2.
Добавлено «Меню атаки» при просмотре сведений о точке доступа.
Клонировать портал (создает портал зла с тем же SSID, что и цель)
Атака деаутентификации (транслирует кадры деаутентификации на устройства, подключенные к этой точке доступа)
Deauth+Clone (создает злой портал с тем же SSID и отправляет кадры деаутентификации на эту точку доступа)
В настройках добавлена опция монтирования/отключения SDCard при использовании устройств M5StickC.
Создан новый файл для обработки SPI/SD, если не используется CARDPUTER.
SDCARD теперь работает над M5StickC Plus2.
идеи?
Порт TV B-Gone (благодаря HAKRWATCH от MrArm) для отключения многих телевизоров, проекторов и других устройств с инфракрасным управлением.
Спам о сопряжении устройств AppleJuice iOS с Bluetooth
Спам-уведомления об устройствах Bluetooth для SwiftPair (Windows) и Android
Wi-Fi-спам — забавные SSID, WiFi Rickrolling и случайный режим, который создает сотни SSID со случайными именами в минуту.
Портал WiFi NEMO — авторизованный портал, который пытается использовать учетные данные электронной почты для социальной инженерии — сохраняет имена пользователей и пароли на SD-карту (если она вставлена в поддерживаемое устройство чтения)
Сканер SSID WiFi — отображайте ближайшие SSID 2,4 ГГц, получайте информацию о них и даже клонируйте SSID на портале NEMO
Настраиваемые пользователем 24-часовые цифровые часы с поддержкой RTC M5 Stick, обеспечивающие относительно стабильное время даже в глубоком сне и в режиме низкого заряда батареи.
Настройки вращения, яркости, автоматического затемнения и SSID портала NEMO с поддержкой EEPROM.
Уровень заряда батареи и кредиты в меню настроек
Есть три основных элемента управления:
Домой — останавливает текущий процесс и возвращает вас в меню практически из любой точки NEMO.
Далее — перемещает курсор к следующему пункту меню. В функциональных режимах это обычно останавливает процесс и возвращает вас в предыдущее меню.
Выбор — активирует выбранный в данный момент пункт меню и активирует затемненный экран в функциональных режимах.
StickC и StickC-Plus
Питание: нажмите и удерживайте кнопку питания в течение 6 секунд, чтобы выключить устройство.
Домой: нажмите кнопку питания (ближайшую к порту USB).
Далее: нажмите боковую кнопку
Выбор: нажмите кнопку M5 на передней панели устройства.
Кардпьютер
Домой: нажмите клавишу Esc/~/` или клавишу Стрелка влево/,
Следующий/Предыдущий: нажмите стрелку вниз/. клавиша и стрелка вверх/; клавиши для навигации
Выберите: нажмите кнопку «ОК/Ввод» или «Стрелка вправо/?». ключ
В режиме портала NEMO NEMO активирует открытую точку доступа Wi-Fi под названием «Nemo Free WiFi» (настраивается в портале.h) с активированными DNS, DHCP и веб-серверами.
Портал NEMO обслуживает поддельную страницу входа, которая утверждает, что предоставляет доступ в Интернет, если вы войдете в систему.
Это атака социальной инженерии, которая регистрирует имя пользователя и пароли, введенные на странице.
Из сведений о сканировании Wi-Fi вы можете клонировать существующий SSID из списка сканирования. Выход из портала NEMO приведет к очистке SSID Evil Twin.
Вы можете просмотреть захваченные учетные данные, подключившись к порталу со своего устройства и перейдя по адресу http://172.0.0.1/creds.
Вы можете установить собственный SSID, подключившись к порталу со своего устройства и перейдя по адресу http://172.0.0.1/ssid.
Если ваше устройство поддерживает EEPROM для настроек, введенный вами пользовательский SSID будет сохранен как значение по умолчанию, даже если оно выключено.
Если в вашем устройстве имеется устройство чтения SD-карт со вставленной картой, отформатированной в файловой системе FAT, имена пользователей и пароли будут записаны в файл nemo-portal-creds.txt на SD-карте, чтобы вы могли просмотреть их позже.
Поддержка SD-карт включена по умолчанию только на платформе M5Stack Cardputer. Его можно включить на устройствах M5Stick, но устройство чтения SD-карт должно быть встроено и подключено к контактному разъему на передней панели.
Портал NEMO предназначен только для использования в профессиональных целях с действительным объемом работы, в образовательных или демонстрационных целях. Хранение, продажа или использование личной информации без согласия противозаконно. ?
Это самый простой способ получить NEMO.
M5Stick C Plus Quick Start содержит ссылки на приложение M5Burner для Linux, MacOS и Windows. Это официальный инструмент для установки UIFlow и других официальных прошивок. Там я предоставляю актуальные двоичные файлы для NEMO.
Запустить M5Burner
Выберите «StickC» в меню слева (или StampS3 для Cardputer).
Используйте поиск в верхней части приложения, чтобы найти «NEMO». Мои официальные сборки будут загружены пользователем «4x0nn» и будут содержать фотографии.
Нажмите «Загрузить».
Нажмите Записать
Установите инструменты ESP-IDF согласно руководству по началу работы с Espressif.
Откройте инструмент 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-портом, например COM4, COM11 в Windows. В Mac и Linux он обычно находится в /dev, например /dev/ttyUSB0, /dev/ttyACM0 или /dev/cu.usbserial-3.
M5Nemo-VERSION.bin должен быть версией, которую вы скачали из выпуска GitHub — желательно последней доступной версии.
Если вы хотите настроить NEMO или внести свой вклад в проект, вы должны быть знакомы со сборкой NEMO из исходного кода.
Установите Ардуино IDE. Я успешно использовал Arduino 1.8 в Linux и Windows и Arduino 2.2 в Windows.
Установите платы M5Stack для Arduino IDE: в меню «Файл» -> «Настройки» вставьте этот URL-адрес в текстовое поле «URL-адреса диспетчера плат». Используйте запятые между 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
IRRemoteESP8266
Раскомментируйте соответствующую строку #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.
Добавьте индекс M5Stack в ядро Arduino
Добавить библиотеки M5Stack
# Установите m5stack boardsarduino-cli core install m5stack:esp32 --additional-urls https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json --log-level alert --verbose# Установить необходимая библиотекаarduino-cli lib install M5Cardputer --log-level alert --verbose arduino-cli lib install IRRemoteESP8266 --log-level alert --verbose# Скомпилировать Sketcharduino-cli compile --fqbn m5stack:esp32:m5stack_cardputer -e --build-property build.partitions=huge_app --build-property upload.maximum_size= 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
Установить Докер
Запустите ./scripts/docker-build.sh
Запустите ./scripts/flash.sh --device=
# Это создаст образ со всеми необходимыми библиотеками на основе настроенной платформы, а также скомпилирует, выведет и объединит двоичные файлы# По умолчанию это будет скомпилировано для M5Cardputer в локали en-us, ./config/.env.M5Cardputer./ скрипты/docker-build.sh # Если вы хотите выбрать другую конфигурацию сборки, вы можете передать ее в качестве параметра. См. различные конфигурации в ./configs/./scripts/docker-build.sh ./config/.env.M5Cardputer# Двоичные файлы будут выводиться в ./buildls ./build# Это приведет к миганию вывода сборки на этапе сборки, он повторно использует образ контейнера из предыдущего шага. # По умолчанию это компилируется для M5Cardputer в локали en-us, ./config/.env.M5Cardputer./scripts/flash.sh --device=/dev/ttyusb0 # Если вы передали другую конфигурацию сборки, обязательно передайте ее в скрипт flash./scipts/flash.sh --device=/dev/ttyusb0 --build-config=./config/.env.M5Cardputer
Некоторые функции выводят отладочную информацию на последовательный монитор. Используйте функцию Serial Monitor в Arduino IDE или M5Burner для сбора этой информации. Возможно, там есть полезные советы. При составлении отчета об ошибке часто полезно включить вывод последовательного монитора.
Сбросьте EEPROM. На моделях с поддержкой настроек EEPROM используйте «Очистить настройки» в меню настроек или удерживайте кнопку «Далее» (боковая клавиша на моделях StickC, Tab или стрелка вниз на Cardputer) во время включения питания.
ИК-светодиод TV-B-Gone можно наблюдать через камеру смартфона, он излучает бледно-фиолетовый луч света. Если кажется, что он горит постоянно или вообще не мигает во время работы TV-B-Gone, что-то не так. Сообщить об ошибке. Известна проблема, из-за которой TVBG не работает после использования спама через Bluetooth или случайного спама через Wi-Fi.
Попробуйте просмотреть списки Wi-Fi с нескольких разных устройств, если вы подозреваете, что спам Wi-Fi не работает. Иногда сетевой менеджер Linux может видеть сети, которые не могут видеть смартфоны. Пожалуйста, укажите результаты этого тестирования, если сообщаете о проблемах со спамом в сети Wi-Fi.
С лета 2023 года Apple исправила множество устройств Bluetooth. Если вы тестируете AppleJuice, попробуйте некоторые типы устройств AppleTV, поскольку они, как правило, более надежны, поскольку Apple не фильтрует более слабые сигналы Bluetooth для этой платформы.
Пожалуйста, сообщайте об ошибках через GitHub Issues. Их легче отслеживать, чем комментарии к сообщениям в социальных сетях, записям M5Burner и т. д. Если что-то не работает, укажите:
Версия прошивки
Как вы его установили (M5Burner, скомпилировал самостоятельно, esptool.py)
Аппаратное обеспечение
В частности, какая функция и параметры не работают.
Как вы определили, что он не работает и какие проверки вы проводили. Укажите модели устройств и операционные системы, с которыми вы тестировали, а также любые ошибки или соответствующие выходные данные Serial Monitor, если применимо.
Если вы поймете, как исправить обнаруженную вами ошибку, пиар приветствуются!
Взносы приветствуются.
Пожалуйста, ознакомьтесь с проблемами проекта на GitHub. Там есть предложения по функциям и сообщения об ошибках, и я буду признателен за PR, посвященные этим вопросам.
При отправке запроса на включение укажите ветку разработки. Самый простой способ сделать это — разветвить ВСЕ ветки или просто создать ветку «разработки» в своей собственной ветке, а затем использовать GitHub для синхронизации ветки разработки.
Обратите внимание на то, как определенное оборудование (например, светодиод и часы реального времени) определены и включены в код, и постарайтесь придерживаться этих шаблонов. Кроме того, используйте определения для FGCOLOR, BGCOLOR, TEXT_SIZE* и псевдонима DISP при выводе данных на встроенный дисплей.
Не стесняйтесь добавлять свой github в массив участников как часть вашего запроса на включение.
В чем мне нужна помощь:
Улучшена локализация/перевод меню, а не только HTML-кода NEMO Portal.
Вероятно, нужен новый файл .h.
Возможность настройки в настройках и использование байта EEPROM для сохранения настроек.
Необоснованно используйте const
в реализации, чтобы строки локализации хранились только во флэш-памяти и напрямую из нее, а не использовали большое количество SRAM.
Инфракрасный
Новый «Регион» TV-B-Gone, полный дополнительных ИК-кодов, которые могут включать и выключать светодиодные ленты RGB, кондиционеры, вентиляторы, звуковые панели и т.п.
Способ преобразования или использования IR-кодов флиппер-ноль из кодовой базы NEMO.
Найдите способ считывания и отображения уровня заряда батареи на моделях Cardputer и StickC-Plus2, в которых отсутствует PMU AXP192. Код батареи в демонстрационной версии фабрики Cardputer может быть хорошим началом.
ЦЕЛЕВАЯ Деаутентификация только для определенной точки доступа. Спам-запросы Deauth будут отклонены.
Вещи, которые я, вероятно, не буду объединять:
Массовая рассылка спама о деаутентификации Wi-Fi
Bluetooth-спам, который потенциально может нарушить работу трекеров здоровья и фитнеса, умных часов и т. д.