# 4. Безопасность операционных систем - Windows
###### tags: `Windows Labs`
# Windows Server
Используем стенд с первого этапа стажировки.

Серверу уже назначены роли dns и DS
## Создание пользователей
руками 20 пользователей создавать — дело не царское.
Гуглим скрипт.
https://fun-admin.ru/windows/powershell-kak-sozdat-lokalnyx-polzovatelej-i-dobavit-ix-v-gruppy/
Автор статьи предлагает сначала создать в excel csv файл с данными о каждом пользователе, а затем скормить его в powershell. Так и поступим.


Буфер обмена между машинами у меня почему-то не работает, поэтому я воспользуюсь внешним онлайн буфером обмена cl1p.net

текст успешно доставлен на сервер


теперь используем скрипт

парольная политика ругается. Отключим её (если бы не задание, поменял бы пароли)


пробуем скрипт ещё раз. Готово

## Дамп паролей
Как хорошо, что я делал подробные отчёты на модуле Windows Basic. Теперь могу украсть у себя инфу, как сдампить ntds.
запускаем ntdsunil и создаём снапшот

выгружаем файлы на linux через самбу


качаем impacket

Достаём хэши


теперь перенаправим вывод в текстовый файл и сохраним его

## Развёртывание роли DHCP
Сделано на первом этапе стажировки.
Диапазон раздачи адресов:

Уже выданные адреса:

Создадим статический пул адресов









Пул создан

## Развёртывание роли Printer Server
Добавляем роль




Добавляем принтер








## Выгрузить конфигурацию сервисов DHCP
бэкапим dhcp


бэкапим принтеры

фыйлы успешено сохранены.
Теперь идёим в самбу с линукса и выгружаем всю папку **backups**


# Windows Workstation
## Включить в состав домена
сделано на первом этапе стажировки


## Установить ПО: Notepad++



## Написать скрипт для Notepad++
Так как язык скрипта не указан, напиши на наиболее удобном для меня - python.
Ставим питон на виртуалку


Теперь пишем скрипт
```python
import os
# Это кравлер или павук
def find_all(name, path):
result = []
for root, dirs, files in os.walk(path):
if any(name.lower() in file.lower() for file in files):
result.append(os.path.join(root, name))
return result
possible_path_list = (x[:-13] for x in find_all("notepad++.exe", "/"))
nothing = True
version = ''
the_path = ""
for possible_path in possible_path_list:
files = os.listdir(possible_path)
# print(files)
detect_list = ['change.log', 'langs.model.xml',
'notepad++.exe', 'shortcuts.xml',
'stylers.model.xml', 'uninstall.exe']
if all(x in files for x in detect_list):
nothing = False
the path = possible_path
with open(possible_path+"\\change.log", 'r') as f:
version = ' '.join(f.readline().split()[:2])
if not nothing:
print(f"Notepad++ is installed\nVersion: {version}"\nPath is: {the_path})
print("Vendor: None, Open source")
else:
print("Notepad++ is not installed")
```
Чтобы проверить только необходимые файлы, скачал самую первую версию notepad++.


## Создать локального пользователя User1


## Добавить доменного пользователя
В предыдущем задании не было сказано, что пользователи доменные, поэтому сейчас ручками пропишу для каждого домен



Аккаунтам добавилась группа *Domain Users*

Пришлось дополнительно включить доменный логин.

Теперь можно добавить пользователя на win10

Пользователь успешно добавился

Теперь добавляем пользователей в группу Local Admins

доменные админы уже внесены в группу

## Написать скрипт, выводящий членов локальной группы администраторов


в обычном поше команда работает

## Написать скрипт, выводящий конфигурацию сетевой карты
Информацию не нашёл.