Как обойти протокол 802.1х в LAN. Часть 1

Spread the love

IEEE 802.1X ― это стандарт, который используется для аутентификации и авторизации пользователей и рабочих станций в сети передачи данных. Он осуществляет контроль доступа и не позволяет неавторизованным устройствам подключаться к локальной сети. Наибольшее распространение протокол получил в беспроводных сетях, однако встречается и в проводных. В данной статье рассматривается его применение для проводных сетей.

Описание протокола 802.1x

Механизм аутентификации

В процессе аутентификации участвую 3 сущности:

  • Клиент (Client/Supplicant) ― программное обеспечение на стороне клиента, установленное на устройство пользователя и запрашивающее доступ к сети. Для запуска процесса аутентификации клиент использует Extensible Authentication Protocol via LAN (EAPoL)
  • Аутентификатор (Authenticator) ― устройство, которое обеспечивает связь клиента с сервером аутентификации по протоколу 802.1х и, в случае успешной авторизации ― доступ к сети.
  • Сервер аутентификации (Authentication Server) ― ААА-сервер, интегрированный с той или иной базой данных пользователей.

Аутентификация клиента происходит в несколько этапов:

  1. Инициализация

На этом этапе клиент подключается к порту аутентификатора. Аутентификатор распознает факт подключения и активизирует логический порт для клиента, сразу переводя его в состояние “неавторизован” (uncontrolled). В результате через клиентский порт возможен лишь обмен трафиком протокола 802.1x, для всего остального трафика порт заблокирован.

2. Инициация

Аутентификатор ожидает от клиента запрос на аутентификацию (EAPOL-Start). Когда аутентификатор получает запрос, он посылает клиенту EAP-request/identity. Клиент в ответ высылает EAP-response со своим идентификатором (например, именем пользователя), который аутентификатор перенаправляет в сторону сервера аутентификации, предварительно завернув в RADIUS Access-Request.

3. Обмен EAP

Сервер аутентификации и клиент договариваются о методе EAP, по которому будет проходить аутентификация.

4. Аутентификация

Может происходить по-разному, в зависимости от метода EAP. В результате сервер аутентификации разрешает (accept) или запрещает (reject) доступ, с пересылкой данного сообщения аутентификатору. В случае успешной аутентификации аутентификатор переводит порт клиента в состояние «авторизован» (controlled), и начинается передача трафика клиента.

EAP

EAP используется для выбора метода аутентификации, передачи ключей и обработки этих ключей подключаемыми модулями, называемыми методами EAP. Рассмотрим самые распространённые методы EAP.

EAP-MD5

Алгоритм работы:

  1. Сервер аутентификации посылает запрос EAP-Request-Identity клиенту.
  2. Клиент в ответ посылает EAP-Response-Identity.
  3. После получения EAP-Response-Identity сервер генерирует случайную строку (challenge string) и отправляет клиенту MD5-Challenge-Request с этой строкой.
  4. Клиент объединяет имя пользователя, пароль в открытом виде и challenge string в одно значение и отправляет хэш MD5 этого значения на сервер аутентификации как MD5-ChallengeResponse
  5. После получения MD5-Challenge-Response сервер аутентификации самостоятельно считает MD5-хэш от данных пользователя и отправленной строки challenge string и сравнивает с хэшом, полученным от клиента. Если хеши совпадают, аутентификация завершается успешно.

У этого метода EAP есть существенный недостаток: как MD5-Challenge-Request, так и MD5-Challenge-Response могут быть перехвачены. В результате можно сбрутить пароль пользователя.

EAP-PEAP/EAP-TTLS

Алгоритм работы:

Аутентификация проходит в 2 этапа – внешний и внутренний

  1. Внешняя аутентификация:

1.1 Клиент посылает Authentication Request на сервер аутентификации.

1.2. Сервер в ответ посылает свой сертификат

1.3. Клиент проверяет сертификат сервера, и, если всё в порядке, внешняя аутентификация проходит успешно.

1.4. Клиент и сервер устанавливают TLS-соединение.

2. Внутренняя аутентификация через установленный безопасный канал. При этом существует много различных протоколов аутентификации, однако наиболее часто используется MS-CHAPv2.

Основная проблема такого подхода заключается в том, что соединение может быть установлено, даже если сертификат невалиден. Например, если в настройках не стоит галочка «Проверять сертификат сервера».

EAP-TLS

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

Это куда более безопасно, но сложнее в реализации. На всех клиентских устройствах нужно установить клиентский сертификат.

Основная проблема такого подхода заключается в том, что соединение может быть установлено, даже если сертификат невалиден. Например, если в настройках не стоит галочка «Проверять сертификат сервера».

MAB

MAB (MAC Authentication Bypass) – это вариант «аутентификации» для устройств, которые не поддерживают протокол 802.1x. Если к порту коммутатора, на котором настроена аутентификация, требуется подключить такое устройство, то, чтобы не отключать на этом порту аутентификацию, был придуман более слабый механизм. Весь процесс аутентификации по MAB заключается в проверке MAC-адреса устройства.

Атаки

А теперь самое интересное. Расскажу, как мы обходим 802.1X.

Обход MAB

Самый простой метод обхода. MAB вообще как будто был придуман специально для пентестеров. Даже в названии присутствует слово «Bypass».

В общем, находим старенький принтер (камеру, телефон, PDP-11…), узнаём его MAC-адрес и отключаем от коммутатора. Меняем свой MAC на МАС устройства и подключаемся вместо него.

В последнее время метод несколько потерял актуальность за счёт использования профилирования (подробнее в разделе «Как защититься»)

Классическая атака (Bridged-based)

Экскурс в историю

В 2005 году Стив Райли, исследователь из Microsoft, обнаружил уязвимость в протоколе 802.1x, которая приводила к возможности атак «Человек посередине». Суть уязвимости заключалась в том, что аутентификация по протоколу 802.1x происходит только при установке нового соединения. Когда клиент, подключившийся к порту коммутатора, проходит аутентификацию, порт переходит в состояние «controlled» и все последующие соединения от этого клиента не требуют аутентификации. Злоумышленник, разместивший хаб между аутентифицировавшимся клиентом и портом коммутатора, может подключить своё устройство к хабу и отправлять пакеты в сеть, подменив исходные MAC- и IP-адреса на адреса легитимного клиента.

Добавить комментарий

WP2Social Auto Publish Powered By : XYZScripts.com