Переход в соседний VLAN: Атака 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

Источник: securitylab.ru

Новые Технологии