⠀
⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀
⠀
⠀
# Безопасность операционных систем - Windows
⠀
Итак, мой виртаульный стенд - Windows 7 Максимальная RU, Windows Server 2016 EN и Mikrotik 6.44 в качестве маршрутизатора для внутренней сети.
⠀

⠀
Дальше немного входных данных, чтобы было проще воспринимать взаимодействие между хостами. Стоит отметить, что на этом этапе роль DHCP сервера на контроллере домена не настроена, и параметры ниже могут меняться в ходе проведения практической работы :)
```
Win7
Name: whyme-PC
IP: 192.168.10.100
DNS: не указан
Gateway: 192.168.10.1 (Mikrotik)
WS16
Name: dc
IP: 192.168.10.2
DNS: не указан
Gateway: 192.168.10.1
```
⠀
### Windows Server
⠀
Начнем настройку Windows Server с добавляения ролей (время, сеть и имя хоста настроены)

⠀

⠀
Повышаем роль сервера до контроллера домена, создаем новый лес с корневым доменом **pt.local**. Финальные настройки на скрине.

⠀
Теперь создам 20 пользователей длиной в 8 символов и паролями эквивалетными их именам. В этом же скрипте попробую создать управляемую учетную запись MSA. (А заодно искренне приношу извинения за нарушение последовательности выполнения практической!
P.S. Надеюсь это не скажется на вашей оценке.

⠀
```
RestrictToSingleComputer – параметр означает, что MSA будет привязан только к одному серверу.
```
Запускаю скрипт на контроллере домена, и сразу проверяю, создалась ли MSA учетка, и учетки пользователей в OU

⠀

⠀
В Users and Computers появился раздел Managed Service Accounts, в котором находится наша MSA учетка под именем ptmsa. Атрибут msDS-HostServiceAccount есть - значит привязка к серверу выполнена! Я так-же установил учетку локально, и проверил ее через PS - значение True возвращается при выполнении команды!
⠀
На самом деле, если внимательно посмотреть на мой скрипт, можно увидеть, что я добавляю пользователей IT-отдела в несуществующие группы безопасности AD - "Progr". Я это пофиксил, когда увидел ошибки при выполнении скрипта. Извините.
⠀
Выгружу хэши паролей всех пользователей. (Естественно, кроме MSA. Теперь я знаю, что для аутентификации там используется только Kerberos, интерактивный вход не возможен, пароль не известен никому и не хранится в локальной системе (нельзя извлечь пароль из системного процесса LSASS с помощью mimikatz или аналогичных утилит))
Делаю бекап NTDS, запускаю скрипт impacket для анализа хешей и записываю вывод в файл info.txt

⠀

⠀
Так-же попробую вариант с выгрузкой учеток из ветви реестра system и security на локальной машине. Очевидно, в данном случае первый вариант нам подходит куда больше.

⠀
Теперь вернемся к настройке DHCP-сервера. Установка службы и пост-инсталляционная конфигурация выполнены.

⠀
Укажем пул адресов IPv4, DNS сервер (в моем случае сам домен контроллер), адрес маршрутизатора.

⠀

⠀
Зарезервирую диапазон 192.168.10.190 - 192.168.10.200. (Статические адреса)

Отлично! На хостах внутри сети выберу автоматическое получение IP адреса на Windows 7. Выданный мне адрес 192.168.10.100 - все верно.

⠀
Посмотрим аренду адресов на самом Windows Server. Для этого перейду в Address Leases. Мы видим, что адрес 192.168.10.100 присвоен компьютеру whyme-PC, указана дата истечения адреса, уникальный айди.

⠀
Настроим запуск службы DHCP от имени MSA. Для этого перейду в список сервисов - в консоли вызову *services.msc*

⠀
Откройте свойства **DHCP Server**, перейдем на вкладку **Log on**, выберем MSA аккаунта для доступа к службе. В конце имени обязательно должен быть символ доллара. Укажем пароль.

⠀
Мы установили для службы DHCP Server запуск от имени MSA. Осталось перезапустить сервис, чтобы изменения вступили в силу. Готово!

⠀
Консоль управления Print Managment. Роль Print Server установлена.

⠀
В рамках моей виртаульной сети добавлю принтер локально. Это можно сделать через Print Managment, а так-же через Control Panel. Все изменения отобразятся и там и там.

⠀
Выберу ручную настройку и укажу первый порт LPT1

⠀

⠀
Выберу подходящий драйвер из списка. Опицонально можно указать расположение скачанных драйверов.

⠀
Выбираем имя принтера и разрещаем общий доступ

⠀

⠀
Для развертывыния общих принтеров нам и понадобится Print Server. Сначала создам групповую политику, например для отдела Buhg

⠀
Разверну сетевой принтер, добавив ранее созданный Buhg Printer

⠀

Создам новую групповую политику PrintersPolicy для всего домена. Выставим запрет на установку драйверов пользователями и применю ее.
⠀

⠀

⠀
Запретим устанавливать принтеры, использующие драйверы в режиме ядра на локальный компьютер

⠀
Разрешим установку локальных принтеров для пользователей

⠀
Обновим чтобы изменения вступили в силу

⠀
Для корректного подключения принтеров у любого пользователя, настроим политику Point and Print Restrictions. Настроим доверенные адреса, с которых пользователям разрешено устанавливать принтеры.

⠀
Выделю статический адрес принт серверу

⠀
Выведу конфигурацию ранее созданной области IPv4 через PS

⠀
Выведу выданные в лизинг адреса

⠀
Посмотрим область статических адресов

⠀
Проверим, что DHCPServer действительно привязан к нашему dc (192.168.10.2)

⠀
Это также можно сделать следующим образом. Командлет вернет список всех авторизованных компьютеров, на которых запущен DHCPServer

⠀
А вот адреса Windows 7, который я зарезервировал. Командлет выводит все зарезервированные адреса

⠀
Выведем список принтеров.

⠀
Выведем конфигурацию нашего Buhg Printer

⠀
### Windows Workstation
⠀
Включим Windows 7 в домен pt.local. Для этого перейду в Систему, и изменю настройки рабочей группы

⠀

⠀
Выберу учетную запись администратора домена, введу пароль для присоединения к домену

⠀
Перезагрузим машину для того, чтобы изменения вступили в силу

⠀
Готово!

⠀
Ранее я уже настроил получение айпи адреса с нашего DHCP сервера

⠀
Посмотрим сетевое окружение pt.local. Видим наш Buhg Printer. (Сейчас я в учетке OU ADM с именем Denis)

⠀
Перед продолжением, установлю WMF 5.1 в Windows 7, т.к, чтобы расширить возможности PowerShell до более поздних версий

⠀
Установка Notepad++

⠀
Версия, вендор

⠀
Создам нового локального пользователя User1 без пароля

⠀
Посмотрю список локальных групп и список администраторов

⠀

⠀
Видим, что Domain Admins уже входят в группу локальных администраторов по умолчанию. Тем не менее все равно пропишу эту группу. Мы добавили доменного пользователя Alexander, локального пользователя User1 и группу Domain Admins в группу "администраторы".

⠀
Список локальных администраторов. При этом выводятся все нужные параметры кроме SID. В документации можно использовать флаг -SID только для указание конкретного SID, а не для вывода. Увидел в документации Microsoft: "PrincipalSource поддерживается только в Windows 10, Windows Server 2016 и более поздних версиях операционной системы Windows. Для более ранних версий свойство пусто."

⠀
P.S. Чуть позже все таки нашел интересный способ. Командлет Get-LocalUser ограничен перечислением учетных записей в системе, в которой выполняется команда. Но Get-WmiObject запрашивает локальных пользователей в удаленных системах с помощью WMI, и это дает нам немного больше возможностей. Здесь же и вывод SID)

⠀
Выходные данные можно передать в Select для отображения только необходимой информации, а затем передать в Out-GridView для отображения в отдельном окне с возможностью сортировки и фильтрации информации.

⠀
Можно вообще все свойства вывести

⠀
В консоли работать не очень удобно, поэтому напишу скрипт в ISE. Вывел нужные параметры в Out-GridView для удобства. Вместо -Property можно использовать -Filter <Name> <Value>, чтобы явно фильтровать для вывода нужные учетки.

⠀
И да, все-таки можно получить интересующие параметры и без WMI

⠀

⠀
Конфигурация сетевой карты

⠀
На этом все
Спасибо большое за ваш труд!
⠀
⠀
⠀
⠀
При "прохождении" практической работы я использовал информацию со следующих источников:
1. Ресурсы первого модуля и полученный опыт :)
2. http://pyatilistnik.org/vvedenie-v-osnovnyie-ponyatiya-active-directory/
3. https://habr.com/*
4. https://winitpro.ru/* Большая часть информации
5. https://sanotes.ru/sluzhba-pechati-windows-server-nastroyka-2012-2016/
6. https://microsoft.com (по большей части это командлеты и PowerShell в целом)
⠀
###### tags: `Intesive`