![]() |
https://forum.antichat.xyz/attachmen...8241326418.png
Перед вами не статья, а скорее технический дневник, результат чьих-то многих ночей в лабе, пачек выкуренных сигарет над строками дампа и десятков сломанных конфигов. Сегодня мы говорим о 802.1X. Не так, как о нем говорят на сертификационных курсах. А так, как о нем говорят в курилке усталые админы, которые знают, что их крепость построена на песке. И так, как о нем молча думаем мы, разглядывая логи и пакеты в поисках той одной аномалии, которая откроет путь. Наша цель не просто перечислить уязвимости CVE. Наша цель - понять философию слабости этой системы. Почему даже безупречно настроенный с точки зрения учебника 802.1X оставляет зазоры? Как эти зазоры становятся щелями, щели - туннелями, а туннели - дорогой прямо в сердце периметра? Мы будем копать слой за слоем. От физического провода до RADIUS-атрибутов. От состояния порта до психологии администратора. Это путешествие вглубь. Если ты ждешь быстрых ответов и скриптов «нажми-кнопку-получи-лазейку», тебе не сюда. Здесь мы разбираем мотор, чтобы понять, почему он стучит. И как этот стук можно использовать, чтобы заглушить сигнализацию. Инструменты? Они будут нашими попутчиками. Старые, новые, кастомные. От scapy, который является продолжением наших рук, до специфичных утилит, которые придется собрать из полудохлого кода на Гитхабе. Я не буду давать тебе рыбу. Я научу тебя понимать океан, его течения и то, как рыба думает. А потом мы вместе сделаем динамит. 1/10: Фундамент иллюзии 1.1. Религия Port-Based Access Control 802.1X - это не протокол аутентификации. Это протокол управления состоянием порта на основе аутентификации. Важно уловить разницу с самого начала. Его задача - сказать свитчу: «Этот физический порт сейчас переходит из состояния Х (закрыто/гость) в состояние Y (открыто/доверенно)». Всё. Вся магия - в процессе, который принимает это решение. Триада акторов священна:
Идеально. Красиво. Абстрактно. 1.2. Первая трещина: Что такое «состояние порта» на самом деле? Свитч - глупая железка. Он оперирует не абстракциями, а таблицами: MAC-адресная таблица (CAM), таблица ACL, таблица VLAN (VLAN membership). Когда порт в состоянии Код:
802.1X unauthorizedКод:
EtherTypeКод:
0x888E (EAPOL)А теперь вопросы, которые задают только на практике:
Идея: на авторизованном порту свитч должен пропускать фреймы только с MAC-адреса авторизованного Supplicant. Звучит здорово. Включается командой типа Код:
dot1x host-mode single-hostРеализация:
Мы не гадаем. Мы смотрим.
2/10: EAPOL - Язык ангелов и демонов 2.1. Структура фрейма: не просто 0x888E EAPOL-фрейм - это не только EAPOL-Start или EAP-Packet. Это несколько типов, и каждый - потенциальный инструмент влияния.
Мы все знаем про атаку отравления сессии. Но давай разберем нюансы:
Стандартный диалог: Код:
SupplicantКод:
StartКод:
AuthenticatorКод:
EAP-Request/IdentityКод:
SupplicantКод:
EAP-Response/IdentityКод:
user@domainЧто если:
EAPOL-фреймы летают в открытом виде. Что они выдают?
3.1. RADIUS как слабое звено Authenticator слепо доверяет RADIUS-серверу. Его логика: «Если RADIUS сказал Accept - открываю. Reject или нет ответа - не открываю». Значит, цель атакующего - повлиять на это решение. 3.2. Поддельный RADIUS-сервер (Rogue RADIUS) Сценарий: мы убедили свитч, что наш сервер - это легитимный RADIUS. Как?
Shared secret - это симметричный ключ между свитчом и RADIUS. Хранится в конфиге свитча. Если мы его получим (через уязвимость, бэкап, инсайдера), мы можем:
Когда Код:
RADIUSКод:
Access-Accept
Предположим, мы находимся на пути между Код:
AuthenticatorКод:
RADIUSКод:
Access-AcceptКод:
Tunnel-Private-Group-ID = "200"3.5. Атаки на доступность RADIUS - Активация Fallback Это одна из самых практичных атак. Цель - не взломать, а отключить механизм 802.1X, заставив сеть перейти в запасной режим.
Код:
fail openКод:
auth-fail-vlanКод:
nmaphttps://forum.antichat.xyz/attachmen...8241398464.png Если ты хочешь понять, как атакующий может развернуть ложный сервер и манипулировать сетевой аутентификацией, стоит посмотретьпрактический разборинструментов Rogue Toolkit для развёртывания злых точек доступа. 4/10: Эшелоны обхода - MAB, Web Auth и другие удобства 4.1. MAC Authentication Bypass (MAB) - Дверь для ленивых MAB - это костыль. Прекрасный, удобный, но костыль. Логика: если устройство не отвечает на EAP-запросы, считать его MAC-адрес логином и паролем, отправить это на RADIUS. Уязвимость 4.1.A: Подделка MAC-адреса. Тривиально. Код:
ifconfig eth0 hw ether 00:11:22:33:44:55Уязвимость 4.1.B: Угадывание MAC-адресов (MAC Spoofing Brute Force). OUI (первая половина MAC) известна для вендоров. Вторая половина - часто последовательна. Можно написать скрипт, который будет циклически менять MAC и пытаться получить IP (через DHCP). Если получил - значит, MAB сработал. Скрипт для scapy будет громоздким, но идея проста: в цикле while менять MAC, отправлять DHCP Discover и слушать Offer. Python: Код:
# Концепт скрипта brute force MAB (требует доработок, запуск в изолированной среде!)Часто используется для гостей. Устройство подключается, попадает в изолированную VLAN, и все HTTP-запросы перенаправляются на портал ввода логина/пароля. Уязвимость 4.2.A: Обход портала через не-HTTP трафик. А что, если портал проверяет только HTTP? Можно попробовать:
Режим, когда на одном порту аутентифицируются отдельно устройство (например, телефон) и отдельно пользователь (компьютер за телефоном). Создает сложную машину состояний. Уязвимость 4.3.A: Атака на доверие между доменами. Часто Data VLAN (для компьютера) имеет доступ к Voice VLAN (для телефона) для управления. Если мы проникли в Data VLAN через компьютер, можем атаковать телефон, который находится в Voice VLAN. Уязвимости в веб-интерфейсе телефона, слабые пароли, устаревшее ПО. Телефон становится точкой входа в голосовой сегмент, который часто имеет свои, особые пути в инфраструктуру. 5/10: Глубже в кроличью нору - Атаки на EAP-методы 5.1. EAP-PEAP/MSCHAPv2 - Фасад, который трещит Мы уже говорили об Evil Twin. Углубимся.
EAP-TTLS может использовать внутри себя PAP, который передает пароль в открытом виде внутри TLS-туннеля. Если мы смогли встать MitM и установить свой TLS (с самоподписанным сертификатом), мы получаем пароль в чистом тексте. Это золотая жила для устаревших сетей Wi-Fi, но иногда встречается и в проводных для специфичного оборудования. 5.3. EAP-FAST - Сложный, но не безупречный Разработан Cisco как замена LEAP. Использует Protected Access Credential (PAC). Атаки сложны, но были (например, связанные с угадыванием или перебором PAC-файлов). Требуют глубокого изучения и в основном актуальны для беспроводных сетей. 5.4. EAP-TLS - Король, которого можно обойти? Сертификаты. Проверка клиента. Кажется, неуязвимо. Но:
6/10: Пост-аутентификация - Жизнь внутри порта 6.1. VLAN Hopping - классика жанра Даже будучи корректно помещенным в свой VLAN, можно попытаться выпрыгнуть.
Оказавшись в VLAN, мы среди «доверенных» устройств. Запускаем сканирование ARP ( Код:
arp-scan6.3. Эксплуатация доверия к Domain Join Компьютер в корпоративной сети, скорее всего, в домене. У него есть машинная учетная запись. Можно попробовать атаки Kerberos (например, серебряные/золотые билеты), если у нас есть достаточные привилегии на самой машине (полученные через эксплойт). Это уже пост-эксплуатация, но корни ее - в первоначальном доступе через сеть. 7/10: Инструментарий алхимика - От скриптов до железа 7.1. Аппаратные ключи для тестов
https://forum.antichat.xyz/attachmen...8241456234.png 8/10: Защита с позиции параноика - Если бы ты был админом... 8.1. Жесткая настройка порта
Здесь будет пошаговая инструкция по построению тестового стенда в Eve-NG/Proxmox.
Послушай. Давай начистоту. Если ты дочитал до этого места, продираясь сквозь дебри состояний портов, лес EAP-методов и болота RADIUS-атрибутов, ты уже не тот, кто зашел в эту тему с первой страницы. Ты видел изнанку. И теперь нам нужно поговорить о самом важном: не о том, как это ломается, а о том, почему это ломается всегда. О метафизике уязвимостей. 802.1X - не просто протокол. Это памятник человеческой наивности. Прекрасный, почти поэтичный пример того, как благородное стремление к абсолютной безопасности неминуемо рождает чудовищную сложность. А сложность, как ржавчина, точит любую конструкцию изнутри, создавая пустоты, трещины и те самые щели, в которые мы с тобой сегодня заглядывали. Это не баги в коде, не опечатки в черновике RFC 3748. Это что-то глубже. Это системные, концептуальные, экзистенциальные уязвимости. Они живут не в строках конфигурации, а в пространстве между Намерением и Реальностью.
Понимаешь теперь? Наша работа никогда не заключалась в том, чтобы ткнуть пальцем и сказать: «Смотрите, это дерьмо! Не используйте!». Любая система безопасности, от навесного замка на сарае до гомоморфного шифрования в квантовом облаке, это компромисс. Компромисс между безопасностью, стоимостью, удобством и производительностью. Сказать «это дерьмо» это детский сад. Это уровень пафосного комментария на YouTube. Настоящая работа - понять этот компромисс глубже, чем его понимают создатели и админы. Понять не только что они пожертвовали, но и как именно эта жертва деформировала систему. Где математическая чистота стандарта упирается в аналоговую грязь реального мира: в криво написанную проверку состояний в прошивке, в баг в библиотеке TLS, в то, как парсится поле identity в RADIUS-пакете. Нужно почувствовать систему на вкус, узнать её запах, понять её ритмы и сбои. Стать, на время, частью этой системы, чтобы увидеть мир её глазами. И тогда, только тогда ты увидишь те самые щели. Не как ошибки, а как неизбежные последствия. Это попытка нарисовать карту. Не туристическую карту с яркими фотографиями, а старую, потрёпанную карту мореплавателя, с пометками на полях, сделанными кровью и сажей. Вот здесь, у мыса EAPOL-Logoff, водятся сирены, чьи песни разбивают сессии о скалы. Здесь, в болотах MAB, туман скрывает топи, затягивающие целые VLAN. А вот этот узкий, никому не известный проход между скал Multi-Domain State Machine ведёт прямиком в лагуну с сокровищами - в Voice VLAN. На карте нет гарантий. Есть только наблюдения: «здесь дракон», «здесь топь», «здесь, судя по всему, проход, о котором забыли даже картографы». Процесс изучения: копаться в RFC, разбирать дампы в Wireshark, дизассемблировать прошивки. Процесс тестирования: строить стенды, ломать их вдребезги, наблюдать, как они разваливаются, записывать каждый треск. Процесс укрепления: не для того, чтобы построить стену (стены падают), а для того, чтобы создать систему, которая умеет падать правильно с наименьшими потерями, с громкой сигнализацией, с возможностью понять, что именно сломалось и как. И снова - процесс изучения. Круг. Бесконечный. Админ, который, прочитав это, вздохнёт, закроет браузер и пойдёт пересматривать конфиги своих свитчей, внося правки с новым, параноидальным пониманием - наш брат. Он не враг. Он такой же узник этой системы, как и мы. Его задача поддерживать её работу. Наша (в легальном, этичном поле) - показывать ему, где она даёт сбой. Мы тестеры на прочность. Саперы, ищущие мины на пути. Пентестер, который использует эти идеи в рамках легального задания, чтобы написать в отчёте не шаблонное «проверил 802.1X - настроен», а конкретное: «обнаружена возможность отказа в обслуживании через инжекцию EAPOL-Logoff на портах в режиме multi-auth, что может нарушить работу VoIP-телефонии; рекомендовано включить storm-control для EAPOL-фреймов» - наш коллега. Он переводит наш язык щелей и теней на язык бизнес-рисков и бюджетов на исправление. Это важная работа. Ты видишь не просто мишень - ты видишь здание. Ты понимаешь, зачем здесь эта несущая стена, почему арка сведена именно так, где спрятаны водосточные трубы. И ты знаешь, что один выдернутый камень из арки обрушит свод. Но это же знание позволяет тебе понять, как укрепить ту же арку, чтобы она выстояла под землетрясение. Иногда, чтобы по-настоящему починить, нужно сначала решительно, но контролируемо сломать в лабораторных условиях. Увидеть траекторию падения. Услышать звук разрушения. И тогда строить заново, уже с учётом этой информации. 802.1X - это во многом театр. Красивые декорации строгой аутентификации, за которыми суетятся уставные техники-свитчи, нервничает суфлёр-RADIUS, а режиссёр-архитектор уже ушёл в другой проект. Но ведь мы все - актёры в этом театре! Кто-то играет роль Доверенного Пользователя, кто-то - роль Непрошеного Гостя (в рамках сценария пентеста), кто-то - Роль Бдительного Стража (IDS/IPS). Можно просто выходить на сцену и заученно читать свои строки: «Мой MAC - 00:11:22:33:44:55, мой сертификат валиден, впустите меня». А можно знать всю пьесу. Знать реплики других актёров. Знать, где на сцене скрипят половицы, а какой софит вот-вот отвалится. Знать, что суфлёр иногда запинается, а режиссёрская копия сценария лежит вон на том стуле. Это знание не делает спектакль фарсом. Оно делает тебя осознанным участником. Ты понимаешь иллюзию, но продолжаешь играть, потому что иначе спектакль остановится, а людям в зале (пользователям, бизнесу) нужно, чтобы он шёл. Поэтому наш девиз, наш самый честный, негласный тост, поднимаемый чашкой с холодным кофе в четыре утра перед монитором, заваленным дампами, звучит так: Исследуй. Сомневайся. Тестируй. Делись.
Держи свою карту под рукой. Карандаш наточен. Лаборатория - в рабочем состоянии. Послесловие к послесловию. Ты спросишь: «Зачем? Зачем тратить тысячи слов, недели времени, кучу нервов на разбор какой-то старой, покрытой пылью технологии? Уже есть нулевые доверия, SASE, ZTNA, всё это уходит в облако!». Отвечу так. 802.1X - это архетип. Принцип, высеченный в камне: «Сначала докажи, кто ты, потом получи доступ». Этот принцип будет жить вечно, в любых оболочках. В облаке он превратится в модные «identity-aware proxies» и «conditional access policies». В мире IoT станет «цифровыми паспортами устройств». Но суть останется: есть врата, есть страж, есть пропуск. Поняв, как ломается и обходится этот архетип в его классической, «чистой» форме (802.1X), ты получаешь линзу. Линзу, через которую ты сможешь разглядеть уязвимости в его будущих, более сложных реинкарнациях. Ты начнёшь видеть те же паттерны: состояния, таймауты, неявное доверие, fallback-механизмы только уже в мире API-токенов, политик SaaS-приложений и блокчейн-идентификаторов. Мы сегодня разбирали не просто протокол. Мы разбирали идею. И идеи, в отличие от софта, не устаревают. Они лишь меняют одежду. Так что да, оно того стоило. |
Сказка на ночь. Наступит день, когда каждое слово будет знакомо и я полностью пойму этот текст. Спасибо)
|
Цитата:
Двигайся. |
Отличный опыт! Как раз ищу почему при отключении устройства от свитча и подключении левого устройства остается возможность пользоваться сетью без привязки к Vlan. Есть что попробовать. Спасибо!
|
Цитата:
|
Шикарная статья! Мне нравится как ты думаешь
Приходилось разбираться как работает EAPOL в контексте пентеста WiFi -- чем дальше копаешь, тем больше понимаешь, как мало дельной информации лежит в сети. Приходилось ставить эксперименты на практике. Было весело и интересно! |
Честно, половину вообще не догнал с первого раза, там столько терминов и деталей. Можно как-то проще объяснить, что реально свитч проверяет и почему это не всегда надежно? Типа: порт вроде закрыт, но трафик все равно проходит — как так вообще? Просто хочу понять, а не вникать в дебри, сразу запутался)
|
Свитч в 802.1X реально проверяет только идентификацию устройства во время аутентификации, но после её успешного прохождения обычно просто пропускает трафик. Если что-то неправильно настроено, то порт может остаться "открытым" для всего, и вот откуда эти «дырки». Там часто проблемы с тайм-аутами или fallback-профилями, которые не всегда очевидны.
|
Слушайте, 802.1X — это как зебра на дороге: вроде и есть, и работает, но все время кто-то переходит на красный. Эти «дырки» появляются не потому, что технология плохая, а потому что настройщик решил полезть в обход. Так что в этом ритуале безопасности больше театра, чем реальной защиты, особенно если сидит лентяй на настройках. Без дисциплины эта штука превращается в формальность, а не в защиту.
|
Ну да, 802.1X — это как утренний кофе: вроде обязаловка, но если лень и невнимательность на старте — толку ноль, а всем кажется, что защитили сеть. Вот и получается больше спектакль, чем реальная охрана.
|
Не уверен, что 802.1X — это панацея. Часто всё просто «для галочки», потому что нормально настроить сложно, а контролировать потом ещё сложнее. Если кто-то лажает с конфигом или обходами — весь смысл улетучивается, а потом все удивляются, почему безопасность «на бумаге», а в реальности – дыры.
|
Тоже считаю, что 802.1X часто просто галочка для отчёта, реально мало кто заморачивается полным правильным настроем и поддержкой. Свитчи как будто проверили, а потом всё равно порт остаётся открытым, и вся защита валится. Если нет дисциплины и контроля — то никакой фишки не будет, просто формальность.
|
Раньше, когда не было этих целых 802.1X-заморочек, подключался и всё. Сейчас вроде есть проверка, но если настройку халтурить — технологии отваливаются и опять у нас «открытые двери». В итоге весь этот ритуал часто для отчёта, а не для реальной защиты. Было проще, зато честно.
|
Вся беда с 802.1X в том, что её нормально настроить и поддерживать — редкость. Часто админы экономят время и получают профит только на бумаге, а в реальности — всё открыто и ломается на раз-два. Поэтому и выходит, что эта система больше для галочки, чем для реальной охраны. Если не вкладываться и не следить — толку мало.
|
Да, согласен, что 802.1X часто просто галочка. Настроить нормально сложно, а чтобы постоянно контролить — вообще головная боль. По факту, многие просто включают, чтобы отчитаться, а потом забывают. От этого и получается, что система вроде есть, а толку мало, и в итоге вся защита превращается в фикцию.
|
Если 802.1X не контролировать и не обновлять, это действительно профанство. Настроил один раз и забыл – можно сразу забыть о безопасности, потому что любая система без поддержки быстро превращается в дырку.
|
| Время: 08:57 |