Однажды забыл пароль к удаленному хитрому роутеру. Казалось бы что проще - сбрось настройки, а нет, нельзя, там куча настроек для проброса портов для видео-наблюдения. Логин админа и так знал, а вот с паролем приходится возиться. Тем более роутер удаленный и времени на его подбор полным полно.
Для подбора пароля я решил использовать родной мне язык - PHP, кто то конечно скажет бред - как так, это же медленно и как брутить из браузера - действительно, спорить не буду, по этому запускаю быстрее через консоль Linux командой
php brut.php
Вот оно и работает. Для работы большинства брутов нужны словари паролей, но тут боюсь словарь будет бесполезен, так как используется набор букв не известной длины.
Чтобы не тратить время на подбор одних и тех же паролей - я подключил MySQL (да, скрипт работает только на PHP5)
С помощью функции генерации случайной последовательности - мы генерируем строку случайной длины в некоторых пределах - от 6 до 10 символов, проверяем, есть ли данная строка в БД, если нет - добавляем и пробуем подключиться к роутеру по HTTP-авторизации по нужному порту к нужной страничке.
Данный подбор работает в заданном количестве циклов с паузой в 1 секунду. То есть каждую секунду времени подбирается 1 пароль - это сделано специально, чтобы роутер не повис и успевал отправить ответ. Если убрать задержку - то рано или поздно скрипт собьется со считыванием ответов. Чтобы увеличить скорость - можно запустить скрипт в нескольких сессиях. Или с нескольких разных серверов, но опять же будут разные БД и возможные дубли паролей.
Работа скрипта закончится в трех случаях - прервется связь с удаленным оборудованием, закончится цикл, найдется пароль. Так что его придется периодически перезапускать. В случае с подбором по словарю - брут не будет каждый раз начинаться с начала.
В MySQL в нужной базе надо создать табличку pwd с одной колонкой текстовой - pwd. Если PHP 7-й версии - то можно и не много исправить работу с MySQL и работать. Или вообще убрать подключение к БД.
Это не претендует на хакерский софт, так как ресурсы PHP скриптов действительно ограничены, скрипт был написан с благой целью - вернуть контроль на подотчетном роутере, а не для взлома всего в подряд.
По собственному опыту использования говорю - что пароль так и не подобрал, но до сих пор пытаюсь, было перебрано около 300 тысяч рандомных строк.
Вообще пытаться подбирать пароли можно не только к роутерам, но и к другим системам - IP-камерам, закрытым web-ресурсам, которые защищены простой http-авторизацией. Но такие методы защиты используются все реже, роутеры и прочее оборудование с выходом новых прошивок все умнеют и умнеют.
Рейтинг: 29
Обновлено: 21.11.2024