## Главное окно программы и его составляющие.

Рис 1. Главное окно программы.

Главное окно программы состоит из основной верхней панели, таблиц сканирования, и индикаторов состояния. Также имеются два контекстных меню - основное и табличное, последнее вызывается правой кнопкой мыши по таблице.

### Содержание

- 1. Верхняя панель главного окна
  - 1.1. Главная кнопка
  - 1.2. Логотип Router Scan
  - 1.3. Макс. кол-во потоков
  - 1.4. Таймаут соединения
  - 1.5. Список портов для сканирования
  - 1.6. Список IP диапазонов для сканирования
  - 1.7. Поиск по таблице
  - 1.8. Главное меню
  - 1.9. Данные для входа
  - 1.10. Модули сканирования
- 2. Таблицы сканирования
  - 2.1. Работа с таблицами
  - 2.2. Переключатель таблиц
  - 2.3. Опции таблицы
  - 2.4. Таблица сканирования
  - 2.5. Выбор колонок таблицы
  - 2.6. Меню таблицы
- 3. Индикаторы состояния
  - 3.1. Полоса состояния
  - 3.2. Строка состояния

### Верхняя панель главного окна

Служит для управления основными функциями программы.

#### • Главная кнопка

Поначалу кажется простой кнопкой, но на самом деле она многофункциональна. При запуске сканирования разделяется на две кнопки - для остановки и приостановки сканирования. Но также может выполнять ряд других функций:

- `[Start scan]` - запускает процесс сканирования IP диапазонов.
- `[Stop scan]` - останавливает сканирование.
- `[||]` - ставит сканирование на паузу.
- `[>>]` - возобновляет сканирование.
- `[Force stop]` - принудительно прекращает сканирование.
- `[Stop import]` - прерывает импорт файла в таблицу.
- `[Stop upload]` - прерывает выгрузку данных в базу 3WiFi (при автоматической выгрузке по завершению сканирования).

#### • Логотип Router Scan

Открывает официальную страницу проекта. Никаких секретных функций не содержит, поверьте мне. ;)

#### • Макс. кол-во потоков

Этот параметр устанавливает максимальное количество потоков, то есть сколько устройств может сканироваться параллельно и одновременно.

#### • Таймаут соединения

Устанавливает порог ожидания соединения с устройством в миллисекундах.

Примечание: В зависимости от провайдера, скорости и стабильности соединения, эти параметры придётся варьировать интуитивно, для получения стабильных результатов сканирования без потерь соединения. Если вам кажется, что программа задействует недостаточно потоков, и ваша система может отдать больше ресурсов, попробуйте изменить режим сканирования в настройках программы.

#### • Список портов для сканирования

Определяет, какие TCP порты будут проверяться при сканировании IP диапазонов.

`[+]` позволяет добавить новый порт в конец списка.
`[-]` удаляет выбранный порт из списка.

Все порты сканируются с использованием обычного протокола HTTP/1.0, за исключением портов `443`, `4343` и `8443` - они сканируются по HTTPS с использованием библиотеки OpenSSL.

Для увеличения угла обзора в сети, вы также можете добавить в список порты `81`, `88`, `8000`, `8081`, `8082`, `8088`, `8888`, и подобные.

Также список портов можно изменить, редактируя файл `ports.txt`.

#### • Список IP диапазонов для сканирования

Здесь можно выбрать, что именно вы хотите сканировать. В отличие от предыдущего списка, данный список имеет полноценный редактор.

`[E]` открывает окно редактора IP диапазонов.
`[+]` позволяет добавить один новый диапазон в конец списка.
`[-]` удаляет выбранный диапазон из списка.
`[x]` полностью стирает весь список диапазонов, включая комментарии (будьте осторожны, это необратимое действие!).

Также список диапазонов можно изменить, редактируя файл `ranges.txt`.

Рис 2. Редактор IP диапазонов.

В верхней части окна редактора имеется подсказка синтаксиса для диапазонов, а в нижней - управляющие кнопки:

- `[OK]` - проверяет и сохраняет введённые диапазоны.
- `[Cancel]` - закрывает окно без сохранения изменений.
- `[Import from file...]` - позволяет импортировать диапазоны из текстового файла.

Старайтесь избегать использования большого числа отдельных IP адресов в списке, Router Scan оптимизирован для сканирования диапазонов IP адресов.

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

Примечание: Изменение диапазонов и портов недоступно во время процесса сканирования.

#### • Поиск по таблице

Позволяет выполнять поиск текста в выбранной таблице в двух режимах - поиск ячейки вперёд или назад относительно текущей, либо вывод всех результатов поиска в таблицу.

- `Text to search` - собственно искомый текст.
- `[] Case sensitive` - учитывать регистр букв.
- `[] All` - включить вывод всех результатов поиска (две кнопки поиска объединятся в одну).
- `[« Back]` - поиск ячейки назад/вверх.
- `[Forward »]` - поиск ячейки вперёд/вниз.
- `[Search all]` - поиск всех совпадений и вывод результатов в таблицу Search Results.

#### • Главное меню

Открывается по нажатию кнопки `< Main Menu >`.

Рис 3. Главное контекстное меню.

- `User Manual (English)` - открывает данное руководство по эксплуатации на английском.
- `User Manual (Russian)` - открывает данное руководство по эксплуатации на русском.

- `Settings and Tweaks` - открывает окно настроек программы.
- `Edit Filter Rules...` - открывает окно редактора правил фильтрации.
- `Edit IP Exclusions...` - открывает окно редактора исключений IP/портов из сканирования.
- `Choose columns...` - открывает окно выбора колонок таблицы.

- `WPS PIN Companion` - открывает окно помощника WPS PIN.
- `Upload to 3WiFi` - открывает окно загрузчика 3WiFi.
- `Enable TCP debug logging` - включает логирование TCP запросов/ответов.

#### • Данные для входа

Данная функция позволяет указать пару логин/пароль, которая будет проверена на устройстве в первую очередь. Проверка осуществляется для всех поддерживаемых устройств, не зависимо от метода авторизации.

#### • Модули сканирования

- Router Scan (main) - основной модуль сканирования, отвечает за подбор пароля к веб интерфейсу устройства, и за получение информации.

- Detect proxy servers - обнаруживает прокси серверы протокола HTTP, и оповещает в случае удачи - в колонку имени/типа устройства в скобках будет дописано "proxy server", а в колонку WAN IP Address - реальный внешний адрес прокси сервера. Для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст "Proxy Good Check".

- Use HNAP 1.0 - проверяет хост на наличие поддержки протокола Home Network Administration Protocol v1.0 и уязвимостей в нём. В случае обнаружения поддержки запишет "HNAP Info" в столбец имени/типа устройства. Если уязвимость будет обнаружена - запишет в колонку авторизации текст "HNAP bypass auth", а также полученные настройки беспроводной сети. Примечание: Если до этого основной модуль успешно подобрал пароль авторизации, то модуль HNAP не будет задействован. Для принудительной проверки уязвимости HNAP, отключите основной модуль и пересканируйте устройство.

Последующие модули добавлены в качестве бонуса, и к роутерам прямого отношения не имеют.

- SQLite Manager RCE - определяет уязвимые сервера SQLite, в которых имеется уязвимость выполнения произвольного PHP кода. Если SQLite Manager будет найден на узле, ссылка на него будет записана в колонку комментариев. Результат проверки уязвимости будет выведен в колонку имени/типа устройства. Если уязвимость будет обнаружена, то для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст "SQLite Good Check".

- Hudson Java Servlet - определяет уязвимые сервера Hudson CI (а также Jenkins CI), в которых имеется уязвимость выполнения произвольного Java кода. Если Hudson/Jenkins CI будет найден на узле, ссылка на него будет записана в колонку комментариев. Результат проверки уязвимости будет выведен в колонку имени/типа устройства. Если уязвимость будет обнаружена, то для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст "Hudson Good Check".

- phpMyAdmin RCE - выполняет поиск phpMyAdmin на сканируемом узле, после чего проверяет его на уязвимость выполнения произвольного PHP кода (эксплойт). Если phpMyAdmin будет найден на узле, ссылка на него будет записана в колонку комментариев. Результат проверки уязвимости будет выведен в колонку имени/типа устройства. Если уязвимость будет обнаружена, то для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст "PMA Good Check".

Также, важно знать, что модули работают друг за другом - они могут перезаписать информацию в колонках, которую получил предыдущий модуль.

### Таблицы сканирования

Содержат результаты сканирования, а также предоставляют различные возможности по работе с ними. Всего в программе три таблицы:

- `Realtime Stats` - в данную таблицу выводятся все результаты сканирования в реальном времени.
- `Good Results` - содержит результаты сканирования, удовлетворяющие фильтру успешных результатов.
- `Search Results` - сюда помещаются результаты поиска (если включён поиск всех совпадений).

#### • Работа с таблицами

Исходя из технической реализации, в любой момент времени у пользователя есть различные права на чтение или запись в ту или иную таблицу.

У каждой таблицы есть скрытые свойства, которые в программе явно не отображаются, но их можно определить по доступным и заблокированным пунктам контекстного меню:
- `*Read Only*` - таблица доступна только для чтения, внести изменения не получится, но можно экспортировать в файл.
- `*Read/Locked*` - возможна запись в ячейки таблицы, но добавление/удаление строк запрещено.
- `*Read/Write*` - можно вносить любые изменения в таблицу.

Поскольку в процессе сканирования потоки обработки привязаны к строкам таблицы Realtime Stats, она может находиться в двух состояниях: если сканирование запущено - *Read/Locked*, а если остановлено - *Read/Write*. Таким образом, импорт и удаление строк доступно только при остановленном сканировании. Но редактирование комментариев разрешено.

Таблица Good Results периодически регенерируется, исходя из данных первой таблицы, с применением фильтра успешных результатов, поэтому она всегда находится в состоянии *Read Only*. Из данной таблицы также невозможно вызвать остановку или перезапуск обработки устройства, поскольку потоки к ней не привязаны.

Таблица Search Results всегда находится в состоянии *Read/Write*, исходя из своего назначения. Для неё доступны все функции чтения и записи, но также недоступно управление потоками.

#### • Переключатель таблиц

Используется для переключения между таблицами для просмотра и работы с результатами сканирования.

#### • Опции таблицы

Позволяют установить различные параметры для выбранной таблицы:

- `[] Follow last line` - по мере поступления новых данных, таблица будет автоматически пролистываться вниз до конца.
- `() Default tab for AutoSave` - выбранная таблица будет использоваться для автоматического сохранения результатов сканирования (если оно включено).

При этом таблица Search Results данных опций не имеет, исходя из своего назначения.

#### • Таблица сканирования

Содержит результаты сканирования, и имеет следующую структуру:

- `IP Address`
- IP адрес устройства в сети.

- `Port`
- порт устройства, к которому удалось подключиться.

- `Time (ms)`
- задержка между попыткой соединения и его установлением (в миллисекундах).

- `Status`
- текущее состояние потока обработчика.

- `Authorization`
- авторизация на устройстве (обычно1 пара логин/пароль, которую удалось подобрать).

- `Server name / Realm name / Device type`
- имя/тип устройства, который программе удалось определить (или не удалось).

- `Radio Off`
- если на устройстве есть радио модуль (беспроводной интерфейс) и он выключен, то сюда будет записана пометка `[X]`.

- `Hidden`
- если точка доступа включена, но вещание имени сети запрещено (скрытая точка), то сюда будет записана пометка `[X]`.

- `BSSID`
- аппаратный адрес2 точки доступа, используемый для вещания.

- `ESSID`
- имя беспроводной сети.

- `Security`
- тип защиты передачи данных в беспроводной сети.

- `Key`
- ключ шифрования/пароль3 беспроводной сети.

- `WPS PIN`
- WPS пин код беспроводной сети.

- `LAN IP Address`
- локальный IP адрес устройства.

- `LAN Subnet Mask`
- маска локальной сети устройства.

- `WAN IP Address`
- внешний IP адрес.

- `WAN Subnet Mask`
- маска внешней сети.

- `WAN Gateway`
- шлюз по умолчанию.

- `Domain Name Servers`
- серверы разрешения доменных имён.

- `Latitude`
- координата широты4 точки доступа (в градусах).

- `Longitude`
- координата долготы4 точки доступа (в градусах).

- `Comments`
- комментарии к устройству.

Сноски:
1 В некоторых случаях здесь может быть указан способ получения информации/обхода авторизации (например, при использовании модуля HNAP).
2 Если устройство не имеет беспроводного адаптера, в данной строке будет указана пометка `<no wireless>`, а в других столбцах, относящихся к беспроводным параметрам будут прочерки.
3 При использовании устройством проверки подлинности типа 802.1X или EAP, в данном столбце будет записан IP адрес и порт Radius сервера, и пароль к нему.
4 Имеется возможность получать координаты беспроводных сетей, используя услуги провайдеров Wi-Fi геолокации, поддерживаемых программой.

#### • Выбор колонок таблицы

Рис 4. Окно выбора колонок.

Выбрать отображение колонок в таблице можно из главного меню программы.

#### • Меню таблицы

Открывается по нажатию правой кнопки мыши по таблице.

Рис 5. Контекстное меню таблицы.

- `Copy selected cell` - копирует текст выделенной ячейки (или ячеек) в буфер обмена. Если выделено несколько столбцов, текст в буфере будет разделён табуляциями, если несколько строк - переносами строки.
- `Copy device URL` - помещает в буфер обмена URL ссылку на устройство, в соответствии с IP адресом и портом. Также может внедрять в ссылку данные авторизации. Если выделено несколько строк - в буфере обмена будет несколько ссылок, разделённых переносами строки.
- `Copy device info` - помещает в буфер обмена всю собранную информацию об устройстве. Если выделено несколько строк - в буфер обмена будет записана вся полученная информация о нескольких устройствах.

- `Import scan table` - позволяет открыть1 в программе ранее сохранённые результаты сканирования. Поддерживается импортирование только двух форматов: `TXT` и `CSV`.
- `Export scan table` - позволяет сохранить содержимое активной таблицы в файл. Поддерживаемые форматы экспорта описаны в параметрах вывода данных.

- `Delete Row` - удаляет выделенные строки из активной таблицы (если есть такая возможность).
- `Edit comments` - позволяет редактировать комментарии для выбранного устройства (или сразу нескольких).

- `Open in browser` - открывает выбранное устройство в интернет браузере по умолчанию. Также вы можете выбрать браузер вручную.
- `Lookup IP Address` - открывает в браузере информацию об IP адресе устройства, используя сервис 2IP.ru.

- `Locate AP by BSSID` - определяет физическое местоположение точки доступа, используя услуги выбранного провайдера геолокации.
- `Locate AP by IP` - определяет местоположение по IP адресу (менее точно), когда первый способ не работает.
- `View in Google Maps` - открывает в браузере сервис карт Google Maps для отображения точки на мировой карте.
- `View in Яндекс.Карты` - открывает в браузере сервис карт Яндекс.Карты для отображения точки на мировой карте.

- `Reset` - останавливает обработку выбранных устройств.
- `Force reset` - принудительно завершает обработку выбранных устройств (пункт доступен после попытки остановить обработку).
- `Rescan` - запускает обработку устройства (или нескольких устройств) заново.

Сноски:
1 При импортировании данных в таблицу, можно либо загрузить чистые данные, либо дописать новые данные в конец таблицы:

Рис 6. Запрос на добавление данных к существующим.

Если хотите дописать новые данные в конец таблицы - нажмите `[Да]`. При нажатии кнопки `[Нет]` будет предложено очистить таблицу:

Рис 7. Запрос на очистку таблицы.

При нажати на кнопку `[Да]` таблица будет очищена, после чего пойдёт операция импорта данных. Нажатие на кнопку `[Нет]` отменит операцию импорта.

### Индикаторы состояния

Отображают текущее состояние программы и сканирования.

#### • Полоса состояния

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

#### • Строка состояния

Первый сегмент строки состояния отображает последнее выполняемое или уже выполненное действие.

- `Active threads` - выводит количество активных потоков сканирования. Первое число указывает на кол-во потоков, которые в данный момент пытаются установить соединения с устройствами, а второе число - сколько потоков уже соединилось и осуществляет обработку устройств.

- `Total found` - общее количество найденных устройств в таблице Realtime Stats.

- `Good found` - количество найденных устройств с успешными результатами в таблице Good Results.

- `Work time` - сколько прошло времени в процессе сканирования. В приостановленном состоянии время не учитывается.

- `Total time` - выводит приблизительный расчёт, сколько уйдёт времени на сканирование всех диапазонов.

Читайте далее: Настройки программы