Шпионский сканер беспроводных сетей на базе NodeMCU
B1ACK_GARANT![](/file/775f33723ac1d57c1658c.png)
Я открываю новый сумасшедший цикл статей, который пригодится тебе для тестирования на проникновение.
Привет, Аноним. Я открываю новый цикл статей, который позволит тебе изящно получать информацию о беспроводных и проводных сетях. Повторяя мои действия, ты сможешь разработать устройства, которые можно поместить в карман, подвесить к дрону, а также использовать в автономном режиме на предприятии с удаленным доступом. Это будет сумасшедший цикл статей, который пригодится тебе для тестирования на проникновение.
Представь, ты идешь в шортах и футболке на экскурсию в компанию или большую энергостанцию. У тебя нет возможности взять телефон и ноутбук, но очень нужно узнать какие Wi-Fi сети и какие устройства используются внутри. Можно реализовать атаку, найдя открытые устройства или принтеры, которые можно при следующей возможности поэксплуатировать. Часто администраторы не изменяют название точки, которые включает марку и модель. Таким образом, они оставляют нам хлеб)
Вступление
Для сборки необходимо плата Node MCU (из личного опыта лучше покупать на базе чипа CP2102. По сравнению он не такой проблематичный как на базе чипа CH340. Последний более чувствительный к питанию), модуль для SD/micro SD карт и соединительные провода.
![](https://tgraph.io/file/50bf82d38d1accb8cdcef.png)
Если зайти в любое общественное место в большом городе, можно сразу обнаружить достаточное количество открытых точек доступа. Это вполне нормально, когда кафе и рестораны устанавливают их для своих посетителей. Но для компаний и организаций это неприемлемо. Дело в том, что многие открытые точки в организациях могут создаваться сетевыми устройствами, которые имеют беспроводной интерфейс. Если название остается по дефолту, то можно узнать модель и марку устройства.
После этого уже можно искать уязвимости для конкретной версии. Проводить подключения, подбирать пароли для учетных записей и развивать другие направления для атак. Я думаю вы поняли, что можно сделать, имея информацию о собранных точках доступа.
Поиск открытых сетей
Иногда могут возникать сложности при сборе информации на охраняемом периметре компании. Например, не всегда есть возможность вплотную подойти и просканировать Wi-Fi сети с лептопа. Поэтому чтобы сделать работу максимально без подозрений – будем использовать устройство на базе платформы NodeMCU. В базовой версии, при обнаружении открытой сети, светодиод будет мигать.
В рамках нашей разработки необходимо определить, есть ли вообще сигнал. Если да, то какой алгоритм шифрования используется. Наше устройство определяет алгоритмы шифрования с помощью кодов. Хороший ликбез по алгоритмах шифрования и основная информация доступна по ссылке:
TKIP (WPA) = 2; WEP = 5; CCMP (WPA) = 4; Аналогия с WPA2 NONE = 7; AUTO = 8;
Подготовка оборудования и прошивка платы
Для сборки нам нужна плата NodeMCU и USB-кабель. Кроме того, необходимо установить Arduino IDE и настроить ее для работы с NodeMCU. Кто уже работал с платой, можно пропустить этот шаг. В меню "Инструменты>Плата" опускаемся вниз и выбираем наш модуль NodeMCU. Загружаем файл прошивки в директорию Book/ESP_scan. После подключения платы, нажимаем на кнопку "Загрузка". Процесс будет выглядеть как на скриншоте.
![](https://tgraph.io/file/7b36d3a5e3e532c0127a0.png)
По ходу прошивки светодиод будет часто мигать. После удачного завершения запустим "Монитор порта" во вкладке "Инструменты" или нажатием комбинации Ctrl+Shift+M. Откроется окно, куда будут выводиться данные о сетях.
![](https://tgraph.io/file/4f3f74165456378c3ab03.png)
Кстати, монитор порта можно проводить с телефона. Можно скачать приложение для мониторинга порта на телефон (ищется по «USB Serial Monitor»). Главное, установить в настройках значение Baud rate в 9600, иначе монитор будет выдавать мусор.
Финальная версия NodeMCU+SD карта
Дело в том, что не всегда есть возможность слушать порт с телефона или ноутбука. Для этого потребуется модуль для SD карты. Суть работы будет заключаться в том, что каждые 5 секунд будет проводиться сканирование и результаты будут сохраняться на SD-карту. Можно использовать microSD карты с адаптером. Для нормальной работы карта должна быть отформатирована в FAT32.
![](https://tgraph.io/file/86d817300b5a0077abb86.png)
Распиновка в таком порядке:
D2==CS 3V==VCC G==GND D5==SCK D6==MISO D7==MOSI
![](https://tgraph.io/file/59d499f555887cdfed550.png)
Код
Если вам интересно посмотреть на отдельные части с кодом и описанием, то для этого есть отдельный файл. Там можно понять, как работает алгоритм и какие части за что отвечают.
Если вас интересует финальный файл ― его можно найти по ссылке. После соединения компонентов подключаем все части, соединяем и прошиваем как перед этим. После завершения можно приступать к тестированию.
Тестирование
![](https://tgraph.io/file/818209dcda99d4e1055f4.png)
Можно посмотреть пример реального тестирования. Информация сделана за один период (5 секунд). Очень важно, что сканирование проводиться каждые 5 секунд и результаты выгружаются отдельно. Таким образом, при передвижении все точки доступа будут точно получены. Это хорошо, например, для тех мест, где беспроводные точки имеют небольшой радиус покрытия.
![](https://tgraph.io/file/7479e117b25bab0b5365f.png)
Заключение
Устройство позволяет просканировать сети и получить всю информацию о беспроводных сетях. Это достаточно полезно для первого этапа сбора информации. Потом, эту информацию нужно хорошо проанализировать и искать дальнейшие векторы атак. Очень круто, что сканер не занимает много места и легко помещается в карман (в зависимости от размера павербанка или другого устройства питания).
В следующей статье я расскажу тебе о настоящем монстре при незаметном подключении, который позволяет получить 100% контроль над сетью.
![](/file/495f46e0342be30c7d994.jpg)
![](/file/2c1f79988353468f46706.png)