Как стать автором
Поиск
Написать публикацию
Обновить

Основы атак на Active Directory

Время на прочтение7 мин
Количество просмотров23K

По мере роста организации за счет увеличения числа сотрудников, необходимых для поддержки повседневных бизнес-функций, также увеличивается количество устройств, подключенных к сети организации. Несмотря на то, что организация небольшая, в сети очень мало пользователей и компьютеров, и не всегда требуется выделенная ИТ-команда. Самое главное, поскольку в небольшой компании очень мало пользователей, ИТ-специалист может легко создать локальную учетную запись пользователя в каждой системе для каждого сотрудника. Однако по мере увеличения количества пользователей и устройств до средних или крупных организаций создание локальных учетных записей для каждого пользователя на устройстве становится неэффективным.

Сервер Windows, на котором установлена и настроена Active Directory, называется контроллер домена, просто потому, что он позволяет ИТ-специалистам контролировать все, что находится в его домене. Это означает, что вместо создания учетной записи пользователя на каждом компьютере в сети Active Directory позволяет создавать учетную запись пользователя на контроллере домена, назначать пользователей в группы безопасности и даже создавать Объект групповой политики (Group Policy Object) для назначения политик безопасности пользователям и группам в домене. Когда пользователь пытается войти в домен, хост отправляет имя пользователя домена и New Technology LAN Manager (NTLM) хэш версии 2, пароль пользователя к контроллеру домена во время процесса проверки подлинности. Контроллер домена определит, действительны ли учетные данные пользователя, ответит узлу в домене и определит политики безопасности, применяемые к пользователю. Это означает, что пользователь с действительной учетной записью может войти на любое устройство в сети, если это разрешено политикой безопасности, применяемой к учетной записи пользователя домена.

Когда локальная учетная запись пользователя создается в операционной системе Windows 10, учетные данные пользователя сохраняются в Security Account Manager (SAM) в C:\Windows\System32\config. Имя пользователя хранится в виде открытого текста, а пароль
преобразуется в хеш NTLM версии 1 и также сохраняется в файле SAM. Однако, когда пользователь пытается пройти аутентификацию на узле в домене, узел отправляет доменное имя пользователя и хэш пароля NTLM версии 2 на контроллер домена, используя Lightweight Directory Access Protocol (LDAP) по умолчанию — небезопасный протокол каталогов, который используется для выполнения запросов к серверу каталогов, например к контроллеру домена в сети.

Active Directory позволяет использовать следующие функции управления и безопасности:
• Управление профилями пользователей на клиентах и серверах в домене.
• Управление сетевой информацией и конфигурациями.
• Централизованное управление политиками безопасности для пользователей, групп и устройств в домене.
• Конфигурации и политики реестра клиентов.

Перечисление Active Directory

Перечисление позволяет собрать конфиденциальную информацию обо всех объектах, пользователях, устройствах и политиках во всем домене Active Directory. Такая информация даст представление о том, как организация использует Active Directory для управления своим доменом. Вы также сможете получить четкое представление о том, как использовать доверие между клиентами домена, пользователями и контроллером домена для компрометации домена Active Directory организации.

Работа с Power View

PowerView— это очень мощный инструмент PowerShell, который позволяет специалистам по тестированию на проникновение получить всестороннее представление о домене и лесе Active Directory организации. Инструмент PowerView использует собственный код PowerShell (с некоторыми изменениями) для лучшей работы с Active Directory и использование PowerView значительно улучшит процесс перечисления в Active Directory.

В дальнейших примерах будут использованы виртуальные машины Kali Linux, Bob-PC, Alice-PC и Windows Server 2019, объединённые в один домен.

Теперь запускаем Kali Linux, открываем терминал и используем следующие команды,
чтобы загрузить инструменты PowerSploit, включая PowerView, и включить веб-сервер Python3:

kali@kali:~$ git clone https://github.com/PowerShellMafia/PowerSploit
kali@kali:~$ cd PowerSploit/Recon
kali@kali:~/PowerTools/PowerView$ python3 -m http.server 8080

Далее входим на Bob-PC используя учетную запись пользователя домена, открываем браузер и переходим к http://<IP-адрес Kali-Linux>:8080 для доступа к веб-серверу Python3. Отсюда загрузите PowerView.ps1 файл на клиентский компьютер с Windows 10:

Затем открываем Командную строку с привилегиями администратора, переходим в директорию Загрузки и отключаем политику выполнения PowerShell:
C:\Windows\system32> cd C:\Users\bob.REDTEAMLAB\Downloads
C:\Users\bob.REDTEAMLAB\Downloads> powershell -ExecutionPolicy bypass

Затем используйте следующую команду, чтобы включить использование PowerView с Powershell:
PS C:\Users\bob.REDTEAMLAB\Downloads> . .\PowerView.ps1
(Между обеими точками в предыдущей команде есть пробел).
Чтобы получить информацию о вашем текущем домене, используйте следующую команду:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetDomain
Как показано ниже, имя хоста и контроллера домена было изменено.

 Получение сведений о текущем домене
Получение сведений о текущем домене

Чтобы получить Идентификатор безопасности (SID) текущего домена используйте следующую команду:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-DomainSID
S-1-5-21-634716346-3108032190-2057695417
Чтобы получить список доменных политик текущего домена:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-DomainPolicy

Как видите, доступ к системе а также KerberosPolicy были получены
Как видите, доступ к системе а также KerberosPolicy были получены

Для получения идентификатора контроллера домена в текущем домене, используйте следующую команду:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetDomainController
И как показано ниже, были получены сведения о контроллере домена, такие как его операционная система, имя хоста и IP-адреса:

Получение сведений о контроллере домена
Получение сведений о контроллере домена

Чтобы получить список всех пользователей в текущем домене, используйте следующую команду:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetUser
Как показано ниже, извлекаются учетные записи всех пользователей домена и их данные:

Получение учетных записей пользователей
Получение учетных записей пользователей

Для получения списка всех учетных записей компьютеров в текущем домене:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetComputer

Чтобы получить все общие файловые ресурсы на всех устройствах в текущем домене, используйте следующую команду:
PS C:\Users\bob.REDTEAMLAB\Downloads> Invoke-ShareFinder -Verbose

Для списка всех объектов групповой политики из текущего домена используйте:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetGPO

Чтобы получить конкретные сведения о текущем "лесе", используется следующая команда:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetForest

Чтобы получить все домены в текущем "лесу", используйте следующую команду:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetForestDomain

Чтобы получить все глобальные каталоги для текущего "леса", содержащие информацию
обо всех объектах в каталоге:
PS C:\Users\bob.REDTEAMLAB\Downloads> Get-NetForestCatalog

Чтобы обнаружить все устройства, на которых текущий пользователь имеет права локального администратора в текущем домене:
PS C:\Users\bob.REDTEAMLAB\Downloads> Find-LocalAdminAccess -Verbose

 Обнаружение систем с локальным доступом администратора
Обнаружение систем с локальным доступом администратора

Ну а для обнаружения всех учетных записей локальных администраторов на всех компьютерах текущего домена:
PS C:\Users\bob.REDTEAMLAB\Downloads> Invoke-EnumerateLocalAdmin -Verbose

С помощью выше приведенных команд, мы узнали, как использовать PowerView для получения конфиденциальной информации из Active Directory. Использование собранной информации поможет вам идентифицировать и сопоставить пользователей, политики, устройства и контроллер домена с доменом, а также даст вам лучшее представление о пути атаки для взлома домена.

Bloodhound

Bloodhound - это приложение для визуализации данных Active Directory, которое помогает пентестерам эффективно определять пути атаки, чтобы получить контроль над доменом и лесом Windows Active Directory. В целом, данные в Active Directory могут быть получены от
SharpHound или AzureHound. После того, как данные были собраны, они должны быть обработаны Bloodhound, для обеспечения пути атаки и для захвата домена внутри организации.

Для начала установим в Kali linux Bloodhound:
kali@kali:~$ sudo apt update
kali@kali:~$ sudo apt install bloodhound

и запустим в консоли neo4j
kali@kali:~$ sudo neo4j console

Как только neo4j запустится, откройте веб-браузер и перейдите в http://localhost:7474/

Далее введите новый пароль и нажмите: Изменить пароль

После того, как пароль был успешно изменен, можно закрыть браузер.
Теперь откройте новый терминал в Kali Linux и используйте следующую команду для запуска
Bloodhound:
kali@kali:~$ sudo bloodhound
Когда Bloodhound запустится, введите в него данные пользователя для входа:

Далее скачаем SharpHound на клиентский компьютер Bob-PC в домене Active Directory. Для этого перейдите в https://github.com/BloodHoundAD/BloodHound/blob/master/Collectors/
SharpHound.ps1 и скачайте файл.
Далее на Bob-PC откройте командную строку с правами администратора и отключите политику выполнения PowerShell:
C:\Windows\system32> cd C:\Users\bob.REDTEAMLAB\Downloads
C:\Users\bob.REDTEAMLAB\Downloads> powershell -ExecutionPolicy bypass
Далее выполняем скрипт SharpHound:
PS C:\Users\bob.REDTEAMLAB\Downloads> . .\SharpHound.ps1
(также напоминаю, что перед точками пробелы)
Теперь используйте следующею команду, чтобы извлечь данные Active Directory из домена и сохранить их в ZIP-файле на локальном компьютере:
PS C:\Users\bob.REDTEAMLAB\Downloads> Invoke-Bloodhound -CollectionMethod All -Domain redteamlab.local -ZipFileName redteamlab.zip

Извлеченные данные Active Directory
Извлеченные данные Active Directory

Как видим, что ZIP-файл был создан и сохранен. Теперь скопируйте папку ZIP в Kali Linux, и в Bloodhound на правой панели инструментов нажмите Upload Data ,чтобы загрузить папку ZIP. Обработка всех данных займет некоторое время.

Просмотр информации о базе данных
Просмотр информации о базе данных



После обработки данных в левой части Bloodhound щелкните значок меню и выберите Database Info для просмотра общих сведений о домене Active Directory:








Bloodhound содержит предварительные аналитические запросы, которые помогут вам лучше визуализировать пути атаки в домене Active Directory. Нажмите на Analysis для просмотра готовых шаблонов:

Нажмите на Find all Domain Admins (Найти всех администраторов домена) и перейдете на путь атаки для администраторов домена:

Просмотр путей атаки администратора домена
Просмотр путей атаки администратора домена

Далее нажмите Find Shortest Paths to Domain Admins (Поиск кратчайших путей к администраторам домена) для просмотра возможных путей атаки:

Теги:
Хабы:
Всего голосов 8: ↑3 и ↓50
Комментарии5

Публикации

Ближайшие события