Categories: Router

Укрощение CISCO – брутим ключ к TACACS+ (часть 2)

За безумным словосочетанием Terminal Access Controller Access-Control System Plus (TACACS+) скрывается специальный протокол Cisco для AAA (authentication, authorization and accounting). Проще говоря, это протокол для централизованного управления доступом — чаще всего доступом именно к оборудованию Cisco, но не только к нему. Кстати, роутеры, свитчи и другие девайсы Cisco поддерживают еще и протокол RADIUS, но нас в на этот раз интересует именно Tacacs+.


Обычно поднимается один-два сервера с сервисом Tacacs+ (49/TCP) и на всех девайсах настраивается их использование. Когда кто-то хочет аутентифицироваться на свиче, его креды со свича передаются на сервер Tacacs+, где проходит проверка и принимается решение о  разрешении доступа.

Это удобное и централизованное решение с поддержкой логирования доступа. На серверной стороне можно прикрутить другую централизацию доступа — что-нибудь вроде AD или LDAP. К тому же есть опенсорсные реализации сервера — в Cisco когда-то решили официально опубликовать код.

С точки зрения безопасности протокол далек от идеала (ведь он был спроектирован в 1993 году), но критичных проблем у него нет. Данные передаются либо плейнтекстом, либо можно включить шифрование (что и является, насколько мне известно, стандартом). Организуется шифрование на основе PSK (PreShared Key), то есть администратор сам указывает один ключ на сервере Tacacs+ и всех подключающихся к нему устройствах.

Шифруются только пользовательские данные, заголовки Tacacs+ не шифруется.
Само шифрование происходит следующим образом. При помощи XOR данные пакета объединяются с последовательностью хешей MD5, котораяназывается pseudo_pad:

pseudo_pad = {MD5_1 [,MD5_2 [ ... ,MD5_n]]}

Хеши MD5 генерируются на основании данных из заголовков пакетов Tacacs+, к которым добавляется PSK и предыдущий хеш:

MD5_1 = MD5{session_id, key, version, seq_no}
MD5_2 = MD5{session_id, key, version, seq_no, MD5_1}
...
MD5_n = MD5{session_id, key, version, seq_no, MD5_n-1}

где session_id — случайный идентификатор сессии, version — версияпротокола, seq_no – инкрементируемый номер пакета, а key – PSK.

В 2000 году Solar Designer провел интересное исследование протокола, в котором была обнаружена возможность replay-атак, раскрытия длины пароля пользователя (из-за отсутствия padding) и кое-что ещё. Но данные атаки до практического использования не дотягивают (готовых тулз точно нет).
Что же мы можем сделать как пентестеры? Во-первых, мы можем провести MitM атаку и проснифить подключение от устройства Cisco к серверу Tacacs+. Далее нам понадобится локально брутфорсить трафик, а точнее — перебирать различные варианты PSK. С одной стороны, с нынешними мощностями MD5 – это очень быстро, с другой — брутфорс Tacacs+ не включен не в одну известную мне утилиту.

Но попробовать кое-что всё же можно. Во-первых, есть тулза Loki. Это некий комбайн для атак на L3-протоколы. Признаюсь, обнаружил я ее только недавно, но с виду она работает хорошо и умеет делать ряд интересных штук. Вездесущий Wireshark тоже позволяет расшифровать трафик Tacacs+ при имеющемся ключе (Edit -> Preferences -> Protocol -> Tacacs).
Кроме атаки, связанной с брутфорсом и перехватом трафика, есть ещё две вещи, о которых стоит рассказать. Представим себе, что с сервером Tacacs+ что-то произошло, и он не доступен для устройства Cisco, но админу может понадобиться залогиниться на этот девайс. Для таких целей
устройства Cisco поддерживают разные способы аутентификации, которые администратор должен указать при настройке.

Классическая конфигурация аутентификации для Cisco c Tacacs+ выглядит следующим образом:
aaa authentication login default group Tacacs+ local Нам здесь важны последние два слова, которые указывают, что сначала аутентификация будет проверена с помощью Tacacs+, а после — в локаль-
ной базе юзеров. Причём, если юзер не найден в Tacacs+, то он не будет проверяться локально.
В этом случае немаловажен человеческий фактор. Если администратор понадеется на Tacacs+, в локальной базе он может выставить менее секьюрные логины и пароли, и этим легко  воспользоваться.

Мы можем попытаться тем или иным способом заблокировать доступ от девайся Cisco к серверу Tacacs+. В результате устройство будет использовать локальную базу учеток, и перебирать пароли мы будем в ней (через Telnet или SSH). Например, мы можем использовать какую-нибудь
MitM-атаку или DoS-атаку на сам сервис Tacacs+. Во втором случае мы просто создадим большое количество подключений, отчего сервис не сможет получать новые. Этот способ не был мною протестирован, но с другими TCP-сервисами работает отлично.

Плюс в том, что наш брут скорее всего не будет зафиксирован в логах. Но есть и минус: другие девайсы Cisco тоже не смогут работать с Tacacs+, что должно вызвать беспокойство у  администраторов. Также у этой атаки есть и второй недостаток: очень часто серверы Tacacs+ располагаются в VLAN, которые доступны только для администраторов и сетевого оборудования — это рекомендации Cisco.
Первая часть материала здесь — Укрощение CISCO – брутим ключ к TACACS+

Click to rate this post!
[Total: 3 Average: 4.7]
cryptoworld

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

View Comments

Share
Published by
cryptoworld
Tags: hack

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

4 месяца ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

5 месяцев ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

5 месяцев ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

5 месяцев ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

5 месяцев ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

5 месяцев ago