![](/uploads/posts/2022-08/ettercap-scan.png)
Содержание статьи
- Перехват и дешифровка ключа TACACS+
- Шаг 1: MITM-атака
- Шаг 2: Loki
- Атаки на протокол CDP
- Сбор информации
- DoS-атака CDP Flooding
- Злоупотребление динамическим транкингом
- Сетевой паралич при атаке на VTP
- Какие бывают роли в VTP-домене
- Типы объявлений
- Атаки на протокол EIGRP
- Разведка в сети
- Поддельные соседи EIGRP
- Черная дыра
- Злоупотребление K-значениями
- Переполнение таблиц маршрутизации
- MITM-атака через абьюз проприетарных FHRP-протоколов Cisco
- Зачем нужен FHRP
- Угон GLBP и перехват трафика
- Угон HSRP и перехват трафика
- Эксплуатация Cisco Smart Install
- Эксфильтрация конфигурации и перечисление через SNMP
- cisco_config_tftp
- snmp_enum
- Постэксплуатация взломанного устройства
- Bruteforce hashes
- Cisco EEM
- Lateral VLAN Segmentation Bypass
- Configuration Enumeration
- Выводы
Перехват и дешифровка ключа TACACS+
TACACS+ (Terminal Access Controller Access Control System) — протокол, предназначенный для централизованного оперирования учетными записями, которые используются непосредственно для администрирования сетевого оборудования. Сервер TACACS+ решает, позволить или запретить доступ пользователю, который пытается войти в панель управления сетевым оборудованием.
У этого протокола есть две версии: TACACS и TACACS+. Мы будем разбираться именно с TACACS+.
«Плюсовая» версия отличается повышенным уровнем безопасности и интегрированным шифрованием. Также разделены функции AAA (аутентификация, авторизация и учет), и их можно использовать по отдельности.
Если злоумышленник сумеет встать посередине между клиентом и сервером TACACS, он сможет перехватить ключ для аутентификации в зашифрованном виде, а потом провести против него локальный брутфорс. То есть ты и брутфорсишь ключ, и в логах не палишься. И если тебе удастся сбрутить ключ, то ты сможешь получить доступ к сетевому оборудованию и расшифровать трафик в Wireshark. Да, Wireshark умеет работать с двумя версиями протокола TACACS. Предоставив «Акуле» ключ, ты сможешь дешифровать остальную часть данных, в которой хранится логин пользователя.
Шаг 1: MITM-атака
Сперва нужно провести MITM-атаку, тут все зависит от обстоятельств и твоих предпочтений. Для примера я реализую ARP-спуфинг в отношении TACACS-агента и TACACS-сервера.
- В качестве агента TACACS выступит коммутатор SW1 с IP-адресом
10.
.10. 100. 10 - В качестве сервера TACACS выступит TACACSGUI с адресом
10.
.10. 100. 70
ARP-спуфинг я реализую через утилиту Ettercap. Для начала необходимо переключить интерфейс в неразборчивый режим и разрешить маршрутизацию:
necreas1ng@Inguz:~$ sudo ifconfig eth0 promisc
necreas1ng@Inguz:~$ sudo sysctl -wnet.ipv4.ip_forward=1
Запускаем Ettercap:
necreas1ng@Inguz:~$ sudo ettercap -G
![Ettercap Ettercap](/uploads/posts/2022-08/ettercap-select-int.png)
В качестве прослушивающего интерфейса выступит eth0. Запустим сканирование хостов.
![Сканирование хостов Сканирование хостов](/uploads/posts/2022-08/ettercap-scan.png)
Target 1 будет хост с IP-адресом 10.
, а Target 2 — 10.
.
Проводим ARP-спуфинг против двух целей.
![Начало ARP-спуфинга Начало ARP-спуфинга](/uploads/posts/2022-08/ettercap-spoof.png)
Шаг 2: Loki
Теперь необходимо запустить Loki. Это специальный инструмент, созданный для анализа безопасности протоколов L2/L3. По возможностям он не хуже той же популярной Yersinia и составляет ей серьезную конкуренцию. Loki также умеет брутфорсить ключи TACACS. В случае успеха брутфорса ключа в зашифрованном виде (обычно он зашифрован в формате MD5) мы сможем получить доступ к оборудованию и расшифровать зашифрованный TACACS-трафик.
Запускаем Loki:
necreas1ng@Inguz:~$ sudo loki_gtk.py
Выбираем интерфейс для атаки.
![Loki. Выбор интерфейса Loki. Выбор интерфейса](/uploads/posts/2022-08/loki-select-interface.png)
Также нужно указать путь до словаря, чтобы провести брутфорс зашифрованного ключа. Обязательно снимай галочку с опции Use Bruteforce, иначе Loki будет ломать пароль полным перебором, не задействовав сам словарь.
![Настройка пути до словаря Настройка пути до словаря](/uploads/posts/2022-08/loki-tac-1.png)
Теперь нужно ждать, пока легитимный администратор войдет на устройство через сервер TACACS. Предполагается, что сетевой администратор уже зашел, а мы, встав посередине через ARP-спуфинг, перехватываем трафик. И при этом легитимные хосты не понимают, что в их соединение вмешался кто‑то посторонний.
![Локи обнаружил соединение TACACS Локи обнаружил соединение TACACS](/uploads/posts/2022-08/tacacs-seen.png)
Теперь нажимаем на кнопку CRACK и ждем, пока Loki ломанет пароль.
![Локи взломал ключ TACACS. Пароль: secret1234 Локи взломал ключ TACACS. Пароль: secret1234](/uploads/posts/2022-08/tacacs-hacked.png)
Отлично, нам удалось сбрутить ключ, теперь нужно расшифровать TACACS-трафик. Как я и сказал, Wireshark умеет работать с зашифрованным трафиком TACACS при наличии ключа.
![Скармливаем «Акуле» ключ Скармливаем «Акуле» ключ](/uploads/posts/2022-08/wireshark-select-tacacs-key.png)
Видим, какой баннер использовался.
![Использовавшийся баннер Использовавшийся баннер](/uploads/posts/2022-08/tacacs-decrypt-1.png)
Обнаруживаем логин пользователя admin
.
![](/uploads/posts/2022-08/tacacs-decrypt-2.png)
В итоге у нас есть креды admin:
, с которыми можно зайти на само оборудование. Пожалуй, проверю их на валидность.
![Успешная аутентификация на оборудовании SW1 Успешная аутентификация на оборудовании SW1](/uploads/posts/2022-08/sw1-logged.png)
Вот таким образом можно атаковать TACACS+ и получать доступ к панели управления сетевым оборудованием.
Атаки на протокол CDP
CDP (Cisco Discovery Protocol) — разработка инженеров Cisco Systems, протокол канального уровня, созданный для того, чтобы устройства могли обмениваться информацией. CDP может помочь сетевому администратору и облегчить процесс траблшутинга, но для злоумышленника... Сейчас выясним.
Сбор информации
По умолчанию CDP выполняет рассылку объявлений на все свои порты. Но что, если злоумышленник подключится в порт того же коммутатора? Воспользовавшись сетевым сниффером, будь то Wireshark или tcpdump, он сможет извлечь ценную информацию о самом устройстве — начиная его моделью и заканчивая версией Cisco IOS. Воспользовавшись этой информацией, он сможет провести перечисление той же версии Cisco IOS и найти по ней уязвимость, а затем проэксплуатировать ее.
![Дамп CDP-трафика Дамп CDP-трафика](/uploads/posts/2022-08/cdp-dump.png)
DoS-атака CDP Flooding
Если злоумышленник спровоцирует рассылку огромного количества CDP-объявлений, то сам флудинг вызовет перегрузку коммутатора и нарушит работу сети. Также будет переполняться таблица соседей CDP. Проводить эту атаку просто, поэтому не буду вдаваться в подробности.
На этот раз мы воспользуемся Yersinia:
necreas1ng@Inguz:~$ sudo yersinia -G
![Инструмент обнаружил коммутатор SW1 Инструмент обнаружил коммутатор SW1](/uploads/posts/2022-08/cdp-detect.png)
Выставляем опцию flooding CDP table и начинаем атаку. Центральный процессор коммутатора будет перегружен, как и таблица CDP-соседей, вследствие чего возникает «сетевой паралич».
![Начало атаки Начало атаки](/uploads/posts/2022-08/cdp-flood-select.png)
![Перегруженный центральный процессор коммутатора Перегруженный центральный процессор коммутатора](/uploads/posts/2022-08/cdp-cpu-overload.png)
![Переполняющаяся таблица CDP-соседей Переполняющаяся таблица CDP-соседей](/uploads/posts/2022-08/cdp-tables-overflowed.png)
Злоупотребление динамическим транкингом
DTP (Dynamic Trunking Protocol) — протокол канального уровня, призванный организовать автоматическую систему транкинга. Благодаря DTP коммутаторы сами решают, какой порт будет работать в режиме магистрального канала (Trunk), а какой нет. На мой взгляд, использование DTP говорит о некачественном дизайне сети. Транки должны быть строго там, где они нужны, и это должно быть задокументировано. Особенно смешно, когда сетевой инженер сам не знает, какой порт у него в транке, а какой в режиме доступа.
По умолчанию порты коммутатора работают в режиме Dynamic Auto. Это говорит о том, что коммутационный порт находится в режиме инициации транка со стороны соседнего коммутатора. Пентестеру нужно физически подключиться к коммутатору и отправить кадр DTP Desirable, который триггерит переключение порта в режим транка. Далее злоумышленник сможет провести перечисление сетей VLAN с помощью анализа кадров STP и обойти сегментацию сети VLAN — создав виртуальные интерфейсы.
Для атаки понадобится скрипт, который будет генерировать кадр DTP Desirable. Для этого я написал небольшую программу DTPHijacking.py. Ее исходный код открыт, можешь изучить его.
![Инструмент DTPHijacking.py Инструмент DTPHijacking.py](/uploads/posts/2022-08/dtptoolhelp.png)
necreas1ng@Inguz:~$ sudo python3 DTPHijacking.py --interfaceeth0
![Строение DTP-инъекции Строение DTP-инъекции](/uploads/posts/2022-08/dtp-inj-body.png)
Хочу отметить, что Access/
указывает на то, что DTP-кадр имеет тип Desirable, который велит порту переключиться в режим Trunk. А 802.
указывает на тип инкапсуляции 802.1Q.
Проанализировав STP-кадры, мы узнаем о существовании сетей VLAN 30 и 60.
![Анализ STP-кадров Анализ STP-кадров](/uploads/posts/2022-08/stp-enum-vlanid.png)
С данной информацией и наличием транк‑порта мы можем получить доступ к этим сетям VLAN, при этом обойдя VLAN-сегментацию. Необходимо будет создать виртуальные интерфейсы и назначить на них IP-адрес.
necreas1ng@Inguz:~$ sudo vconfig add eth0 30
necreas1ng@Inguz:~$ sudo vconfig add eth0 60
necreas1ng@Inguz:~$ sudo ifconfig eth0.30 up
necreas1ng@Inguz:~$ sudo ifconfig eth0.60 up
necreas1ng@Inguz:~$ sudo dhclient -veth0.30
necreas1ng@Inguz:~$ sudo dhclient -veth0.60
![Полученные адреса по DHCP для виртуальных интерфейсов Полученные адреса по DHCP для виртуальных интерфейсов](/uploads/posts/2022-08/dhcp-dtp-accept.png)
![Успешные ICMP-запросы в сторону шлюзов сетей VLAN 30 и 60 Успешные ICMP-запросы в сторону шлюзов сетей VLAN 30 и 60](/uploads/posts/2022-08/success-ping-dtp-after-bypass.png)
Таким образом, можно обойти VLAN-сегментацию и получить доступ к VLAN-сетям.
Сетевой паралич при атаке на VTP
VTP (VLAN Trunking Protocol) — протокол, созданный для централизованного управления сетями VLAN. Чтобы отслеживать актуальную базу данных VLAN, коммутаторы проверяют специальные номера ревизии. Когда происходит любое обновление таблицы, номер ревизии повышается на единицу. И если коммутатор обнаружит конфигурацию, у которой номер ревизии выше, он автоматически обновит свою базу данных VLAN.
Какие бывают роли в VTP-домене
- VTP Server. Коммутатор в роли VTP Server может создавать новые VLAN, удалять старые или менять информацию в самих VLAN. Также он занимается генерированием объявлений VTP для остальных членов домена.
- VTP Client. Коммутатор в этой роли будет получать специальные анонсы VTP от других коммутаторов в домене, чтобы обновлять базы данных VLAN у себя. Клиенты ограничены в возможностях создавать VLAN и даже не имеют права локально изменять конфигурацию VLAN. Иначе говоря, доступ read only.
- VTP Transparent. В этом режиме коммутатор не участвует в процессах VTP и может вести у себя полное и локальное администрирование всей конфигурации VLAN. Работая в прозрачном режиме, коммутаторы занимаются только передачей объявлений VTP от других коммутаторов, не затрагивая свою конфигурацию сетей VLAN. У таких коммутаторов номер ревизии всегда будет равен нулю, и против них атаку провести не получится.
Типы объявлений
- 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 и тем самым парализует сеть.
Для стирания всей базы данных VLAN выбираем опцию deleting all VTP vlans.
![Начало атаки на домен VTP Начало атаки на домен VTP](/uploads/posts/2022-08/vtp-start-attack.png)
![База данных VLAN перед атакой База данных VLAN перед атакой](/uploads/posts/2022-08/showvlanbrief.png)
![База данных VLAN после атаки База данных VLAN после атаки](/uploads/posts/2022-08/vtp-vlan-after.png)
![Сетевой паралич Сетевой паралич](/uploads/posts/2022-08/network-paralich.png)
Хост из сети VLAN 60 утратил связность до шлюза.
Атаки на протокол EIGRP
EIGRP (Enhanced Interior Gateway Routing Protocol) — протокол динамической маршрутизации. Является дистанционно‑векторным протоколом. При отсутствии аутентификации и конфигурации пассивных интерфейсов злоумышленник может вмешаться в процесс EIGRP-маршрутизации и вызвать отравление таблиц маршрутизации. Более того, сеть EIGRP (иначе говоря, автономная система) «плоская», и у нее отсутствует сегментация на какие‑либо зоны. Что это может значить для атакующего? Ну, если он проведет инъекцию маршрута, то, скорее всего, этот маршрут распространится по всей автономной системе EIGRP.
В первую очередь для атаки на автономную систему EIGRP необходимо установить соседство с легитимным маршрутизатором EIGRP, что открывает большие возможности, начиная от базовой разведки и заканчивая разными инъекциями.
![Как устанавливается соседство между EIGRP-маршрутизаторами Как устанавливается соседство между EIGRP-маршрутизаторами](/uploads/posts/2022-08/eigrpneighborships.png)
Для этого я воспользуюсь FRRouting. Это опенсорсное ПО, которое предназначено для создания маршрутизатора в Unix и Linux. FRRouting позволяет реализовать виртуальный маршрутизатор, поддерживающий протоколы BGP, OSPF, EIGRP, RIP и другие. Его достаточно развернуть на своей атакующей системе, и фактически ты сможешь притвориться легитимным роутером в домене маршрутизации. Как развернуть FRR на своей системе, я покажу в следующем разделе.
Разведка в сети
Подключение к домену маршрутизации позволяет нам провести перечисление и разведку сетей и не тратить много времени на сканирование. Это способ значительно экономит твое драгоценное время. К тому же при сканировании ты можешь спалиться перед системами безопасности IPS/IDS. Как по мне, подключение к домену и перечисление — вектор атаки на домены маршрутизации, который дарит тебе наибольший импакт.
Но для этого всего нужно развернуть FRRouting. Приступим.
Скачать:
Скриншоты:
Важно:
Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.