WiFi модуль ESP8266 ESP-01

imageNodeMCU — платка за 200 рублей, которая после небольшого шаманства превратится в повторитель WiFi.

Ссылка на товар: в Aliexpress.

Описание

Эта платка должна быть знакома радиолюбителям, играющим с Arduino. Подключается к компьютеру через USB, имеет несколько цифровых входов-выходов и управляется контроллером в виде сборки ESP8266-12F. Эта сборка является WiFi-модулем, и может работать в режиме точки доступа, клиента и одновременно в обоих режимах, являясь клиентом для одной сети и точкой доступа для другой.

Вот платка во всей красе:

image

image
image
image
image
image
image
image
image
image

О том, как эту плату используют радиолюбители в интернете написано немало. Но далеко не все знают, что эта штука может работать еще и удлинителем сети WiFi, или «повторителем».

Повторитель WiFi

Как Вы могли догадаться, стандартная прошивка ничего такого не позволяет. Но есть один пытливый немец Martin Ger, который разработал свою прошивку, превращающую NodeMCU в повторитель WiFi.

Кто умеет читать по английски, вот ссылка на оригинальную инструкцию вместе с файлами прошивки: https://github.com/martin-ger/esp_wifi_repeater

А кто не умеет, читает дальше)

Краткая инструкция или «7 шагов к счастью»

1. Подключтить модуль NodeMCU к USB порту и запомнить какое имя COM порта ему присвоено.

2.  Два файла для прошивки 0x00000.bin и 0x20000.bin надо скачать отсюда и запомнить куда сохранили. (В устаревших версиях прошивки второй файл назывался 0x00000.bin и 0x10000.bin)

3. Далее, кто использует Windows, понадобится программа ESPFlashDownloadTool. Скачать можно с официального сайта производителя модулей ESP8266. Для этого надо скачать продукт с названием «Flash Download Tools (ESP8266 & ESP32)».

4. После распаковки архива надо запустить исполняемый файл «flash_download_tools_*.exe» (на месте звездочки указана версия программы), нажать на кнопку «ESP8266 DownloadTool». Когда программа откроется, надо выбрать для прошивки оба файла 0x00000.bin и 0x20000.bin, и указать для них адреса 0x00000 и 0x20000. Выбрать тычку 32MBit. В списке COM: выбрать номер COM порта платы. В поле BAUD выбрать 115200. В общем, надо сделать как на следующей картинке.

image

Теперь можно нажать кнопку START и ждать когда запишется прошивка.

5. После окончания процесса записи плату надо настроить. Есть три способа:

а) (Человеческий способ) Подключиться к WiFi сети устройства (ssid: «MyAP», сеть без пароля) и зайти через Веб-интерфейс по адресу http://192.168.4.1/.

б) (Способ для бородатых админов, а также для случаев, когда надо восстановить доступ при неправильной конфигурации или забытом пароле. Подключаться надо по USB) Стандартной программой HyperTerminal на виртуальный COM-порт платы со скоростью 115200 бод.

в) (Способ для бородатых админов, надо подключиться к WiFi сети «MyAP») В консоли «cmd» надо выполнить команду:

telnet 192.168.4.1 7777

6.  Далее, в зависимости от выбранного способа предыдущего пункта:

а) Тут вроде всё понятно 🙂 но вот первоисточник.

image

STA Setting — сюда вводят данные роутера, который раздаёт интернет. Тычка Automesh означает режим повторения, при котором плата будет расширять сеть с тем же самым SSID роутера и его же паролем. Это удобно, и в этом режиме можно несколько повторителей выстроить в удлиняющую цепочку. Если нужен именно этот режим, то ставим эту галку (Automesh) и нажимаем кнопку Connect — на этом настройка будет закончена. Если же нужен режим с другим названием новой сети, то галку не ставим, а тычем Connect и после перезагрузки устройства продолжаем настройку дальше: AP Settings — сюда пишем название (SSID) и пароль (Password) для новой сети, выбираем нужное шифрование сети. Дальше тычем Set. Опционально можно поиграться с Lock (заблокировать конфигурацию от изменений под пароль), но это лучше только после того, как всё заработает.  Дальше жмём Restart.

б, в) В консоли выбранной программы пишем и выполняем семь команд:

set ssid DLINK3783 set password 123456 set ap_ssid REPEATER set ap_password PASSWORD show save reset

Где DLINK3783 — название сети вашего основного WiFi-роутера, а 123456 — пароль этой сети; REPEATER — название новой точки доступа, PASSWORD — её пароль.

После команды reset платка перезагрузится, подключится к точке доступа «DLINK3783» и создаст собственную точку доступа «REPEATER».

7. Теперь, если в квартире есть угол в котором WiFi от модема ловится плохо, или не ловится вообще, то надо поместить эту NodeMCU где-то посередине между модемом и этим углом, затем подключиться к той же самой сети или сети «REPEATER», в зависимости от ранее выбранного режима Automesh . Всё, проблема решена.

Всяких команд и функций очень много. Проект «живой». Периодически выпускаются новые прошивки с исправленными ошибками и новыми функциями.

Wi-Fi jammer, или глушилка WiFi, — это устройство, которое предназначено для отключения беспроводных устройств от точки доступа. Зачем это нужно? Можете вообразить себе как дружеский розыгрыш, так и криминальное применение: злоумышленник может отключить от сети камеры слежения или другое важное оборудование. В сегодняшней статье мы разберемся, какие есть дешевые варианты WiFi-глушилок (аппаратных деаутентификаторов), как ими пользоваться и как защититься от подобных атак.

Еще по теме: Как сделать акустический сейф

Как работает глушилка WiFi

В отличие от настоящих глушилок, которые перебивают сигнал радиопередатчика своим более сильным сигналом, деаутентификатор работает на программном уровне. Он реализует атаку типа «отказ в обслуживании», отправляя на роутер фрейм деаутентификации от имени подключенных к сети устройств. Поскольку этот фрейм никак не шифруется, глушилке достаточно выведать MAC-адреса устройств, поснифав трафик в сети.

Обычно деаутентификация — это часть комплексной атаки на сеть. Данная атака используется при создании «злого двойника» точки доступа или для перехвата хендшейка, что затем позволяет расшифровать пароль. Однако глушилка WiFi может быть полезной и сама по себе.

В последнее время большую популярность приобрели недорогие и миниатюрные платы с поддержкой программной платформы NodeMCU. Они построены на модуле ESP8266, который реализует работу с Wi-Fi по стандарту 802.11 b/g/n на частоте 2,4 ГГц. Сейчас встречается два варианта подобных плат: с чипом CP2102 американской компании Silicon Labs или с китайским CH340.

Версии NodeMCU

Данные платы позиционируются как девайсы для прототипирования: на их основе технари создают автоматизированные системы, контролируемые по WiFi. Тема сама по себе очень интересная, но нас в данный момент интересует другое — возможность применения NodeMCU для проведения атак.

Для полноценного мониторинга и инъекции пакетов ESP8266 не подходит в силу технических ограничений, но его можно пустить в ход в качестве деаутентификатора — что и привело к появлению соответствующих прошивок. Год назад хороший человек с псевдонимом Spacehuhn выложил первую из них, но с тех пор появились и другие версии — с дополнительными возможностями. Впрочем, прежде чем переходить к программной части, определимся с выбором устройств.

В рамках этой статьи я буду демонстрировать процесс на примере платы китайского производителя Dstike: на ней стоит ESP8266 и есть режимы работы в качества клиента (P2P) и точки доступа (soft-AP). Управлять платой можно со телефона или любого другого устройства с WiFi.

Отмечу, что работоспособность программного обеспечения не зависит ни от чипа, ни от платы — вы можете выбрать любой вариант по вашему усмотрению. Одних только продуктов Dstike несколько вариантов в разном исполнении и для использования в разных ситуациях. Все их объединяет одно — возможность глушить сети.

Разновидности устройств Dstike

Deauther Wristband — браслет со встроенным дисплеем, батареей и переключателем. Удобное устройство для быстрого доступа к панели управления.

Портативный Jammer

Deauther Power Bank — с модифицированным контроллером заряда; управление осуществляется через специальную панель. На контроллере есть разъем для подключения внешней антенны. Аккумуляторы в комплект не входят. Это незаметное устройство, которое можно с легкостью оставить где-нибудь и использовать удаленно.

Power bank
Контроллер заряда

Deauther OLED V3.5 — в этом варианте вы дополнительно получите разъем для подключения внешней антенны и держатель для аккумулятора на 18650 мА · ч. Управляется устройство при помощи кнопок и переключателя, а вывод поступает на экран, что позволяет использовать этот вариант без дополнительного оборудования.

Готовый jammer с экраном

Главное преимущество этих гаджетов — в возможности выбора определенной сети или всех сразу в радиусе действия устройства. Отмечу на всякий случай, что для проведения атак пароль от WiFi не потребуется!

Установка Deauther 2.0

Начнем с Deauther 2.0 — той самой прошивки, которую разработал Spacehuhn. В его репозитории на GitHub вы можете выбрать версию для конкретной платы.

Файлы с расширением bin — это скомпилированные скетчи. Их нужно устанавливать на плату через специальный загрузчик. Но если захотите, то в архивах с исходным кодом вы найдете библиотеки и скетчи, которые можно поставить через Arduino IDE.

Загрузка .bin

Если вы выбрали вариант с загрузкой бинарника, то для начала запускайте программу NodeMCU Flasher. Скачать ее можно в репозитории NodeMCU.

Устанавливаем драйверы для CP2102 либо для CH340. После этого подключаем плату к компьютеру, открываем программу NodeMCU Flasher, выбираем порт COM в диспетчере устройств в разделе «Порты (COM и LPT)». Теперь переходим во вкладку Config, жмем на шестеренку и выбираем скачанный файл .bin.

Программа для прошивки

После добавления файла в строке слева появится его путь. Переходите во вкладку Operation и нажимайте на Flash — прошивка после этого будет загружена в плату.

Загрузка через Arduino IDE

Если вам удобнее устанавливать через Arduino IDE, то процесс слегка другой. Первым делом точно так же качаем драйверы (CP2102, CH340). Затем открываем Arduino IDE и в меню «Файл» ищем «Настройки», нажимаем на «Добавление ссылки для менеджера плат» и вставляем две ссылки:

Все сохраняем.

Добавление ссылок

Открываем вкладку «Инструменты» и выбираем пункт «Менеджер плат» из меню «Плата: …».

Добавление плат

Выбираем «Внесены» и устанавливаем arduino-esp-8266-deauther и esp8266.

Установка пакетов

Открываем папку со скетчем и библиотеками, переходим в «Инструменты». Настройки должны стоять как у меня на скриншоте.

В строке «Плата» выбирайте из списка ESP8266 Deauther Modules.

Загрузка прошивки

В строке Flash size выбираем свой модуль. Прошивку и объем памяти ставьте как на картинке ниже.

Версии модулей

Далее загружаем прошивку.

После включения плата создаст точку доступа. Подключайтесь к ней и заходите по адресу 192.168.4.1 или deauth.me. Вы попадете в конфигуратор и увидите предупреждение.

Предупреждение

В разделе конфигурации в строке LANG указываем ru для включения русского языка в веб-интерфейсе. Чтобы настройки вступили в силу, нужно нажать на «Сохранить» и перезагрузить устройство. Теперь оно готово к работе.

Обзор возможностей и настройки

Давайте быстро пройдемся по приложению и посмотрим, на что теперь способна наша платка.

Настройки

Если подключить глушилку по последовательному порту, то с помощью команд можно управлять джеммером. Эту функцию можно отключить в настройках, если убрать галочку SERIAL.

Команды для управления по последовательному порту

  • scan [] [-t ] [-c ] [-ch ]
  • show [selected] []
  • select [] []
  • deselect [] []
  • add ssid [-wpa2] [-cl ]
  • add ssid -ap [-cl ] [-f]
  • add ssid -s [-f]
  • add name [-ap ] [-s]
  • add name [-st ] [-s]
  • add name [-m ] [-ch ] [-b ] [-s]
  • set name
  • disable random
  • load [] []
  • save [] []
  • remove
  • remove [all]
  • attack [beacon] [deauth] [deauthall] [probe] [nooutput] [-t ]
  • attack status []
  • sysinfo
  • clear
  • format
  • print []
  • delete [] []
  • replace
  • copy
  • rename
  • write
  • set
  • reset
  • chicken
  • reboot
  • info
  • send deauth
  • send beacon [wpa2]
  • send probe
  • led []
  • led <#rrggbb> []
  • draw

Через 600 секунд после начала атак они автоматически прекратятся. Если не хотите, чтобы это происходило, то можете вручную настроить отключение по времени, задав значение в меню ATTACKTIMEOUT: укажите 0, и атаки перестанут автоматически отключаться.

Если в разделе сканирования нажать Scan APs, то глушилка находит все точки доступа Wi-Fi. Выбираете одну или несколько сетей, и можно переходить в раздел атак. Режим Deauth отключает все устройства от выбранной сети. Режим Beacon позволяет создавать одновременно до 60 точек доступа.

Сканирование и виды атак

В разделе SSIDs создаются точки доступа для атаки Beacon.

Создание точек доступа

В прошивке предусмотрена возможность подключения дисплея — для версии устройства с ним. Но при желании вы можете и сами припаять к плате экран и кнопки, а также обеспечить автономное питание, чтобы превратить ее в независимое устройство.

Также разработчики прошивки, помимо самой WiFi-глушилки, продают и устройство, которое позволяет его обнаруживать.

Детектор

Авторы периодически обновляют прошивку и добавляют новые функции, так что следи за апдейтами!

Wi-PWN

Рассмотрим аналогичную прошивку Wi-PWN, которую разработал Сэм Денти (samdenty99). Он улучшил творение Spacehuhn и добавил функции детектора деаутентификации, а также создал сопутствующее приложение для Android. В итоге использовать Wi-PWN удобнее, чем Deauther 2.0.

После скачивания и распаковки архива потребуется прошить плату и установить приложение на телефон. В папке вы найдете программу ESP8266Flasher. Запустите ее, выбирайте COM-порт и в разделе Config — прошивку (она находится по пути *Wi-PWN-masterarduinoWi-PWN). Теперь жмите Flash во вкладке Operation.

С телефона подключаемся к плате по Wi-Fi.

Сеть Wi-Fi

Открываем скачанное приложение, соглашаемся с правилами, указываем имя и пароль сети. После настройки подключаемся к новому WiFi.

Настройка точки доступа и завершение установки

В приложении есть несколько вкладок с говорящими названиями:

  • Scan — раздел с поиском и выбором нескольких точек доступа;
  • Users — функция сканирования определенного Wi-Fi на наличие подключений и создание собственных «пользователей»;
  • Attack — атаки аналогичны версии Spacehuhn, но при клонировании сетей максимальное число пользователей — 48 вместо 60 (столько было в ранних версиях Deauther);
  • Detector — функция, которая позволяет сканировать каналы и определять глушилки;
  • Settings — настройка сервера WiFi (имя, пароль сети). Здесь же можно включить клиент WiFi и настроить параметры сканирования и атаки.

Защита от WiFi-глушилок

NodeMCU — это дешевое, универсальное, мощное и компактное решение для деаутентификации. Повторить весь проект можно быстро и без особых усилий. А раз это может сделать кто угодно, то неплохо подумать и о защите.

Большинство популярных роутеров используют стандарты IEEE 802.11b/g/n, которые подвержены глушению. Если хотите исключить такую вероятность, то ищите роутер с поддержкой стандарта 802.11w, который полностью защищает пользователей от глушилок WiFi.

В некоторых роутерах есть защита от спама, но она работает только с подключенными к сети устройствами, а WiFi jammer к сети не подключается. Если у вашего роутера есть защита от спама, которая работает и с неподключенными устройствами, то советую ее активировать!

Вам может быть интересно: Секретные документы АНБ: Шпионские устройства

ВКонтакте Twitter Facebook OK Telegram WhatsApp Viber

Внешний вид родного модуля WiFi.

image

Для теста я все-таки подключил его через другой роутер. Управление через приложение работает, а вот управлять кондиционером без приложения нет возможности, через какой облачный сервис работает не ясно, личного кабинета никакого нет. Как итог, Haier, как и многие производители техники, создали свою железку со своим приложением без возможности интеграции с другими системами автоматизации (без специальных модулей и оборудования). В итоге я решил сделать свой модуль WiFi со всеми характеристиками от известного всем персонажа.

За основу был взят ESP8266 12F, который будет работать напрямую с моим сервером по протоколу MQTT. На сервере установленIOBroker, который выступает так же в качестве MQTT сервера.

Оставалось понять протокол обмена с самим кондиционером. Изучив родной модуль и схемы блоков управления предыдущих моделей стало понятно, что модуль WiFi общается с кондиционером через обычный UART с уровнями TTL. Подключив параллельно линии RX/TX переходник UART/USB и управляя кондиционером из приложения и с пульта, прочитал все данные.

Фото платы родного модуля.

image

На плате видно DC/DC преобразователь на 3.3 В и преобразователи логических уровней. Экран снимать не стал, что под ним неизвестно.

image

1 — FF cтартовый байт 2 — FF cтартовый байт 3 — 22 — HEX Длина пакета без двух стартовых байт и контрольной суммы 4 — 00 5 — 00 6 — 00 7 — 00 8 — 00 9 — 01 10 — 01 — при запросе, 02 — в ответе 11 — 4D — при запросе, 6D — в ответе 12 — 5F — при запросе 13 — 00 14 — 1A — 26 градусов, 1B — 27, Текущая температура 15 — 00 16 — 00 17 — 00 18 — 00 — при запросе, 7F-в ответе 19 — 00 20 — 00 21 — 00 22 — 00 23 — 00 24 — 00 — smart, 01 — cool, 02 — heat, 03 — вентиляция, 04 — DRY, 25 — 00 26 — 00 — max, 01 — mid, 02 — min, 03 — auto — FanSpeed 27 — 00 28 — 00 — выкл., 01 — верхний и нижний предел вкл. 02 — левый/правый вкл. 03 — оба вкл 29 — 00 — блокировка кнопок пульта выкл, 80 блокировка вкл. 30 — 00 — power off, x1 — power on, (1x ) — Компрессор? x9 — Health 31 — 00 32 — 00 — fresh off, 01 — fresh on 33 — 00 34 — 00 35 — 00 36 — 00 — 16 градусов, 01 — 17 0E — 30 градусов. Установленная температура 37 — Контрольная сумма. Просто сумма всех байт без двух стартовых.

FF FF 0A 00 00 00 00 00 01 01 4D 02 5B Включение FF FF 0A 00 00 00 00 00 01 01 4D 03 5C Выключение FF FF 0A 00 00 00 00 00 01 03 00 00 0E Блокировка пульта FF FF 0A 00 00 00 00 00 01 01 4D 01 5A Опрос состояния

image

Разводим печатную плату. Компоновка платы сделана для установки в корпус от родного WiFi модуля.

image

image

На фото ниже тестовая плата.

image

Заказал наконец то платы из китая:

imageimageimage

Код написан в среде Arduino. Актуальная версия доступна на GitHub.

Добавлено 29.08.2017:

На данный момент я отказался на обработку протокола в самой ESP. Я написал для ioBroker’а драйвер, а ESP используется как шлюз Telnet to Serial.

Прошивка модуля (ESP8266)

Прошивка написана в среде Arduino IDE, поэтому первым делом нужно установить ее. Скачиваем последнюю версию с официально сайта. После установки нужно добавить поддержку плат ESP. Для этого идем меню «Файл» — «Настройки» и в строке «Дополнительные ссылки для Менеджера плат» добавляем следующую ссылку — http://arduino.esp8266.com/stable/package_esp8266com_index.json

Нажимаем «Ок«, теперь идем в «Инструменты» —  «Плата» — «Менеджер плат«, находим в списке «esp8266 by ESP8266 Community» и устанавливаем пакет.

Если планируется прошивать модуль по OTA (по воздуху, не вынимая модуль из кондиционера), то необходимо установить Python версии 2.7.x https://www.python.org/downloads/ . ВАЖНО! При установке нужно включить опцию Add python.exe to Path

Открываем файл прошивки (последняя версия ESP8266.TelnetToSerial тут). Выбираем нужную плату:

image

Выбираем порт — последовательный порт COM* (где * номер порта к которому подключен переходник USB-TTL) или сетевой порт для прошивки модуля по OTA.

Для прошивки через последовательный порт подключаем переходник USB-TTL к модулю согласно распиновке модуля и переходника. Контакты RX и TX подключаются перекрестно т.е. RX-TX, TX-RX.

image
Распиновка модуля haier

Устанавливаем на модуль перемычку и подаем на модуль питание, при этом модуль входит в режим программирования. В Arduino IDE жмем кнопку «Загрузка» и дожидаемся завершения прошивки. После завершения прошивки нужно снять перемычку и перезагрузить модуль. На этом прошивка модуля закончена.

После прошивки ESP8266 ставим модуль в кондиционер. Если загружена первая версия прошивки с MQTT, то на сервере MQTT автоматически создаются топики:

image

Если используем прошивку ESP8266.TelnetToSerial, то необходимо в IoBroker установить драйвер haier, прописать в настройках драйвера IP адрес и порт нашего модуля и можно пользоваться.

image

Панель управления кондиционером на веб странице vis iobroker.

image

Кроме управления с веб страницы, организовано управление голосовыми командами, а так же через драйвер Telegram для IOBroker.

На текущий момент изготовлена  третья ревизия платы. Написана прошивка поддерживающая все модели кондиционеров Haier, включая модели с новым протоколом (например Haier Elegant AS25NHPHRA/1U25NHPFRA). Пример работы веб интерфейса новой прошивки на gif’ке ниже. Так же есть возможность управлять кондиционером через MQTT либо WebSocket.

image
третья ревизия платы модуля.

Используемые источники:

  • https://alipad.ru/wifi-repeater-nodemcu/
  • https://spy-soft.net/wifi-jammer/
  • https://blog.instalator.ru/archives/433

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации