1000+ инструкций в блоге SoftComputers
0 0 голоса
Рейтинг

Обеспечение надежности паролей пользователей в Active Directory (AD) — ключевой аспект защиты данных и инфраструктуры домена. Несмотря на рекомендации избегать простых комбинаций, словарных слов или личной информации, многие пользователи продолжают использовать слабые пароли, такие как P@ssw0rd или Pa$$w0rd. Это создает уязвимости, которые могут быть использованы злоумышленниками. В этой статье мы подробно разберем, как провести аудит паролей в Active Directory с использованием PowerShell и модуля DSInternals, чтобы выявить слабые, повторяющиеся или пустые пароли и повысить безопасность домена.

Приобрести оригинальные ключи активации Windows Server можно у нас в каталоге от 1190 ₽

Зачем проводить аудит паролей в Active Directory?

Даже при настроенной доменной политике паролей пользователи могут обходить требования, устанавливая слабые или предсказуемые комбинации. Такие пароли уязвимы для атак перебора (brute-force) или словарных атак. Аудит позволяет:

— Выявить аккаунты с слабыми паролями.

— Найти учетные записи с одинаковыми паролями.

— Обнаружить аккаунты без пароля или с настройкой «пароль никогда не истекает».

— Проверить соответствие политикам безопасности.

Для этого мы будем использовать PowerShell и модуль DSInternals, который предоставляет инструменты для анализа хэшей паролей в базе Active Directory (файл ntds.dit) в онлайн- или офлайн-режиме.

Установка модуля DSInternals для анализа паролей

Модуль DSInternals содержит командлеты для работы с базой данных Active Directory, включая Test-PasswordQuality, который позволяет выявить слабые, одинаковые, пустые пароли или аккаунты с настройкой «пароль не требуется». Модуль работает с хэшами паролей, так как сами пароли в открытом виде в AD не хранятся.

Установка модуля в PowerShell

Для PowerShell версии 5.0 и выше установите модуль из официальной галереи PowerShell:

Install-Module -Name DSInternals

В изолированных системах или для более старых версий PowerShell:

1. Скачайте последнюю версию модуля (например, DSInternals v4.8) с GitHub.

2. Распакуйте архив в одну из папок модулей PowerShell:

— C:\Windows\System32\WindowsPowerShell\v1.0\Modules\DSInternals

— C:\Users\%username%\Documents\WindowsPowerShell\Modules\DSInternals

3. Импортируйте модуль вручную:

Import-Module C:\Path\To\DSInternals\DSInternals.psd1

Если появляется ошибка «cannot be loaded because running scripts is disabled», разрешите выполнение скриптов в текущей сессии:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

Для просмотра доступных командлетов выполните:

Get-Command -Module DSInternals

Создание словаря паролей для аудита

Для проверки паролей потребуется словарь паролей — текстовый файл (например, PasswordDict.txt), содержащий список распространенных или слабых паролей. Вы можете:

— Скачать готовый словарь из интернета (например, списки RockYou или других известных словарей).

— Создать собственный файл, добавив туда популярные пароли, такие как 123456, password, qwerty и т.д.

Сохраните словарь в удобной директории, например, C:\PS\PasswordDict.txt. Модуль DSInternals сравнит хэши паролей пользователей AD с хэшами слов из этого файла.

Поиск слабых паролей с помощью Test-PasswordQuality

Для проведения аудита создайте PowerShell-скрипт, который использует командлет Test-PasswordQuality. Укажите следующие переменные:

— Путь к файлу словаря.

— Имя контроллера домена.

— Доменное имя в формате DN (Distinguished Name).

Пример скрипта:


$DictFile = "C:\PS\PasswordDict.txt"
$DC = "msk-dc01"
$Domain = "DC=softcomputers,DC=ru"
Get-ADReplAccount -All -Server $DC -NamingContext $Domain | Test-PasswordQuality -WeakPasswordsFile $DictFile -IncludeDisabledAccounts

Этот скрипт:

1. Получает данные об учетных записях с помощью Get-ADReplAccount, включая NT- и LM-хэши паролей, а также их историю.

2. Сравнивает хэши паролей пользователей (включая отключенные аккаунты) с хэшами из словаря.

3. Выводит отчет о качестве паролей.

Пример результата аудита

После выполнения скрипта вы получите отчет, подобный этому:

Офлайн-аудит базы Active Directory

Если требуется проверить пароли без прямого доступа к контроллеру домена, можно выполнить офлайн-анализ файла ntds.dit из резервной копии или теневой копии. Для этого:

1. Получите файл ntds.dit и файл SYSTEM из папки C:\Windows\System32\config контроллера домена.

2. Извлеките загрузочный ключ (BootKey) из файла SYSTEM:

$keyb = Get-BootKey -SystemHiveFilePath 'C:\ADBackup\registry\SYSTEM'

3. Проведите аудит паролей:


Get-ADDBAccount -All -DatabasePath 'C:\ADBackup\ntds.dit' -BootKey $keyb | Test-PasswordQuality -WeakPasswordsFile $DictFile

4. Для экспорта хэшей в файл (например, для анализа в Hashcat):


Get-ADDBAccount -All -DBPath 'C:\ADBackup\ntds.dit' -BootKey $keyb | Format-Custom -View HashcatNT | Out-File C:\PS\adhashes.txt -Encoding ASCII

Дополнительные возможности и рекомендации

Использование старой версии DSInternals

В текущей версии Test-PasswordQuality отсутствует параметр ShowPlainText, который позволял отображать пароли в открытом виде при совпадении с хэшами словаря. Если это необходимо, установите версию 2.23 модуля:

Install-Module -Name DSInternals -RequiredVersion 2.23

Управление слабыми паролями

После выявления учетных записей с слабыми паролями вы можете:

— Сгенерировать новые случайные пароли через PowerShell и принудительно их сменить:


Set-ADAccountPassword -Identity "SOFTCOMPUTERS\aivanov" -NewPassword (ConvertTo-SecureString "NewComplexP@ssw0rd!" -AsPlainText -Force)

— Настроить Azure AD Password Protection для блокировки слабых паролей в локальном Active Directory, создав черный список запрещенных комбинаций.

Регулярный аудит и политики безопасности

Для повышения безопасности домена:

— Проводите аудит паролей регулярно, особенно для учетных записей с Fine-Grained Password Policies.

— Убедитесь, что политики сложности паролей требуют минимум 12–14 символов, сочетание букв, цифр и спецсимволов.

— Отключите настройку «пароль никогда не истекает» для некритичных учетных записей.

— Используйте инструменты мониторинга, такие как Azure AD Password Protection, для предотвращения использования слабых паролей.

Аудит паролей в Active Directory с помощью PowerShell и модуля DSInternals позволяет выявить уязвимости, связанные со слабыми или повторяющимися паролями. Регулярное выполнение таких проверок, использование словарей паролей и внедрение строгих политик безопасности помогут защитить домен от атак и повысить общий уровень безопасности инфраструктуры. Настройте автоматизированные скрипты для периодического анализа и оперативно устраняйте выявленные проблемы, чтобы минимизировать риски.

author avatar
copywriter
banner for Windows
Лицензионный ключ активации Windows от
1099 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
     
0 отзывов
10
Межтекстовые Отзывы
Посмотреть все комментарии