Модуль DSInternals поддерживает возможность работы в среде WinPE. Это дает возможность реализации ряда сценариев непосредственно над самой базой NTDS.dit когда контроллер домена Active Directory выключен. Например:
- Модификация учетных записей
- Сброс пароля администратора домена Active Directory
- Дамп хешей паролей Active Directory
В данной статье будет продемонстрирован процесс создания загрузочного диска WinPE с модулем DSInternals на борту.
Создание загрузочного диска
Первым шагом необходима установка компонентов Windows ADK. Производим установку самого Windows ADK 1903
![Установка Windows ADK 1903](https://ait.in.ua/wp-content/uploads/2019/04/Ustanovka-Windows-ADK-1903-613x450.png)
![Установка Windows Preinstallation Environment (PE) 1903](https://ait.in.ua/wp-content/uploads/2019/04/Ustanovka-Windows-Preinstallation-Environment-PE-1903-613x450.png)
После установки, запускаем Deployment and Imaging Tools Environment от имени администратора:
![Deployment and Imaging Tools Environment](https://ait.in.ua/wp-content/uploads/2019/04/Deployment-and-Imaging-Tools-Environment-553x450.png)
Воспользуемся утилитой copype для копирования образа WinPE в рабочий каталог:
1 | copype amd64 "d:\WinPE\DSInternals WinPE" |
Результат выполнения:
![Отработка утилиты copype](https://ait.in.ua/wp-content/uploads/2019/04/Otrabotka-utility-copype-701x450.png)
Далее, производим монтирование wim образа в каталог mount. Он доступен по пути “D:\WinPE\DSInternals WinPE\mount”.
1 | Dism /Mount-Image /ImageFile:"D:\WinPE\DSInternals WinPE\media\sources\boot.wim" /index:1 /MountDir:"D:\WinPE\DSInternals WinPE\mount" |
Результат выполнения:
![Монтируем образ Windows PE](https://ait.in.ua/wp-content/uploads/2019/04/Montiruem-obraz-Windows-PE-701x450.png)
По умолчанию, в WinPE отсутствует поддержка PowerShell и .NET. Эти компоненты необходимы для создания образа WinPE с модулем DSInternals. Для их установки воспользуемся следующими командами:
1 2 3 4 5 6 7 8 | Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-NetFX_en-us.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-Scripting_en-us.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab" Dism /Add-Package /Image:"D:\WinPE\DSInternals WinPE\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-PowerShell_en-us.cab" |
Следующим шагом будет добавление модуля DSInternals в WinPE. Для этого скачиваем последнею версию модуля с Git репозитория разработчика.
Обязательно производим разблокировку скачанного архива командлетом Unblock-File. Если этого не сделать, модуль в DSInternals в WinPE не будет загружен. Будет ошибка 0x80131515 при попытке его ручного импорта.
Копируем каталог DSInternals из скачанного архива в каталог Modules, в моем случае это D:\WinPE\DSInternals WinPE\mount\Windows\System32\WindowsPowerShell\v1.0\Modules
![Установка PowerShell модуля DSInternals](https://ait.in.ua/wp-content/uploads/2019/04/Dobavlenie-modulya-PowerShell-v-obraz-WinPE-611x450.png)
Чтобы консоль PowerShell автоматически загрузилась после старта, в WinPE необходимо добавить файл winpeshl.ini. Создать этот файл требуется в каталоге D:\WinPE\DSInternals WinPE\mount\Windows\System32 со следующим содержимым:
1 2 3 | [LaunchApps] wpeinit.exe powershell.exe, -NoExit -NoLogo -ExecutionPolicy Bypass |
Результат выполнения:
![Автозагрузка Powershell в WinPE](https://ait.in.ua/wp-content/uploads/2019/04/Avtozagruzka-Powershell-v-WinPE-610x450.png)
Завершаем процесс модификации образа WinPE.
1 | Dism /Unmount-Image /MountDir:"D:\WinPE\DSInternals WinPE\mount" /commit |
На финальном шаге создаем загрузочный ISO образ:
1 | MakeWinPEMedia /ISO "D:\WinPE\DSInternals WinPE" "D:\WinPE\DSInternals WinPE\WinPE with PS DSInternals.iso" |
Результат выполнения:
![Создание ISO образа](https://ait.in.ua/wp-content/uploads/2019/04/Sozdanie-ISO-obraza-701x450.png)
Загрузившись с ISO образа, удостоверимся что модуль dsinternals присутствует. Для этого следует выполнить командлет Get-Command с указанием модуля dsinternals
1 | Get-Command -Module dsinternals |
Кратко подытожу все выполненные действия:
- Установлен Windows ADK и образы WinPE;
- В образ WinPE установлены необходимые компоненты – PowerShell и .NET;
- Добавлен модуль DSInternals и создан загрузочный носитель.
Выводы
Используя компоненты Windows ADK и PowerShell модуль DSInternals возможно создать загрузочный носитель для выполнения операций над базой данных NTDS.dit выключенного контроллера домена Active Directory. Кейсов по применению этого носителя ровно столько, сколько входящих в модуль командлетов.
Если у вас возникли какие-либо вопросы, пожалуйста, пишите в комментарии.