Не удалось прогрузить медиа
Всем привет. В своей статье расскажу про немаловажный этап проведения пентеста - переход от локальной среды Active Directory в облачную Azure Active Directory.
Содержание
- Введение
- Azure AD и DCSync
- Атака Pass-the-PRT
- Заключение
Azure Active Directory (Azure AD) — это облачная служба управления идентификацией и доступом от Microsoft. В отличие от традиционной локальной Active Directory, Azure AD использует современные протоколы аутентификации (OAuth 2.0, OpenID Connect) и предназначена для управления доступом к облачным приложениям.
В организациях часто можно встретить гибридную модель инфраструктуры, которая сочетает в себе облако и локалку, просто потому, что она удобна в использовании. Синхронизируются локальные учетные записи AD с Azure AD через службу Azure AD Connect. Ее часто можно встретить на домен контроллерах в компаниях:
Не удалось прогрузить медиа
При синхронизации создается мост между локальной и облачной инфраструктурой, который может быть использован для бокового перемещения (наверно можно назвать это перемещение вертикальным). Для того, чтобы посмотреть, синхронизирован ли домен с облаком, достаточно выполнить команду
Code:
dsregcmd.exe /status
Не удалось прогрузить медиа
Если все хорошо, мы увидим "AzureAdJoined: YES".
Учетные данные, скомпрометированные в локальной AD, часто имеют доступ к соответствующим ресурсам в Azure AD, особенно при использовании технологий единого входа (SSO) и Primary Refresh Token. Рассмотрим пару сценариев горизонтального перемещения в облако. Возможных путей повышения привилегий больше, я выбрал пару несложных и рабочих.
Azure AD и DCSync
Рассмотрим сценарий, когда получен доступ RDP в качестве локального/доменного администратора к компьютеру в домене, подключенному к Azure AD.
Кража учетных данных синхронизации: Azure AD Connect использует специальную учетную запись. Она начинается с MSOL_, например - MSOL_879fde03dbcf, имеет высокие привилегии в локальной AD для чтения объектов и их синхронизации. Ее пароль хранится на сервере Azure AD Connect. Инструменты вроде этого позволяют извлечь эти учетные данные. Скрипт расшифровывает её пароль в открытом виде. В большинстве случаев эта учетная запись обладает ролью Global Administrator в Azure AD и на этом можно остановиться, но если нет - идём дальше.
DCSync-атака: если учетная запись MSOL_...имеет права Replicating Directory Changes, можно выполнить DCSync для выгрузки хэшей паролей всех пользователей, включая привилегированных облачных администраторов. Чтобы узнать, кто в облаке глобальный админ, достаточно зайти с доменной учеткой в Azure и посмотреть свои права и права других пользователей. Допустим, наша цель - глобал админ "cloudadmin". Нам нужно получить его пароль. Небольшой скрипт Powershell для этого (запускать на сервере Azure AD Connect):
Code:
Import-Module DSInternals
# юзернейм нужно поменять на ваш
$syncCredential = Get-Credential -UserName 'domain.com\MSOL_123456ABCDEF' -Message 'Ввод учетных данных службы синхронизации'
#Параметр '-Server' указывает на контроллер домена
Get-ADReplAccount -SamAccountName 'cloudadmin' -Server 'dc01.domain.com' -Credential $syncCredential
Команда выведет данные учетной записи, включая хэш пароля в NTLM.
Альтернатива - выгрузка всех хэшей для последующей атаки Pass-the-Hash (если вы локал админ - поможет для эскалации до домен админа):
Code:
Import-Module DSInternals
$syncCredential = Get-Credential -UserName 'domain.com\MSOL_123456ABCDEF' -Message 'Ввод учетных данных службы синхронизации'
Get-ADReplAccount -All -Server Format-Custom -View HashcatNT Out-File 'C:\temp\all_hashes.txt' -Encoding UTF8
Атака Pass-the-PRT
PRT (Primary Refresh Token - Основной Обновляемый Токен) — это специальный, защищенный токен авторизации, используемый Microsoft Entra ID (Azure AD) для обеспечения единого входа (Single Sign-On, SSO). Так же как и в атке pass-the-hash, нам не нужен пароль пользователя, чтобы получить доступ от его лица - достаточно иметь его токен.
Для проведения этой атаки должны сойтись следующие звёзды:
- Физический или логический доступ к компьютеру, на котором пользователь уже вошёл в систему, Azure AD-joined, включён SSO (можно посмотреть из той же команды dsregcmd /status)
- Локальные права администратора на этом ПК
- Закаченная туда утилита ROADToken.exe
Шаги к успеху:
1. В выводе команды dsregcmd /status найти TenantId. Выглядит примерно так:
Не удалось прогрузить медиа
2. Получить у microsoft nonce - число для генерации кук и аутентификации на microsoftonline.com Powershell:
Code:
$URL = "https://login.microsoftonline.com/<tenant-id>/oauth2/token"
$Params = @{
URI = $URL
Method = "POST"
}
$Body = @{
grant_type = "srv_challenge"
}
$Result = Invoke-RestMethod @Params -UseBasicParsing -Body $Body
$Result.Nonce
В результате скрипт даст вам строку nonce
3. Получить куки от нашего nonce:
Code:
ROADToken.exe <Nonce>
4. Дальше дело за малым - открыть любой браузер, зайти на https://login.microsoftonline.com, в куки добавить x-ms-RefreshTokenCredential и ее значение из пункта 3 и обновиться. Microsoft примет куки за валидные и авторизует вас без многофакторной аутентификации. Теперь можно идти на https://portal.azure.com и на другие ресурсы Microsoft.
Заключение
Получив административный доступ к Azure AD, атакующий получает контроль над облачной инфраструктурой организации:
- Смена паролей, отключение MFA, добавление/удаление пользователей, назначение ролей.
- Доступ к данным Microsoft 365: чтение писем Exchange, файлов (SharePoint, OneDrive), журналов аудита.
- Управление подписками Azure: создание виртуальных машин, доступ к хранилищам ключей (Key Vault), управление ресурсами.
- Создание backdoor-учетных записей через добавление скрытых глобальных администраторов
Перемещение из локальной Active Directory в Azure AD — критический вектор атаки в современных гибридных средах. Пентестеры и специалисты безопасности должны понимать методы компрометации Azure AD через локальные привилегии и уделять особое внимание защите компонентов синхронизации, мониторингу активности и строгому управлению доступом. Регулярные тесты на проникновение, включающие сценарии атак на Azure AD, помогут выявить уязвимости до того, как ими воспользуются реальные злоумышленники.
👍22
🔥1
😮4
👏4
LIMB