D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Это перевод статьи с Medium, вот её оригинал.
Недавно у меня была возможность работать в среде, управляемой FreeIPA.
Я хотел бы уделить время тому, чтобы поделиться некоторыми уроками, которые я узнал о FreeIPA, о том, как она работает, и о своей методологии атаки на нее. Прежде всего, что такое FreeIPA и почему он должен меня волновать?
Ну, честно говоря, я понятия не имел, пока не столкнулся с ним в дикой природе. После небольшого исследования я обнаружил, что это альтернатива Microsoft Windows Active Directory с открытым исходным кодом, используемая в основном в качестве интегрированного решения для управления средами Unix. Как и Active Directory, FreeIPA реализует полную инфраструктуру каталогов LDAP, поддерживаемую центром распределения ключей MIT Kerberos. Он использует систему сертификатов Dogtag для управления сертификатами CA и RA, что дает ему возможность обрабатывать многофакторную аутентификацию, включая смарт-карты. SSSD используется для интеграции FreeIPA в стандартный процесс аутентификации Unix.
Таким образом, все вместе мы имеем систему управления хостом Unix, в комплекте с LDAP и Kerberos, которая обеспечивает многофакторную аутентификацию. Из-за огромного количества контента, а также в попытке сделать эти посты более читабельными, я разделю их на серию. Этот пост призван охватить следующие темы: Общие файлы/переменные среды/двоичные файлы для помощи в идентификации хостов во время ситуационной осведомленности Аутентификация в среде FreeIPA с сохранением в памяти файлов Keytab, CCACHE Ticket и CCACHE Tickets.
Ситуационная осведомленность Хосты Linux, зарегистрированные в доменах FreeIPA, имеют несколько индикаторов, которые операторы могут сортировать для получения информации о хосте и домене. Давайте кратко рассмотрим несколько файлов, переменных окружения и двоичных файлов, указывающих на то, что хост был зарегистрирован в домене FreeIPA. Следующие файлы должны быть зарегистрированы на каждом узле, зарегистрированном в домене Kerberos:
/etc/krb5.conf
Файл krb5.conf содержит информацию о клиенте Kerberos, необходимую для регистрации в домене. Сюда входят местоположения KDC и серверов администрирования для интересующих областей Kerberos, значения по умолчанию для текущей области и для приложений Kerberos, а также сопоставления имен узлов с областями Kerberos.
/etc/ipa/default.conf
Это файл конфигурации по умолчанию для серверов IPA, он используется для установки общесистемных значений по умолчанию, которые будут применяться при работе клиентов и серверов IPA.
/etc/krb5.keytab
Файл krb5.keytab требуется на всех хостах внутри домена. Это требуется в рамках процесса аутентификации в KDC.
Существует также несколько переменных среды, которые, если они установлены, могут указывать на то, что узел зарегистрирован в домене Kerberos:
KRB5CCNAME
Если эта переменная задана, она указывает на местоположение билета CCACHE, который будет использоваться для аутентификации.
KRB5_KTNAME
Если установлена, эта переменная указывает на местоположение файла Keytab, который будет использоваться для аутентификации.
KRB5_CONFIG
Если эта переменная задана, она указывает на расположение файла конфигурации Kerberos.
KRB5_KDC_PROFILE
Если эта переменная задана, она указывает на расположение файла конфигурации KDC, который содержит дополнительные директивы настройки для демона Центра распределения ключей.
KRB5RCACHETYPE
Эта переменная определяет тип кэша воспроизведения по умолчанию, который будет использоваться для серверов.
KRB5RCACHEDIR
Эта переменная указывает каталог по умолчанию для кэшей воспроизведения, используемых серверами.
KRB5_TRACE
Эта переменная указывает имя файла, в который будут записываться выходные данные журнала трассировки. Журналы трассировки могут помочь пролить свет на решения, принимаемые внутри библиотек Kerberos.
KRB5_CLIENT_KTNAME
Эта переменная задает имя файла keytab клиента по умолчанию.
KPROP_PORT
Эта переменная устанавливает порт по умолчанию для использования kprop.
Существует также несколько двоичных файлов, которые идентифицируют хост как зарегистрированный в домене FreeIPA:
ipa
Этот двоичный файл является стандартом для управления доменом FreeIPA. Его можно использовать для управления узлами сети, пользователями, правилами sudo и многим другим.\
kdestroy
Двоичный файл kdestroy используется для уничтожения любых текущих билетов Kerberos в сеансе пользователя.
kinit
Двоичный файл kinit используется для создания или продления билетов Kerberos.
klist
В двоичном файле klist перечислены все используемые в настоящее время билеты Kerberos, а также участники, к которым они предоставляют доступ.
kpasswd
Команда kpasswd используется для изменения пароля участника Kerberos. kpasswd сначала запрашивает текущий пароль Kerberos, затем дважды запрашивает у пользователя новый пароль, и пароль меняется.
ksu
Ksu может быть использован в качестве альтернативы двоичному файлу su для переключения текущего пользовательского контекста.
kswitch
Команда kswitch переключит текущий используемый кэш учетных данных.
kvno
Двоичный файл kvno получает билет службы для указанных участников Kerberos и выводит номера ключевых версий каждого из них.
Аутентификация
Понимание базовых технологий и процессов, используемых для аутентификации и авторизации, жизненно важно для злоумышленника. Не понимая каждого механизма проверки подлинности, злоумышленник может пропустить действительные учетные данные, которые могли привести к боковому перемещению, или другой путь атаки по всей среде. Давайте кратко рассмотрим, как работает процесс аутентификации в среде, управляемой FreeIPA.
Поскольку FreeIPA использует Kerberos для аутентификации, этот процесс очень похож на аутентификацию в Active Directory. Чтобы получить доступ к ресурсам в домене, пользователь должен иметь действительный билет Kerberos для этого ресурса. Эти билеты могут храниться в нескольких различных местах в зависимости от конфигурации домена FreeIPA. Я кратко рассмотрю каждый механизм аутентификации, рассказав о том, как анализировать и повторно использовать этот материал от потенциального злоумышленника.
CCACHE Ticket Files
Если билеты настроены на хранение в виде файла на диске, стандартным форматом и типом является файл CCACHE. Это простой двоичный формат файла для хранения учетных данных Kerberos. Эти файлы обычно хранятся в /tmp и имеют 600 разрешений. С точки зрения злоумышленников это важно по следующим причинам:
1. Действительные билеты могут быть использованы для аутентификации без необходимости ввода пароля соответствующего пользователя в виде открытого текста.
2. Билеты CCACHE очень портативны. Их можно Скачать
Недавно у меня была возможность работать в среде, управляемой FreeIPA.
Я хотел бы уделить время тому, чтобы поделиться некоторыми уроками, которые я узнал о FreeIPA, о том, как она работает, и о своей методологии атаки на нее. Прежде всего, что такое FreeIPA и почему он должен меня волновать?
Ну, честно говоря, я понятия не имел, пока не столкнулся с ним в дикой природе. После небольшого исследования я обнаружил, что это альтернатива Microsoft Windows Active Directory с открытым исходным кодом, используемая в основном в качестве интегрированного решения для управления средами Unix. Как и Active Directory, FreeIPA реализует полную инфраструктуру каталогов LDAP, поддерживаемую центром распределения ключей MIT Kerberos. Он использует систему сертификатов Dogtag для управления сертификатами CA и RA, что дает ему возможность обрабатывать многофакторную аутентификацию, включая смарт-карты. SSSD используется для интеграции FreeIPA в стандартный процесс аутентификации Unix.
Таким образом, все вместе мы имеем систему управления хостом Unix, в комплекте с LDAP и Kerberos, которая обеспечивает многофакторную аутентификацию. Из-за огромного количества контента, а также в попытке сделать эти посты более читабельными, я разделю их на серию. Этот пост призван охватить следующие темы: Общие файлы/переменные среды/двоичные файлы для помощи в идентификации хостов во время ситуационной осведомленности Аутентификация в среде FreeIPA с сохранением в памяти файлов Keytab, CCACHE Ticket и CCACHE Tickets.
Ситуационная осведомленность Хосты Linux, зарегистрированные в доменах FreeIPA, имеют несколько индикаторов, которые операторы могут сортировать для получения информации о хосте и домене. Давайте кратко рассмотрим несколько файлов, переменных окружения и двоичных файлов, указывающих на то, что хост был зарегистрирован в домене FreeIPA. Следующие файлы должны быть зарегистрированы на каждом узле, зарегистрированном в домене Kerberos:
/etc/krb5.conf
Файл krb5.conf содержит информацию о клиенте Kerberos, необходимую для регистрации в домене. Сюда входят местоположения KDC и серверов администрирования для интересующих областей Kerberos, значения по умолчанию для текущей области и для приложений Kerberos, а также сопоставления имен узлов с областями Kerberos.
/etc/ipa/default.conf
Это файл конфигурации по умолчанию для серверов IPA, он используется для установки общесистемных значений по умолчанию, которые будут применяться при работе клиентов и серверов IPA.
/etc/krb5.keytab
Файл krb5.keytab требуется на всех хостах внутри домена. Это требуется в рамках процесса аутентификации в KDC.
Существует также несколько переменных среды, которые, если они установлены, могут указывать на то, что узел зарегистрирован в домене Kerberos:
KRB5CCNAME
Если эта переменная задана, она указывает на местоположение билета CCACHE, который будет использоваться для аутентификации.
KRB5_KTNAME
Если установлена, эта переменная указывает на местоположение файла Keytab, который будет использоваться для аутентификации.
KRB5_CONFIG
Если эта переменная задана, она указывает на расположение файла конфигурации Kerberos.
KRB5_KDC_PROFILE
Если эта переменная задана, она указывает на расположение файла конфигурации KDC, который содержит дополнительные директивы настройки для демона Центра распределения ключей.
KRB5RCACHETYPE
Эта переменная определяет тип кэша воспроизведения по умолчанию, который будет использоваться для серверов.
KRB5RCACHEDIR
Эта переменная указывает каталог по умолчанию для кэшей воспроизведения, используемых серверами.
KRB5_TRACE
Эта переменная указывает имя файла, в который будут записываться выходные данные журнала трассировки. Журналы трассировки могут помочь пролить свет на решения, принимаемые внутри библиотек Kerberos.
KRB5_CLIENT_KTNAME
Эта переменная задает имя файла keytab клиента по умолчанию.
KPROP_PORT
Эта переменная устанавливает порт по умолчанию для использования kprop.
Существует также несколько двоичных файлов, которые идентифицируют хост как зарегистрированный в домене FreeIPA:
ipa
Этот двоичный файл является стандартом для управления доменом FreeIPA. Его можно использовать для управления узлами сети, пользователями, правилами sudo и многим другим.\
kdestroy
Двоичный файл kdestroy используется для уничтожения любых текущих билетов Kerberos в сеансе пользователя.
kinit
Двоичный файл kinit используется для создания или продления билетов Kerberos.
klist
В двоичном файле klist перечислены все используемые в настоящее время билеты Kerberos, а также участники, к которым они предоставляют доступ.
kpasswd
Команда kpasswd используется для изменения пароля участника Kerberos. kpasswd сначала запрашивает текущий пароль Kerberos, затем дважды запрашивает у пользователя новый пароль, и пароль меняется.
ksu
Ksu может быть использован в качестве альтернативы двоичному файлу su для переключения текущего пользовательского контекста.
kswitch
Команда kswitch переключит текущий используемый кэш учетных данных.
kvno
Двоичный файл kvno получает билет службы для указанных участников Kerberos и выводит номера ключевых версий каждого из них.
Аутентификация
Понимание базовых технологий и процессов, используемых для аутентификации и авторизации, жизненно важно для злоумышленника. Не понимая каждого механизма проверки подлинности, злоумышленник может пропустить действительные учетные данные, которые могли привести к боковому перемещению, или другой путь атаки по всей среде. Давайте кратко рассмотрим, как работает процесс аутентификации в среде, управляемой FreeIPA.
Поскольку FreeIPA использует Kerberos для аутентификации, этот процесс очень похож на аутентификацию в Active Directory. Чтобы получить доступ к ресурсам в домене, пользователь должен иметь действительный билет Kerberos для этого ресурса. Эти билеты могут храниться в нескольких различных местах в зависимости от конфигурации домена FreeIPA. Я кратко рассмотрю каждый механизм аутентификации, рассказав о том, как анализировать и повторно использовать этот материал от потенциального злоумышленника.
CCACHE Ticket Files
Если билеты настроены на хранение в виде файла на диске, стандартным форматом и типом является файл CCACHE. Это простой двоичный формат файла для хранения учетных данных Kerberos. Эти файлы обычно хранятся в /tmp и имеют 600 разрешений. С точки зрения злоумышленников это важно по следующим причинам:
1. Действительные билеты могут быть использованы для аутентификации без необходимости ввода пароля соответствующего пользователя в виде открытого текста.
2. Билеты CCACHE очень портативны. Их можно Скачать
View hidden content is available for registered users!