• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Пентестим Ethernet по всем правилам

stihl

Moderator
Регистрация
09.02.2012
Сообщения
1,178
Розыгрыши
0
Реакции
510
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
Атаки на Ethernet в рамках пентеста дают значительный импакт, однако при атаках на канальном уровне есть большая вероятность ошибиться и нарушить нормальную работу сети. В этой статье я расскажу о нюансах сбора информации, техниках MITM и Ethernet-пивотинге.

warning​

Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
В мае 2022 года я выпускал статью под названием Для просмотра ссылки Войди или Зарегистрируйся, в которой разобрал атаки на канальный уровень. Перед тобой — ее «VIP-ремикс». На этот раз я расскажу о приемах сбора информации об оборудовании без шума в эфире, о том, как проводить MITM-атаки безопасно, и об особенностях Ethernet-туннелей при пивотинге.

Сбор информации​

L2 — это канальный уровень компьютерной сети. Тут происходит коммутация кадров, сегментация сети. Атаки канального уровня могут быть очень опасными, поскольку атакующий, проникнув в этот сегмент, способен нанести большой урон. А проникнуть он может либо если его туда пустили, либо если он обеспечил себя L2-туннелем.

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


Первое подключение​

Уже после подключения к сетевому коммутатору атакующий может создать шум в эфире. Например, автоматически активный NetworkManager с DHCP. Рекомендую не спешить с активным DHCP, сделай так, чтобы хотя бы интерфейс был в состоянии UP.

Также стоит заметить, что по DHCP передается имя устройства, которое получило адрес автоматически. Вся эта информация будет храниться на DHCP-сервере. Это довольно неприятный расклад для пентестера, однако передачу хостнейма по DHCP можно выключить здесь:

Код:
sudo nano /etc/NetworkManager/system-connections/Wired\ connection\ 1
[ipv4]
method=auto
dhcp-send-hostname=false

Передача hostname до конфигурации NM
Передача hostname до конфигурации NM
Спрятанный hostname системы после конфигурации NM
Спрятанный hostname системы после конфигурации NM
Таким образом можно спрятать имя системы от DHCP-сервера, просто не передавать его через настройки NetworkManager.

Discovery-протоколы​

Discovery-протоколы нужны для обмена информацией между устройствами, однако в большинстве случаев сетевые девайсы настроены так, что рассылка DP происходит абсолютно во все порты коммутатора, а это снижает уровень сетевой безопасности. Атакующий, получив эти кадры, сможет узнать чувствительную информацию об оборудовании вроде версии прошивки, модели устройства, типа адресации.

Информация о CDP, полученная с помощью Above
Информация о CDP, полученная с помощью Above

Обнаружение 802.1Q-тегов​

802.1Q — стандарт, имеющий отношение к тегированию коммутационных фреймов. В контексте коммутатора при разбиении сети VLAN на сегменты используются два типа портов:
  • Access — порт в режиме доступа, обычно он настраивается на стороне конечных станций, чтобы они имели первичный доступ к сети;
  • Trunk — при этом режиме происходит инкапсуляция Ethernet-кадров.
Когда атакующий впервые подключается к коммутатору, не исключено, что он окажется именно на Trunk-порте, где тегируются фреймы. Если действительно так произойдет, то пентестер сможет оказаться во всех VLAN-сегментах, к которым подключен коммутатор. Вот примерные сценарии, при которых такое возможно:
  • Работающий порт по умолчанию находится в контексте коммутатора Cisco. Там активен протокол DTP, причем все порты работают в режиме Dynamic Auto. Если атакующий сгенерирует и отправит в сторону такого порта кадр DTP Desirable, это приведет к тому, что порт атакующего переключится в транк.
  • Порт коммутатора для Voice VLAN настроен небезопасно. Я встречал такие случаи, в которых необходимо было подключить в разрыв и VoIP-телефон, и компьютер и при этом порт коммутатора настраивался в режиме Trunk, хотя стоило бы грамотно настроить VLAN Access для компьютера и Voice VLAN для телефона. Если атакующий найдет такой порт, фактически он уже пробьется во все VLAN-сегменты.
Так что не будет лишним поискать на порте фреймы 802.1Q, вдруг тебе удастся прыгнуть в остальные VLAN-сегменты. Такие мисконфиги встречаются на коммутаторах, и ты случайно можешь оказаться на транке. Конечно, это редкое явление, но я не мог не упомянуть такой вектор.

Пример 802.1Q-тега в кадре
Пример 802.1Q-тега в кадре
Найти фреймы 802.1Q можно, анализируя трафик с помощью инструмента HIVE. Достаточно запустить его, указав два аргумента: интерфейс атакующего и время на анализ трафика. После поиска всех тегов инструмент автоматически создаст необходимые виртуальные интерфейсы для прыжка в другие VLAN-сегменты.

HIVE
HIVE
Как видишь, HIVE позволил атакующему прыгнуть в четыре сегмента VLAN. Вектор крайне редкий, но иногда встречается в корпоративных сетях.

LLMNR/NBT-NS Poisoning​

Отравление LLMNR/NBT-NS — одна из самых распространенных сетевых атак. Она позволяет получить учетные данные пользователя Windows в зашифрованном виде, а также открывает дорогу для проведения атак NTLM Relay. Чаще всего для отравления запросов LLMNR/NBT-NS используют утилиту Responder.

Для такой атаки нужен именно L2-доступ в целевой сети, поскольку запросы данных протоколов распространяются только в рамках широковещательных доменов. Либо атакующий может просто воткнуть патч‑корд в розетку, либо в контексте сценария пивотинга у него есть L2-туннель.

Протокол LLMNR использует мультикастовый адрес 224.0.0.252, в NBNS применяется широковещательный трафик, проходящий по UDP-порту 137, а MDNS работает по адресу 224.0.0.251.

Инструмент Above позволит обнаружить в трафике эти протоколы. Если такое произойдет, то атакующий сможет воспользоваться вектором атаки LLMNR/NBT-NS Spoofing и перехватит учетные данные.

Для просмотра ссылки Войди или Зарегистрируйся

ARP/NBNS-разведка​

При запуске ARP-сканирования ты должен иметь в виду, что можешь оказать большую нагрузку на оборудование, да и система Storm Control подаст сигнал тревоги, если ты превысишь порог допустимого широковещательного трафика. Когда запускаешь инструмент, проводящий ARP-сканирование, обязательно настрой его скорость, то есть число пакетов в секунду.

Распространенные инструменты для L2-сканирования — это netdiscover и nbtscan. Рекомендую внимательно изучить все настройки и стараться не запускать эти программы в режиме «Халк крушить».

Для netdiscover в качестве первичной разведки хорошо выбирать Passive ARP: инструмент в автономном режиме будет анализировать все ARP-кадры вокруг себя и выстраивать список хостов.

sudo netdiscover -i eth0 -p
Результат работы пассивного ARP
Результат работы пассивного ARP

Обнаружение динамической маршрутизации​

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

DRP-протоколы используют мультикастовую рассылку, и, чтобы добраться до пакетов этих протоколов, атакующему необходим именно L2-доступ (либо физическое подключение к сети, либо L2-туннель после мероприятий пивотинга). Например, OSPF для мультикастовой рассылки использует адрес 224.0.0.5, а EIGRP — 224.0.0.10.

Чаще всего DRP-пакеты ходят в пользовательских сегментах банально из‑за того, что не заданы настройки пассивного интерфейса. Когда маршрутизатор анонсирует ту или иную сеть, в ту же сеть отправляются эти пакеты приветствия. Если атакующий доберется до них, то сможет подключиться к домену маршрутизации, узнать о существовании тех или иных подсетей, инъекции маршрутов и прочего.

Результат обнаружения EIGRP с помощью Above
Результат обнаружения EIGRP с помощью Above
Собрав эту информацию, атакующий поймет, что в сети используется динамическая маршрутизация с небезопасными настройками. Тогда он может провести атаку на домен. Считай, еще один вектор для атаки изнутри сети.

Если этих протоколов нет в трафике, значит, в сети нет динамической маршрутизации либо настроены пассивные интерфейсы.


Обнаружение системы резервирования​

FHRP обеспечивают отказоустойчивость на уровне маршрутизации. Основная идея заключается в том, чтобы объединить несколько маршрутизаторов в одну логическую группу. Внутри нее будет виртуальный маршрутизатор с виртуальным IP-адресом, который будет назначаться как адрес шлюза по умолчанию.

Домен FHRP может подвергнуться спуфинг‑атаке против Master-роутера, приоритет которого менее 255. Атакующий в таком случае сможет стать «человеком посередине» и перехватывать трафик всей сети, которую обслуживают FHRP-спикеры.

В класс FHRP входят следующие протоколы:
  • HSRP (Hot Standby Redundancy Protocol);
  • VRRP (Virtual Router Redundancy Protocol);
  • GLBP (Gateway Load Balancing Protocol).
Как и в случае с DRP-пакетами, для обнаружения FHRP тоже нужен L2-доступ, и этот протокол тоже использует мультикастовую рассылку:
  • HSRP: 224.0.0.2, для второй версии 224.0.0.102 (UDP/1985);
  • VRRP: 224.0.0.18;
  • GLBP: 224.0.0.102 (UDP/3222).
Информация о присутствии HSRP
Информация о присутствии HSRP
Информация о присутствии VRRP
Информация о присутствии VRRP
Таким образом атакующий получает информацию о системе резервирования маршрутизации и может провести атаку.

MITM​

MITM-атаки внутри инфраструктуры самые мощные по импакту. MITM не только позволяет перехватывать учетные записи, но и открывает возможность для Relay-атак. Но MITM одновременно и самая опасная атака с точки зрения возможности нарушить работу сети. Она не прощает ошибок. Я дам несколько советов, которые позволят проводить MITM более аккуратно.

Мощность железа​

Позаботься о мощности своего железа, оно должно быть готово к тому, что через него пойдет трафик нескольких десятков легитимных хостов. Это касается и твоего интерфейса. Если ты собираешься спуфить хосты с гигабитным интерфейсом, а у тебя коннект 100 Мбайт/с, то скорость сети серьезно пострадает и может произойти коллапс. Пользователи быстро заметят, что сеть стала зависать, и позовут сисадминов, а те (если не зря получают зарплату) поймут, в чем дело. Так пентест перестанет быть секретом, и придется краснеть перед админами.

Вот рекомендованные параметры железа:
  • центральный процессор от четырех ядер;
  • оперативная память от 8 Гбайт;
  • сетевой интерфейс с полным дуплексом, 1 Гбит/с и выше. Хорошо, если выйдет подключить Ethernet-адаптер через высокоскоростной интерфейс Thunderbolt 3/4.
Однако, скорее всего, ты упрешься в возможности порта коммутатора, к которому ты подключен. Если там линк в 1 Гбит/с, выше этого ты прыгнуть не сможешь. Обязательно следи за поведением сети.

Разрешение маршрутизации​

Главное правило MITM — разрешить маршрутизацию трафика со своей стороны:

sudo sysctl -w net.ipv4.ip_forward=1
Иначе при атаке легитимный трафик будет упираться в твой хост и дальше он не пройдет, а это DoS, то есть видимый признак атаки. И снова пентест перестанет быть секретом.


Потенциальный Storm Control​

Если на порте атакующего есть Storm Control с контролем трафика UCAST/MCAST/BCAST, может сработать тревога оборудования, потому что порт атакующего при MITM начнет обрабатывать гораздо больше трафика, чем ожидалось по настроенному THRESHOLD. Имей в виду!

Обход трассировки (TTL Shift)​

Смещение TTL в таблице mangle поможет спрятать IP-адрес атакующего из трассировки пакетов. MITM-атаки создают избыточный хоп, и если провести трассировку со стороны легитимной машины, то IP-адрес атакующего окажется в самой трассировке. Такой расклад событий SOC точно не оценит.

sudo iptables -t mangle -A PREROUTING -i eth0 -J TTL --ttl-inc 1

Восстановление ARP-таблицы после атаки​

Твой инструмент обязательно должен генерировать обратные IS-AT-кадры, которые восстанавливают состояние ARP-таблиц хостов еще до атаки. Это очень важный момент. Хост или сервис могут и не запросить ARP, они будут думать, что ты все еще их шлюз. А это DoS. Это очень важный момент, который стоит учитывать. Кстати говоря, Ettercap и Arpspoof отлично делают эту работу, а по окончании генерируют необходимые IS-AT-кадры и восстанавливают структуру ARP-таблиц хостов.


ICMP Redirect​

Во время MITM-атаки твоя машина может генерировать пакеты ICMP Redirect, что встревожит IDS/IPS, поэтому обязательно выключай на своей стороне сообщения ICMP Redirect в sysctl.conf.

Код:
sudo sysctl -w net.ipv4.conf.all.send_redirects=0
sudo sysctl -w net.ipv4.conf.eth0.send_redirects=0

Конфигурация NAT​

Одно из главных правил MITM — настройка NAT. Обычно атакующие обходятся одной командой:

sudo iptables -t nat -A POSTROUTING -o eth0 -J MASQUERADE
Без настройки NAT атакующий не сможет увидеть вторую часть трафика, в которой потенциально могут находиться учетные данные. Это происходит из‑за асимметричной маршрутизации — когда трафик идет одним путем, но возвращается другим. Благодаря маскарадингу асимметричная маршрутизация не помешает атакующему видеть трафик, идущий в обе стороны.


Модуль nf_conntrack для протоколов No NAT Friendly​

Сквозь тебя может ходить трафик FTP, H.323 и SIP. Это протоколы No NAT Friendly, и тебе понадобится модуль nf_conntrack, чтобы они работали с NAT. При MITM атакующий должен включить NAT, чтобы видеть трафик, идущий в обе стороны.

sudo modprobe nf_conntrack

Выбор масок подсетей при ARP Spoofing​

При проведении ARP-спуфинга следи за маской подсети, с которой собираешься работать. Если ты возьмешь слишком большую маску, твое железо может просто не выдержать нагрузки и возникнет DoS.

Особенность атаки при STP (MITM)​

Присутствие STP-кадров внутри сети — одно из самых частых явлений при анализе трафика. Существуют атаки на протокол STP, связанные с инъекцией BPDU-кадров. Например, чтобы провести MITM, нужно отправить в ответ BPDU-кадр с наименьшим значением приоритета. Тогда компьютер атакующего получит роль корневого коммутатора.

Однако на деле не все так просто. При эксплуатации STP ты получишь только частичную MITM, так как не весь трафик будет ходить через корневой коммутатор. Поэтому в таких случаях не рассчитывай на большой поток трафика.

Ethernet-туннели при пивотинге​

Пентестерам иногда нужно проводить атаки канального уровня. Например, применить тот же Responder, чтобы перехватить учетные данные. Атакующий эскалирует свое присутствие в сети с помощью пивотинга, однако для проведения атак канального уровня ему необходимы именно L2-туннели. L2-туннелирование применимо при пивотинге, если атакующему требуется L2-доступ до целевых хостов.

Существует два вида VPN-интерфейсов:
  • TAP — виртуальный сетевой драйвер, который эмулирует Ethernet. Работает на канальном уровне, оперируя Ethernet-кадрами;
  • TUN — виртуальный сетевой драйвер, который используется для построения L3-туннелей. Работает на сетевом уровне, оперируя IP-пакетами.
Если атакующий стремится к атакам канального уровня в целевой сети, ему нужно использовать именно TAP-интерфейсы, с которыми он будет строить L2-туннель. Для этого есть много способов, начиная с SSH и OpenVPN и заканчивая более экзотическими вещами, такими как EoIP, GRETAP, L2TPv3, VXLAN. Пентестер может строить туннели как угодно, но я расскажу о двух главных нюансах.

Перед тем как пробросить L2-туннель, прописывай явный маршрут /32 до целевого хоста, с которым будешь устанавливать туннель. Без этого маршрута при получении адреса на L2-интерфейсе может возникнуть разрыв туннеля, так как туннель будет перекрывать маршрут до хоста. Команда несложна — просто пропиши этот маршрут через свой умолчательный шлюз:

sudo ip route add X.X.X.X/32 via X.X.X.X
Атакующий обеспечивает себя L2-туннелем с помощью специальных виртуальных интерфейсов. Но чтобы взаимодействовать с целевой сетью, необходимо сначала получить адрес. Обычно атакующий узнает его с помощью DHCP, однако по DHCP может прилететь другая информация о шлюзе, что способно негативно повлиять на сетевую связность. Поэтому, когда получаешь адрес на L2-интерфейсе при пивотинге, сразу же второй командой удаляй прилетевший умолчательный маршрут:

sudo dhclient -v tap0; sudo route del default
Итак, мы с тобой разобрались в особенностях Ethernet-пивотинга: какие правила хорошего тона нужно применять, чтобы добиться успеха при эксплуатации L2.

Таблица векторов​

Я сделал небольшую матрицу самых эффективных атак канального уровня, от которых есть ощутимый импакт.

Для просмотра ссылки Войди или Зарегистрируйся
Атак канального уровня, конечно же, гораздо больше, но я выбрал самые толковые и эффективные векторы, от которых будет польза. Никаких DoS и прочих сомнительных вещей.

Выводы​

В этой статье я изложил основные моменты при пентесте Ethernet. Этой технике уже несколько десятков лет, но она по‑прежнему применяется на пентестах при внутреннем анализе защищенности. Надеюсь, что этой статьей я смогу подарить несколько новых техник для пентестеров, а администраторы сетей повысят осведомленность.
 
Activity
So far there's no one here
Сверху Снизу