Академический Документы
Профессиональный Документы
Культура Документы
Содержание статьи
Партнер
01. Перехват и дешифровка ключа TACACS+
01.1 Шаг 1: MITM-атака
01.2 Шаг 2: Loki
02. Атаки на протокол CDP
02.1 Сбор информации
02.2 DoS-атака CDP Flooding
03. Злоупотребление динамическим транкингом
04. Сетевой паралич при атаке на VTP
04.1 Какие бывают роли в VTP-домене
04.2 Типы объявлений
05. Атаки на протокол EIGRP
05.1 Разведка в сети
05.2 Поддельные соседи EIGRP
05.3 Черная дыра
05.4 Злоупотребление K-значениями
05.5 Переполнение таблиц маршрутизации
06. MITM-атака через абьюз проприетарных FHRP-протоколов Cisco
06.1 Зачем нужен FHRP
06.2 Угон GLBP и перехват трафика
06.3 Угон HSRP и перехват трафика
07. ЭксплуатацияCisco Smart Install
08. Эксфильтрация конфигурации и перечисление через SNMP
08.1 cisco_config_tftp
08.2 snmp_enum
09. Постэксплуатация взломанного устройства
09.1 Bruteforce hashes
09.2 Cisco EEM
09.3 Lateral VLAN Segmentation Bypass
09.4 Configuration Enumeration
10. Выводы
За всю свою карьеру сетевого инженера я повидал немало сетей, где исполь-
зовалось оборудование Cisco. И в большинстве случаев это оборудование
работало с конфигурацией по умолчанию, что ставит локальную сеть
под большой удар со стороны потенциального нарушителя. Из этой статьи ты
узнаешь, какой кошмар может возникнуть в сетях Cisco, если к их настройке
отнеслись халатно.
WARNING
Статья имеет ознакомительный характер и предназначена
для специалистов по безопасности, проводящих тестирование
в рамках контракта. Автор и редакция не несут ответственности
за любой вред, причиненный с применением изложенной
информации. Распространение вредоносных программ,
нарушение работы систем и нарушение тайны переписки прес‐
ледуются по закону.
У этого протокола есть две версии: TACACS и TACACS+. Мы будем разбираться именно
с TACACS+.
Шаг 1: MITM-атака
Сперва нужно провести MITM-атаку, тут все зависит от обстоятельств и твоих предпочтений.
Для примера я реализую ARP-спуфинг в отношении TACACS-агента и TACACS-сервера.
Запускаем Ettercap:
Ettercap
Сканирование хостов
Начало ARP-спуфинга
Шаг 2: Loki
Теперь необходимо запустить Loki. Это специальный инструмент, созданный для анализа
безопасности протоколов L2/L3. По возможностям он не хуже той же популярной Yersinia
и составляет ей серьезную конкуренцию. Loki также умеет брутфорсить ключи TACACS.
В случае успеха брутфорса ключа в зашифрованном виде (обычно он зашифрован в формате
MD5) мы сможем получить доступ к оборудованию и расшифровать зашифрованный
TACACS-трафик.
Запускаем Loki:
Также нужно указать путь до словаря, чтобы провести брутфорс зашифрованного ключа.
Обязательно снимай галочку с опции Use Bruteforce, иначе Loki будет ломать пароль полным
перебором, не задействовав сам словарь.
Теперь нужно ждать, пока легитимный администратор войдет на устройство через сервер
TACACS. Предполагается, что сетевой администратор уже зашел, а мы, встав посередине
через ARP-спуфинг, перехватываем трафик. И при этом легитимные хосты не понимают, что
в их соединение вмешался кто‑то посторонний.
Отлично, нам удалось сбрутить ключ, теперь нужно расшифровать TACACS-трафик. Как я
и сказал, Wireshark умеет работать с зашифрованным трафиком TACACS при наличии ключа.
Использовавшийся баннер
В итоге у нас есть креды admin:secret1234, с которыми можно зайти на само оборудование.
Пожалуй, проверю их на валидность.
Вот таким образом можно атаковать TACACS+ и получать доступ к панели управления
сетевым оборудованием.
Сбор информации
По умолчанию CDP выполняет рассылку объявлений на все свои порты. Но что, если зло-
умышленник подключится в порт того же коммутатора? Воспользовавшись сетевым сниф-
фером, будь то Wireshark или tcpdump, он сможет извлечь ценную информацию о самом
устройстве — начиная его моделью и заканчивая версией Cisco IOS. Воспользовавшись этой
информацией, он сможет провести перечисление той же версии Cisco IOS и найти по ней уяз-
вимость, а затем проэксплуатировать ее.
Дамп CDP-трафика
Выставляем опцию flooding CDP table и начинаем атаку. Центральный процессор коммутато-
ра будет перегружен, как и таблица CDP-соседей, вследствие чего возникает «сетевой
паралич».
Начало атаки
По умолчанию порты коммутатора работают в режиме Dynamic Auto. Это говорит о том, что
коммутационный порт находится в режиме инициации транка со стороны соседнего ком-
мутатора. Пентестеру нужно физически подключиться к коммутатору и отправить кадр DTP
Desirable, который триггерит переключение порта в режим транка. Далее злоумышленник
сможет провести перечисление сетей VLAN с помощью анализа кадров STP и обойти сег-
ментацию сети VLAN — создав виртуальные интерфейсы.
INFO
Подробнее об атаке протокола DTP ты сможешь узнать из дру‐
гой моей статьи.
Для атаки понадобится скрипт, который будет генерировать кадр DTP Desirable. Для этого я
написал небольшую программу DTPHijacking.py. Ее исходный код открыт, можешь изучить
его.
Инструмент DTPHijacking.py
Строение DTP-инъекции
Хочу отметить, что Access/Desirable (0x03) указывает на то, что DTP-кадр имеет тип
Desirable, который велит порту переключиться в режим Trunk. А 802.1Q/802.1Q (0xa5) ука-
зывает на тип инкапсуляции 802.1Q.
INFO
Ни в коем случае не прерывай работу скрипта. Он инжектит DTP
Desirable каждые три секунды. Созданные динамически магис‐
тральные каналы на коммутаторе живут всего пять минут. Через
пять минут транк отваливается.
Анализ STP-кадров
Типы объявлений
• Summary Advertisement. Объявление VTP, которое сервер VTP отправляет каж-
дые 300 секунд (5 минут). В этом объявлении хранится имя домена VTP, версия про-
токола, отметка времени и значение MD5-хеша конфигурации.
• Subset Advertisement. Это объявление VTP, которое отправляется при каждом изме-
нении конфигурации VLAN.
• Advertisement Request — запрос от клиента VTP к серверу VTP на сообщение
Summary Advertisement. Обычно рассылается в ответ на сообщение о том, что ком-
мутатор обнаружил Summary Advertisement с бóльшим номером ревизии кон-
фигурации.
Атаку на протокол VTP можно провести только с транкового порта, поскольку объявления
VTP транслируются и принимаются только на транковых портах. Поэтому при пентесте пос-
ле атаки на DTP твоей следующей целью может быть VTP. Для атаки на домен VTP я буду
использовать Yersinia. С ее помощью я проведу VTP-инжект, который стирает всю базу дан-
ных VLAN и тем самым парализует сеть.
INFO
У протокола VTP есть целых три версии. В этой статье я проведу
атаку против первой версии — VTPv1.
Для стирания всей базы данных VLAN выбираем опцию deleting all VTP vlans.
Начало атаки на домен VTP
Сетевой паралич
INFO
Не забывай, что без предварительной установки соседства
легитимные EIGRP-маршрутизаторы не будут реагировать
на рассылаемые тобой сообщения EIGRP (будь то Hello,
Update или другие).
INFO
Для проведения атак на домены маршрутизации EIGRP я раз‐
работал несколько инструментов и поместил их в свой репози‐
торий EIGRPWN на GitHub. Там ты найдешь все инструменты,
которые я использовал для атаки на EIGRP в этой статье.
Разведка в сети
Подключение к домену маршрутизации позволяет нам провести перечисление и разведку
сетей и не тратить много времени на сканирование. Это способ значительно экономит твое
драгоценное время. К тому же при сканировании ты можешь спалиться перед системами
безопасности IPS/IDS. Как по мне, подключение к домену и перечисление — вектор атаки
на домены маршрутизации, который дарит тебе наибольший импакт.
eigrpd=yes
После этого нужно поправить файл vtysh.conf, добавив в него строчку, отвечающую за сох-
ранение конфигурации в один файл, чтобы конфигурации разных протоколов не раскидыва-
ло в разные файлы (например, eigrpd.conf, staticd.conf). Настраивается опционально.
service integrated-vtysh-config
Перед конфигурацией EIGRP на маршрутизаторе нужно узнать номер автономной системы
и понять, есть ли аутентификация.
INFO
Не забывай, что домен маршрутизации EIGRP может быть
защищен аутентификацией. Но у тебя все еще есть шанс под‐
ключиться к домену маршрутизации. Во время рассылки
пакетов приветствия в них также находятся криптографические
хеши. Если ты сумеешь извлечь эти хеши из дампа трафика
и сбрутить пароль, ты сможешь войти с этим паролем в домен
маршрутизации.
Inguz# conf t
Инструмент helloflooding.py
Аргументы скрипта:
Черная дыра
Суть этой атаки заключается в простой инъекции ложного маршрута, который отравит таб-
лицу маршрутизации. Трафик, допустим, сети 10.10.100.0/24 будет лететь в никуда,
вызывая отказ в обслуживании. Такую атаку называют Blackhole («черная дыра»). В качес-
тве инструмента для ее проведения выступит скрипт routeinject.py.
Инструмент routeinject.py
Аргументы:
В рамках этого примера я отправлю в «черную дыру» трафик, предназначенный для хоста
172.16.100.140/32.
Как мы видим, хост теряет связность до хоста 172.16.100.140/32 из‑за инъекции маршрута.
Злоупотребление K-значениями
Чтобы установить соседство EIGRP, маршрутизаторы используют специальные K-значения.
Они должны быть одинаковыми среди всех EIGRP-соседей. Если хотя бы одно из K-значений
не будет совпадать, возникнет авария в домене EIGRP и соседство будет разорвано.
Для проведения этой атаки нам послужит инструмент relationshipnightmare.py.
Инструмент relationshipnightmare.py
Начинаем атаку.
Аргументы:
Инструмент routingtableoverflow.py
Начинаем атаку.
Инженеры Cisco Systems разработали два FHRP-протокола — это GLBP и HSRP, пентест
которых я продемонстрирую дальше.
GLBP Weight — значение так называемого веса маршрутизатора в группе GLBP. GLBP Weight
определяет уровень нагрузки на маршрутизатор. Это значение «плавающее» и может
меняться в зависимости от нагрузки на физический канал (задействован механизм Object
Tracking), но можно настроить его и вручную.
GLBP Hijacking
Техника этой сетевой атаки заключается в том, чтобы навязать свое устройство в качестве
главного маршрутизатора с помощью инъекции вредоносного пакета GLBP с максимальным
значением приоритета. Успешная эксплуатация приводит к DoS- или MITM-атаке, в резуль-
тате которой ты сможешь перехватить трафик внутри сети, провести редирект или вызвать
DoS, так как ты захватываешь роль AVG-маршрутизатора. Достаточно собрать GLBP-пакет
с наивысшим значением приоритета 255 и направить его в сторону локальной сети.
Loki
Для демонстрации этой атаки я буду использовать Loki. Он выполнит вредоносную GLBP-
инъекцию с максимальным значением приоритета 255 и максимальным значением
веса 255. Но перед проведением атаки нужно изучить следующую информацию:
Начало атаки
После выполнения инъекции необходимо создать вторичный IP-адрес на нашем сетевом
интерфейсе со значением виртуального IP-адреса в домене GLBP. Также нужно задать 24-
битную маску. Так легитимный трафик будет заворачиваться на нас, поскольку исполь-
зующийся виртуальный IP-адрес в домене GLBP является адресом шлюза по умолчанию
для хостов.
Чтобы видеть не только входящий трафик, но и исходящий, нам понадобится небольшое
правило для Source NAT (masquerading):
Также нужно удалить маршрут по умолчанию на нашей машине и прописать новый, который
будет ходить через бывший AVG-маршрутизатор (его адрес — 10.10.100.100). Даже нес-
мотря на то, что мы отжали AVG-роль у маршрутизатора, он все равно сможет выполнить
маршрутизацию трафика.
Вот и все, теперь мы стали тем самым «человеком посередине»! Запущу инструмент net-
creds.py для анализа трафика, чтобы поискать важные данные. Например, незашифрован-
ный FTP-трафик или NTLM-хеши.
Вот таким образом можно перехватывать трафик внутри сети, атакуя домены GLBP.
HSRP Hijacking
Здесь абсолютно все то же самое, что с GLBP Hijacking. Нам необходимо провести вредонос-
ную HSRP-инъекцию с максимальным значением приоритета 255. Это позволяет захватить
роль Active-маршрутизатора, что открывает возможности для MITM-атаки. Но опять же
перед проведением атаки нам нужно изучить следующую информацию:
Как видно на скриншоте, в процессе HSRP задействованы только два маршрутизатора
с адресами 10.10.100.100 и 10.10.100.200.
Authentication Bypassing
Дамп трафика HSRP сохраняем в формате .pcap, чтобы эксфильтратор смог корректно
извлечь хеши MD5 из дампа.
Хеши я сбручу с помощью John the Ripper, укажем сами хеши в качестве входных данных. А с
помощью ключа --wordlist укажу путь до словаря:
Loki
Для атаки на протокол HSRP буду использовать все тот же Loki. У него, помимо прочего, есть
возможность инжекта с ключом, что помогает обходить аутентификацию. Раньше, в разделе
HSRP Hijacking, мы получили всю необходимую информацию о домене HSRP.
Запускаем Loki.
Начало атаки
Начало атаки
Как мы видим, теперь Active-роутером является наша атакующая система. Значение приори-
тета — 255.
После выполнения инъекции необходимо создать вторичный IP-адрес на нашем сетевом
интерфейсе со значением виртуального IP-адреса в HSRP-домене. Также нужно указать 24-
битную маску. Таким образом, легитимный трафик будет заворачиваться на нас, поскольку
применяемый виртуальный IP-адрес в домене HSRP — это адрес шлюза по умолчанию
для хостов.
Удаляем маршрут по умолчанию на нашей машине и прописываем новый, который будет
ходить через бывший Active-маршрутизатор (его адрес 10.10.100.100). Даже несмотря
на то, что мы отжали активную роль у маршрутизатора, он все равно сможет выполнить мар-
шрутизацию трафика.
После запуска утилиты я воспроизведу попытку пройти аутентификацию на сервере FTP
по адресу 172.16.100.140.
Вот так можно атаковать домен HSRP и перехватывать трафик. В принципе, все похоже
на GLBP.
Специально собранный пакет, который отправляется на порт TCP/4786, где активен Cisco
Smart Install, триггерит переполнение буфера, вследствие чего злоумышленник сможет:
Для эксплуатации этой уязвимости был разработан инструмент SIET (Smart Install
Exploitation Tool), он позволяет абьюзить Cisco Smart Install. В этой статье я покажу, как мож-
но считать легитимный файл конфигурации сетевого оборудования. Эксфильтрация кон-
фигов может быть ценна для пентестера, поскольку он узнает об уникальных особенностях
сети. А это облегчит жизнь и позволит найти новые векторы для атаки.
В качестве целевого устройства выступит «живой» коммутатор Cisco Catalyst 2960. На вир-
туальных образах нет Cisco Smart Install, поэтому попрактиковаться удастся только на нас-
тоящем железе.
Адрес целевого коммутатора — 10.10.100.10, CSI активен. Загружаем SIET и начинаем ата-
ку. Аргумент -g означает эксфильтрацию конфигурации с устройства, аргумент -i позволяет
задать IP-адрес уязвимой цели.
На самом деле SNMP может не только отслеживать состояние оборудования, но и полноцен-
но им управлять: дампить конфиги, изменять конфигурацию и так далее. Если пентестер
сможет перебрать значение community strings, он фактически получает доступ к оборудо-
ванию. Впрочем, все зависит от того, какую строку он сбрутит — на RO или на RW.
WWW
Работу протокола SNMP я описал в общих чертах, рекомендую
тебе изучить следующие материалы, чтобы было понятнее,
как работает SNMP под капотом.
Simple Network Management Protocol (Wikipedia)
Network Basics: What Is SNMP and How Does It Work?
cisco_config_tftp
С помощью фреймворка Metasploit, а именно модуля cisco_config_tftp можно выдернуть
конфигурацию устройства, зная значение community string. Строка, имеющая права на RW, —
private.
После запуска модуля в указанную папку будет выкачана конфигурация хоста с адресом 10.
10.100.10 (10.10.100.10.txt).
snmp_enum
С помощью этого модуля можно узнать информацию о целевом оборудовании. Все абсолют-
но то же самое: указываем COMMUNITY (кстати, подойдет даже строка с правами RO) и IP-
адрес целевого устройства.
Bruteforce hashes
Когда ты перечисляешь конфигурацию устройства, есть смысл попытаться сбрутить хеши
паролей. Вдруг тебе удастся сбрутить хеш пароля той учетной записи, которая имеет мак-
симальные привилегии. В Cisco IOS есть несколько типов паролей, которые хранятся
в зашифрованном виде. Табличка ниже сориентирует тебя по типам хешей, как брутить
и сколько времени понадобится.
Теперь приступаем к самому брутфорсу. В выводе команды show run ты наверняка нат-
кнешься на эти строчки.
Брутфорс хешей я проведу через утилиту John the Ripper. Немного отформатирую хеши, что-
бы «Джон» смог распознать сами хеши внутри файла, который мы будем подавать в качес-
тве входных данных.
Начинаем брутфорс. С помощью ключа --wordlist указываем путь до словаря. «Джон» сам
определит тип хешей внутри файла.
Cisco EEM
Cisco EEM — это, скажем так, «язык программирования», с помощью которого можно писать
сценарии для Cisco IOS и автоматизировать рутинные задачи. В рамках пентеста Cisco EEM
поможет нам спрятать созданного нами пользователя на взломанном устройстве.
Сначала нам нужно создать самого пользователя, который будет применяться для закрепле-
ния на оборудовании. Следи, чтобы у ника тоже был префикс hidden_. С помощью этого пре-
фикса мы и будем прятать созданного нами пользователя по маске | hidden:
У апплетов EEM много интересных функций, советую не ограничиваться этими способами.
Только не доведи бедного сетевика до инфаркта с этими апплетами!
Сначала нужно выяснить, к какому именно порту ты подключен. Это делается через CDP-
сообщения, либо можешь поискать порт по маске include.
Если вдруг CDP отключен, можно попробовать поискать порт по нашему MAC-адресу.
Создаем виртуальные интерфейсы и «вешаем» на них VLAN ID, а затем поднимаем их.
Теперь нужно запросить адрес по DHCP. Но если в твоем случае не будет такой возможнос-
ти, можно настроить адрес статически.
Для проверки связи инициирую ICMP-запросы до шлюзов по умолчанию для сетей VLAN 10,
20, 50, 60.
Связность до шлюзов
Связность до шлюзов
Configuration Enumeration
Классическое перечисление конфигурации
С помощью команды show run можно выяснить, какая конфигурация исполняется в данный
момент. Это раскрывает некоторые особенности инфраструктуры. Возможно, эта информа-
ция приведет тебя к более легкой «победе» во время пентеста. Например, вдруг ты обна-
ружишь использование AAA-сервера, что дает еще один вектор атаки.
CCAT
CCAT (Cisco Config Analysis Tool) — это специальный инструмент, созданный для анализа
файлов конфигурации оборудования Cisco на предмет брешей в безопасности. Она поможет
автоматизировать процесс поиска мисконфигураций безопасности и будет полезна как пен-
тестерам, так и сетевым администраторам.
ВЫВОДЫ
Вот какие кошмары могут возникнуть в сетях, где используется оборудование Cisco, если их
администрируют недальновидные сетевые инженеры. На это исследование я потратил пол-
тора месяца и был удивлен, сколько векторов существует при атаке на Cisco-based-сети.
Очень надеюсь, что мое исследование подарит пентестерам новые векторы атак, а сетевые
администраторы задумаются о защищенности своих сетей и примут меры.
Оцени статью:
in9uz
Security Engineer
t.me/in6uz
Теги: Cisco FHRP Взлом Выбор редактора Маршрутизаторы пентест сети Статьи
{} [+]
0 КОММЕНТАРИЕВ