Призрачный Ethernet & Обход NAC – Практический обзор

Призрачный Ethernet & Обход NAC – Практический обзор

wr3dmast3r|RA

Всем привет! С вами wr3dmast3r, и сегодня мы узнаем как использовать наше устройство в режиме призрака на уровне ethernet.

Введение

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

Возможно, вы бы предпочли, чтобы команда SOC не обнаружила вас, как только вы подключите свой ненадежный ноутбук к сети. Или, может быть, какой-то 802.1X или другой контроль доступа к сети требует аутентификации еще до того, как вас допустят в локальную сеть.

Какой бы ни была причина, сокрытие вашей личности в сети на уровне Ethernet дает значительные преимущества при внутренней оценке безопасности.

Одним из практических способов добиться этого является использование метода, который мы любим называть «Ethernet Ghosting», когда законное устройство в сети используется в качестве маски для маскировки связи с устройством злоумышленника.

Это достигается путем маскировки пакетов от устройства злоумышленника и их объединения с пакетами от законного устройства по одному общему физическому каналу. С точки зрения upstream и сети присутствует только одно устройство — по одному физическому кабелю передаются пакеты для одного MAC-адреса.

Сложная часть обычно заключается в объединении трафика двух устройств, использующих один и тот же MAC-адрес, по одному каналу. Типичные сетевые коммутаторы с трудом справляются с этой довольно необычной (и несколько не соответствующей спецификации) настройкой.

Как мы это делаем

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

Речь идет о коммутаторе Skunk, который позволяет перенастраивать сетевые потоки через интерфейс командной строки USB.

Вот идея: сначала мы будем использовать Skunk для перехвата пакетов от законного устройства, чтобы получить его MAC-адрес (этот шаг можно пропустить, если MAC-адрес легко доступен). Как только мы узнаем MAC-адрес законного устройства, мы можем продублировать его на нашем «фантомном» устройстве, а затем перенастроить Skunk, чтобы объединить трафик обоих вместе.

Уровень проводов

Наш Skunk будет подключен к трем точкам: законному устройству («легитимному»), атакующему устройству («призраку») и upstream. Однако пока не подключайте «призрачное» устройство! Во-первых, нам нужно настроить коммутатор, чтобы избежать утечки нежелательных пакетов в сеть. В этом примере мы будем использовать следующую настройку:

  • Port 0: legit
  • Port 1: ghost (don’t connect just yet!)
  • Port 3: upstream

На картинке выше вы можете видеть, что на данный момент мы подключили только upstream. Приступим к настройке коммутатора.

Получение «легального» MAC

Прежде чем мы подключим «призрачное» устройство, нам нужно настроить Skunk, чтобы иметь разные VLAN для «легальных» и «призрачных» портов. Upstream должен находиться в той же VLAN, что и «легитимный». Это гарантирует, что наше «призрачное» устройство не будет видно в сети, пока настройка не будет полностью завершена.

Это делается с помощью следующей команды:

skport 1 access 10

Давайте запустим терминал (обычно мы используем Putty) и подключим USB-кабель от Skunk к нашему компьютеру.

Как объясняется в Руководстве пользователя Skunk, интерфейс работает на скорости 19200 baud. Давайте откроем сеанс на соответствующем последовательном порту, используя эту скорость передачи данных, и введем команду выше.

Теперь мы можем безопасно подключить наше устройство-призрак к Skunk (оранжевый кабель на порту 1 в этом примере). Затем мы настраиваем Skunk для зеркалирования исходящих пакетов (sniff_rx) с «легитимного» на «призрачный» (sniff_out), используя следующие команды:

skport 0 sniff_rx
skport 1 sniff_out

С помощью простого инструмента захвата пакетов, такого как Wireshark или TCPdump, работающего на фантомном устройстве, мы можем обнаружить законный MAC-адрес из перехваченных пакетов.

Время призраков

Теперь самое интересное. Мы настраиваем наше устройство-призрак на использование того же MAC-адреса, что и легальное устройство (которое мы только что получили на предыдущем шаге). Изменение MAC-адреса на адаптере Ethernet может быть выполнено различными способами в зависимости от конкретной ситуации.

В Windows некоторые сетевые адаптеры предоставляют параметр расширенной конфигурации для переопределения MAC-адреса.

В Linux можно использовать различные методы, но простой классический — через утилиту ifconfig («ifconfig NAME hw ether MAC_ADDR»).

При запуске виртуальной машины это также можно сделать на уровне гипервизора. Например, в VirtualBox конфигурация мостового адаптера может быть настроена на использование любого MAC-адреса.

Поскольку наше устройство-призрак теперь имеет тот же MAC-адрес, что и законный, мы можем перенастроить Skunk для объединения трафика с обоих устройств по единому «upstream» каналу.

Для этого мы начинаем с отключения предыдущего обнюхивания. Затем мы зеркалируем входящий трафик для легитимного (порт 0) на призрачный (порт 1). Наконец, мы возвращаем порт-призрак в общую VLAN, совместно используемую легитимным и upstream:

skport 0 sniff_tx
skport 1 sniff_out
skport 1 access 1

Отсюда и законный, и призрак теперь имеют действующий доступ к сети, используя один и тот же MAC-адрес и физический канал. Устройство-призрак теперь эффективно невидимо в сети.

Все сделано! Устройство-призрак теперь может получить доступ к сети под прикрытием легального устройства. Поскольку законный по-прежнему имеет нормальный доступ к сети, большинство решений NAC, включая 802.1x, будут продолжать работать прозрачно, поддерживая активным порт коммутатора upstream. Тем не менее, пожалуйста, найдите время, чтобы просмотреть примечания ниже. Они охватывают важную дополнительную информацию, касающуюся использования этого метода дублирования Ethernet. Если вы начинаете испытывать некоторые проблемы, в частности, на законном устройстве, раздел «Соответствие TCP и флаг RST» может помочь.


Дополнительные примечания

Не подключайте призрака слишком рано!

При подготовке к настройке Ethernet-призрака важно помнить, что, пока мы не дойдем до последних шагов (призрак имеет тот же MAC-адрес, что и законный), подключение нашего «ненадежного» устройства к сети рискует спровоцировать событие обнаружения и привести к отключению вышестоящего коммутационного порта. Вот почему мы рекомендуем начать с назначения порта-призрака Skunk другой VLAN перед подключением устройства-призрака. Затем, как только для фантомного MAC-адреса будет установлено то же значение, что и для законного, мы можем вернуть фантомный порт обратно в основную VLAN, как описано в последнем шаге процесса («skport 1 access 1« ).

Отключите звук вашего устройства

Даже при успешно настроенном Ethernet-фантомировании IDS или SOC все равно могут обнаружить вас, если ваше устройство постоянно выдает пакеты, раскрывающие вашу личность. Одним из распространенных примеров является раскрытие имени хоста устройства через локальные протоколы разрешения имен, такие как WINS/NBNS (служба имен NetBIOS).

Прежде чем настраивать все это, найдите минутку, чтобы подумать (или даже проверить с помощью анализатора пакетов), что ваше устройство пропускает в сеть. Убедитесь, что все ненужные службы отключены, а имя хоста не открыто, если вы хотите уменьшить занимаемую площадь.

Соответствие TCP и флаг RST

Некоторые операционные системы (включая Linux) реализуют спецификацию TCP более строго, чем другие (например, Windows). Всякий раз, когда входящий пакет TCP не может быть сопоставлен с известным сокетом, система попытается закрыть поток TCP на другом конце, отправив сигнал RST.

В нашей настройке, где пакеты будут распределяться между законным и призраком, такое поведение может привести к тому, что законное устройство не сможет установить и поддерживать TCP-соединения из-за того, что призрак систематически закрывает их.

Таким образом, если устройство-призрак представляет собой систему Linux, нам необходимо отключить это поведение. Один из простых способов сделать это — использовать правило iptables, запрещающее все исходящие RST-пакеты:

iptables -A OUTPUT -p tcp –tcp-flags RST RST -j DROP



На этом будем заканчивать, надеюсь эта статья была полезна для Вас. C любовью от RESOLUTE ATTACK!


Report Page