Атака VLAN Hopping возможна только в тех случаях, когда интерфейсы настроены в режиме транка
Автор: Haboob Team
Что такое VLAN Hopping?
VLAN (virtual local area network; виртуальная локальная сеть) – технология, позволяющая сегментировать устройства по различным признакам. Например, по принадлежности определенному отделу, типу пользователей, основному назначению. VLAN Hopping (или VLAN-переходы) представляет собой атаку на сеть посредством отсылки пакетов на порт, который обычно не доступен из указанной конечной системы.
Атака VLAN hopping может осуществляться следующим образом: если сетевой свитч установлен в режим авто-транка, злоумышленник меняет настройки так, что возникает «нужда» в постоянном канале связи (транке). То есть, на данном транковом порту становится разрешен доступ ко всем VLAN’ам.
Что такое DTP?
DTP (Dynamic Trunking Protocol; Динамический протокол транкинга) – фирменный протокол, используемый компанией Cisco, для автоматического согласования каналов связи между свитчами. Протокол DTP может использоваться для установления транкового соединения между свитчами динамически.
В протоколе DTP предусмотрены несколько режимов транкинга, описанных в таблице ниже.
Режим |
Описание |
dynamic desirable |
Порт свича, сконфигурированный в режиме dynamic desirable, будет активно пытаться преобразовать соединение в транковое соединение средствами протокола DTP. Если этот порт, подключенный к другому порту, умеет формировать транк, будет установлено транковое соединение.
Интерфейс, сконфигурированный в этом режиме, будет генерировать DTP-сообщения. Если свитч получает DTP-сообщения от другого свитча, предполагается, что другая сторона в состоянии обрабатывать фреймы с метками, и между двумя свитчами будет образовано транковое соединение. |
dynamic auto |
Порт свитча, сконфигурированный в режиме dynamic auto, может образовывать транковое соединение, если интерфейс другого свитча настроен на тот же режим и может взаимодействовать с каналом связи по протоколу DTP.
Интерфейс свитча, настроенный в этом режиме, не будет генерировать DTP-сообщения, а будет работать в пассивном режиме на прием DTP-сообщений от другого свитча. Если поступили DTP-сообщения с другого интерфейса, будет образовано транковое соединение. |
trunk |
Интерфейс свитча, сконфигурированный в режиме trunk, работает исключительно в режиме транка. Интерфейс в этом режиме может взаимодействовать с интерфейсом другого свитча для формирования транковой связи. |
nonegotiate |
В этом режиме отключена рассылка DTP-пакетов с интерфейса. Режим nonegotiate возможен только когда switchport интерфейса находится в режиме access или trunk. Протокол DTP отключен. |
access |
Интерфейс свитча, сконфигурированный в режиме access, не будет работать в режиме транкинга, и порт будет работать в режиме access. Во фреймах метки использоваться не будут. Порт в режиме access принадлежит VLAN’у. |
Для успешной реализации атаки свитч должен находится в режиме dynamic desirable, dynamic auto или trunk, чтобы была возможность отсылки DTP-пакетов. По умолчанию свитчи Cisco работают в режиме dynamic desirable.
Демонстрация атаки
В этой статье мы пройдемся по всем шагам, которые необходимы для успешной реализации атаки VLAN Hopping.
Необходимые компоненты для проведения теста:
· GNS3 (эмулятор сети).
· Kali Linux (система злоумышленника).
· Виртуальный хост (система жертвы).
· Свитч (cisco-iosvl2).
Этапы реализации атаки
У нас есть небольшая сеть из трех клиентов (злоумышленник и две жертвы), находящиеся в одной сети и соединенные при помощи свитча. Топология сети показана на рисунке ниже:
Рисунок 1: Тестовая топология сети для демонстрации атаки
У нас есть свитч, подключенный к PC-1 (IP: 172.16.0.3), PC-2 (IP: 10.0.0.4) и системе злоумышленника (IP: 172.16.0.5). В таблице ниже показано соответствие клиентов, IP-адресов и VLAN ID.
Имя |
IP |
VLAN ID |
PC-1 |
172.16.0.3 |
100 |
PC-2 |
10.0.0.4 |
200 |
Злоумышленник |
172.16.0.5 |
100 |
Таблица 2: Параметры клиентов сети
Предполагается, что злоумышленник получил доступ в сеть и находится в подсети VLAN 100 вместе с жертвой PC-1, у которой та же самая подсеть и VLAN. Соответственно, злоумышленник и PC-1 могут пинговать друг друга. Жертва PC-2 находится в другой подсети в VLAN 200 и не может пинговать PC-1 и злоумышленника. Попробуем выполнить пинг между Kali и PC-1.
Рисунок 2: Пинг системы злоумышленника
И наоборот:
Рисунок 3: Пинг системы PC-1
Попробуем выполнить пинг системы PC-2, которая находится в другом VLAN’е.
Рисунок 4: Пинг системы PC-2
Как мы и предполагали, пинг в другой VLAN не проходит.
На рисунке ниже показана перечень VLAN’ов, полученный из консоли свитча:
Рисунок 5: Перечень VLAN’ов, настроенных в свитче
Интерфейсы G0/0, G0/1 привязаны к VLAN 100, где находятся Kali и PC-1. Интерфейс G0/2 привязан к VLAN 200.
Как говорилось выше, для успешной реализации атаки свитч должен иметь стандартные настройки (то есть находиться в режиме Dynamic Desirable). Проверим конфигурацию интерфейса G0/0, который привязан к системе злоумышленника.
Рисунок 6: Параметры интерфейса G0/0
Как видно из рисунка выше, порт работает в режиме dynamic desirable, и, соответственно, VLAN’ы могут взаимодействовать друг с другом.
Теперь мы можем воспользоваться утилитой yersinia для активации режима транка, но вначале посмотрим статус VLAN’а.
Рисунок 7: Перечень интерфейсов и статусов
После того как мы удостоверились, что VLAN’ы настроены корректно, включаем отладочный режим для просмотра входящих DTP-пакетов.
Рисунок 8: Включение отладочного режима
Теперь запускаем утилиту yersinia, переходим во вкладку DTP и приступаем к реализации атаки.
Рисунок 9: Интерфейс утилиты yersinia
Выберите пункт enabling trunking и нажмите ОК.
Рисунок 10: Настройка параметров
Теперь переходим в консоль свитча и видим, что пакеты начали пересылаться:
Рисунок 11: Отслеживание пересылаемых DTP-пакетов
Смотрим параметры интерфейсов.
Рисунок 12: Обновленные параметры интерфейсов
На рисунке выше видно, что интерфейс G0/0 находится в режиме транка и, соответственно, мы можем перепрыгнуть в другие VLAN’ы.
На рисунке ниже видно, что на интерфейсе G0/0 разрешены все VLAN’ы.
Рисунок 13: Параметры интерфейса G0/0
Теперь в Kali мы можем выполнить следующие команды:
Рисунок 14: Настройка интерфейсов
Мы добавили новый интерфейс VLAN и назначили ID равным 200. Затем подняли интерфейс eth0.200 и привязали IP-адрес.
Теперь мы можем выполнить пинг системы PC-2.
Рисунок 15: Пинг системы PC-2
Как видно из рисунка выше, пинг, который ранее был недоступен, сейчас успешно выполнен, и мы смогли перепрыгнуть в другой VLAN (200)!
Методы защиты
Атака VLAN Hopping возможна только в тех случаях, когда интерфейсы настроены в режиме транка. Чтобы защититься от подобных атак, нужно принять следующие меры:
Убедитесь, что порты не настроены на автоматическую работу в режиме транка. Отключите протокол DTP при помощи команды switchport nonegotiate.
НИКОГДА не используйте VLAN 1.
Отключите и перенесите в неиспользуемый VLAN неиспользуемые порты.
Всегда используйте специальный VLAN ID для всех транковых портов.
Ссылки
- https://www.cisco.com/c/dam/global/en_ae/assets/exposaudi2009/assets/docs/layer2-attacksand-
mitigation-t.pdf
- https://en.wikipedia.org/wiki/VLAN_hopping
- https://searchsecurity.techtarget.com/definition/VLAN-hopping
Собираем и анализируем опыт профессионалов ИБ