Showing posts with label GPO. Show all posts
Showing posts with label GPO. Show all posts

Thursday, 24 August 2023

GPO and Item-level targeting.

Hi All,

as you know, Item-level targeting can use to target group policy preference settings based on application settings and properties of users and computers in granular level. We can use multiple targeting items in preference settings and make selections based on logical operators (AND, OR, IS, IS NOT).

Item-level targeting in group policy preferences can setup/manage using GPMC. To do that open the group policy settings > Go to relevant Preference settings > right click and select properties.

In my example I am using GPO created for IE 10 Settings, there for the path for it is User Configuration > Preferences > Internet Settings > Internet Explorer 10. Then right click and select properties. 

From properties window, then select Common tab > tick item-level targeting > then click on Targeting button. 


In next window, we can build granular level targeting based on one item or multiple items with logical operators. 


In above example I have built a query based on three setting which is NetBIOS name, Operating System and IP address. In order to apply the preference setting, all three statements should give TRUE value as result as I used AND logical operator. If its OR logical operator the result can have True or False values. 

In the window, New Item menu contained items we can use of targeting. Add Collections allows to create parenthetical grouping. Item Options menu is responsible for defining logical operators. 

As you remember, I early tried to do it by WMI Filters. However WMI filters don't have result by logical AND, so I will prefer to do it by Item-level targeting.

Good luck.

Saturday, 25 February 2023

Влияем на MS ATA через функцию отражения.

Всем привет.

Установка ведения журналов блоков сценариев доставляется в компьютеры Windows через настроенные в контроллере домена глобальные параметры: параметры объекта Групповой политики (GPO).

При каждом исполнении команды интерпретатором PowerShell ведение журналов блоков сценариев проверяет соответствующий объект Групповой политики в ключе реестра и принимает решение о регистрации этой команды или её игнорировании. 

Тем не менее, как обычно, дьявол кроется в деталях. Для повышения производительности соответствующая настройка ведения журналов блоков сценариев кэшируется в памяти, в частности, внутри переменной с именем cachedGroupPolicySettings.

Эта переменная, или чтобы быть более точным свойство определяется в загружаемом DLL System.Management.Automation внутреннем статическом классе Utils. 

Ведение журнала блоков сценариев включено когда cachedGroupPolicySettings установлено в определённое значение. Если оно не определено, ведение журналов блоков сценариев отключено - во всех его смыслах и проявлениях.

Можем ли мы считать это пространство памяти и обойти имеющиеся правила объектно- ориентированного программирования, которые гласят, что мы не можем получать доступ к закрытым переменным вне их классов? Да, и ещё раз: да! Более того, мы способны перекрыть это поле в памяти чтобы отключить ведение журнала для своего конкретного экземпляра PowerShell. В конце концов, любой загружаемый обычным процессом пользователя код DLL пребывает в пространстве пользователя, а переменные этой DLL обычно находятся в страницах памяти для чтения/записи. Поэтому мы можем отключать ведение журналов не обладая полномочиями администратора. Чтобы реализовать такой трюк вуду мы полагаемся на функцию, носящую название отражения (reflection).

В исполняемых файлах .NET отражение (reflection) позволяет фрагменту кода считывать код данного исполняемого кода извлекать методы и участников и изменять их во время выполнения. В основном это допустимо по причине того, что исполняемый файл .NET не содержит реального собственного машинного кода. Вместо этого он состоит из промежуточного кода с названием Microsoft Intermediate Language (MSIL, Промежуточного языка Microsoft), который компилятор транслирует из кода верхнего уровня, как правило C#. Во время исполнения код MSIL на лету компилируется в аппаратный код средой Windows Common Language Runtime (CLR, времени исполнения общего языка).

В то время как в обычном исполняемом файле все метаданные (имена функций, переменные, структуры и т. д.) заменяются абстрактными смещениями и сведениями о размере при компиляции, в формате MSIL эти метаданные сохраняются в сборке, что позволяет составить список функции любого заданного двоичного файла, вызывать их, создавать экземпляры объектов и т.д. По существу, это позволяет нам манипулировать внутренними компонентами двоичного файла во время выполнения. Именно это делает возможным отражение.

Wednesday, 1 February 2023

Профиль пользователя в AD.

Всем привет.

Есть много способов замапить внешний диск пользователю при его входе в ПК. Например с помощью login VB-скрипта, или команды net use, или GPO. 

Но есть более изящный способ. Можно указать его в профиле пользователя в AD, как показано ниже:


Это все на сегодня.)

Friday, 11 November 2022

Используем PSWindowsUpdate.

Всем привет.

В PowerShell есть такой замечательный модуль PSWindowsUpdate, который предназначен для управление обновлениями Windows. Его можно и нужно использовать для управления обновлениями Windows-хоста из командной строки. Модуль PSWindowsUpdate не встроен в Windows и доступен для установки из репозитория PowerShell Gallery.  PSWindowsUpdate позволяет администраторам удаленно проверять, устанавливать, удалять и скрывать обновления на рабочих станциях и серверах Windows. 

Модуль PSWindowsUpdate особо ценен при использовании для управления обновлениями в Core редакциях Windows Server (в которых отсутствуют графический интерфейс), а также для хостов которые по технологическим причинам не подчиняются корпоративным GPO.

Собственно вы его можете установить на хост при наличии интернета:

Install-Module -Name PSWindowsUpdate

Если интернет недоступен то просто скопировать с другого хоста папку PSWindowsUpdate куда он был установлен ранее и выполнить импорт:

Import-Module PSWindowsUpdate

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

get-command -module PSWindowsUpdate


Назначение команд модуля:

Clear-WUJob – использовать Get-WUJob для вызова задания WUJob в планировщике;

Download-WindowsUpdate (алиас для Get-WindowsUpdate –Download) — получить список обновлений и скачать их;

Get-WUInstall, Install-WindowsUpdate (алиас для Get-WindowsUpdate –Install) – установить обвновления;

Hide-WindowsUpdate (алиас для Get-WindowsUpdate -Hide:$false) – скрыть обновление;

Uninstall-WindowsUpdate -удалить обновление с помощью Remove-WindowsUpdate;

Add-WUServiceManager – регистрация сервера обновления (Windows Update Service Manager) на компьютере;

Enable-WURemoting — включить правила Windows Defender файервола, разрешающие удаленное использование командлета PSWindowsUpdate;

Get-WindowsUpdate (Get-WUList) — выводит список обновлений, соответствующим указанным критериям, позволяет найти и установить нужное обновление. Это основной командлет модуля PSWindowsUpdate. Позволяет скачать и установить обновления с сервера WSUS или Microsoft Update. Позволяет выбрать категории обновлений, конкретные обновления и указать правила перезагрузки компьютера при установке обновлений;

Saturday, 18 June 2022

PowerShell для тестирования Windows.

Всем привет.

Статья содержит список PowerShell команд, собранных из разных уголков Интернета, которые могут быть полезны во время тестов на проникновение. Я их нашел на Leakinfo, March 19, 2021.

Список команд включает в себя различные пост-эксплуатационные однострочные программы в чистой PowerShell, не требующие каких-либо потенциально помеченных как вредоносные сторонних модулей, а также набор удобных административных команд. Часть команд вам выдаст пустой ответ – анализируйте сами, бывает разное, либо запрашиваемое значение действительно отсутствует либо оно находится в другом месте реестра.

Поиск файлов с конфиденциальной информацией

Следующие команды PowerShell могут быть полезны на этапе после эксплуатации для поиска файлов на диске, которые могут содержать учетные данные, сведения о конфигурации и другую конфиденциальную информацию.

Ищем потенциально интересные файлы

С помощью этой команды мы можем идентифицировать файлы с потенциально конфиденциальными данными, такими как информация об учетной записи, учетные данные, файлы конфигураций и т.д., на основе их имени файла:

Код:

gci c:\ -Include *pass*.txt,*pass*.xml,*pass*.ini,*pass*.xlsx,*cred*,*vnc*,*.config*,*accounts* -File -Recurse -EA SilentlyContinue

Рекомендуется сделать это для каждого диска, но вы также можете просто запустить его в папке c:\users для некоторых быстрых результатов.

Ищем учетные данные в файлах Sysprep или Unattend

Эта команда будет искать остатки автоматических установок и автоконфигураций, которые потенциально могут содержать пароли в открытом виде или пароли в кодировке base64:

Код:

gci c:\ -Include *sysprep.inf,*sysprep.xml,*sysprep.txt,*unattended.xml,*unattend.xml,*unattend.txt -File -Recurse -EA SilentlyContinue

Это один из хорошо известных методов повышения привилегий, так как обычно используется пароль локального администратора. Рекомендуется сделать это для каждого диска.

Wednesday, 18 May 2022

Аудит объектов GPO.

Всем привет.

Согласно лучших практик в AD со временем появляются объекты GPO которые по тем или иным причинам не используются или задействованы частично. Причем при этом следует различать не задействованную политику в разделе Пользователя или Компьютера, незалинкованную политику и просто пустую политику. Все такие типы имеют место быть, но в целях безопасности лучше он них вовремя избавляться.

Поэтому самое время поискать у себя неполные GPO с помощью Powershell.

Ловим пустые GPOs в домене так:

Function Get-EmptyGPO {

Param (

[Parameter(Position=0,ValueFromPipeline=$True,

ValueFromPipelinebyPropertyName=$True)]

[string]$DisplayName

)

Begin {

Import-Module GroupPolicy

}

Process {

#create an XML report

[xml]$report=Get-GPOReport -Name $displayname -ReportType XML

 #totally empty

 if ((-Not $report.gpo.user.extensiondata) -AND (-not $report.gpo.computer.extensiondata)) {

    #no extension data so write

    Get-GPO -Name $Displayname

}

} #process

End {}

} #function

Sunday, 24 October 2021

PowerShell Security book #2.

Hi all.

Today I would like to present second part of my resume by e-book "PowerShell Security".

JEA.

I don't know if I need to describe JEA again. Ok, I will write about it very shortly today. So, by default, there are three Session Configurations on each Windows computer, namely: 

  • microsoft.powershell, 
  • microsoft.powershell.workflow,
  • microsoft.windows.server-managerworkflows.

1) Get-PSSessionConfiguration

Define "HelpDesk" configuration:

Register-PSSessionConfiguration -Name HelpDesk

This opens the dialog you already know from managing file permissions:

Register-PSSessionConfiguration -Name HelpDesk -ShowSecurityDescriptorUI

Defining RunsAs users:

Register-PSSessionConfiguration -Name HelpDesk -RunAsCredential forza.com\MikeLee

Set additional options via configuration file:

New-PSSessionConfigurationFile -Path .\MyConfig.pssc

The following are particularly useful to prevent users from potentially harmful actions:

-languageMode with the values FullLanguage, RestrictedLanguage, ConstrainedLanguage, NoLanguage: The latter allows only the exe-cution of cmdlets and functions, other language resources are not available. 

FullLanguage offers the full range of language capabilities, the other two lie between these two poles.

-VisibleAliases, VisibleCmdlets, VisibleFunctions, VisibleProviders: These allow you to specify which aliases, cmdlets, functions, and providers are available in the session. 

You can use wildcards and specify multiple values as array.

Example:

New-PSSessionConfigurationFile -Path .\MyConfig.pssc -VisibleCmdlets "Get*","Select*"

You adjust the Session Configuration based on this file:

Set-PSSessionConfiguration -Name HelpDesk -Path .\MyConfig.pssc

Enter-PSSession -ComputerName Remote-PC -ConfigurationName HelpDesk

-OR-

Invoke-Command -ComputerName Remote-PC -ConfigurationName Helpdesk {Get-ChildItem}

2) New-PSRoleCapabilityFile -Path MyRCF.psrc

-OR-

JEA Helper Tool create MyRCF.psrc

Once you have created the list of permitted cmdlets and parameters, you can add them to the .psrc file. You save this file in a directory called RoleCapabilities under

$env:ProgramFiles\WindowsPowerShell\Modules

The last step is to link the role capabilities to the desired session configu-ration. To do this, edit the configuration file with the extension .pssc and add the role functions there.

Since you create this file automatically at the beginning, this (commented out) section for RoleDefinitions should already be there:

RoleDefinitions = @{ 'CONTOSO\SqlAdmins' = ` @{ RoleCapabilities = 'SqlAdministration' }; 

'CONTOSO\SqlManaged' = @{ RoleCapabilityFiles = 'C:\RoleCapability\SqlManaged.psrc' }; 

'CONTOSO\ServerMonitors' = ` @{ VisibleCmdlets = 'Get-Process' } }

Sunday, 26 September 2021

Advanced Group Policy Management.

Всем привет.

Advanced Group Policy Management, расширенное управление политиками групп, это классический инструмент, использующийся для контроля и защиты GPO (Group Policy). На многих предприятиях GPO контролируют чуть ли не каждый аспект и область в сетевом окружении, так что надежности в их отношении мало не бывает!

AGPM входит в специальный пакет MDOP (Microsoft Desktop Optimization Pack) - получить его можно при активной подписке MS, MSDN или Software Assurance.

По сравнению с классическим управлением групповой политикой здесь предлагаются следующие возможности:

  • версионирование: если вы обдумывали, как прикрутить к групповым политикам SVN или Git, то AGPM этот вопрос решает.
  • делегирование и премодерация: можно разрешить создание GPO отдельным сотрудникам, но без права применения. Применять может, к примеру, старший администратор после проверки.
  • аудит: отчеты и мониторинг помогут при разборах полетов на тему «Кто забыл повесить фильтр безопасности на установку 1С?».

Русификация AGPM наводит печаль. Локализованную версию можно и не ставить, я выбрал два языка о чем после сильно пожалел. Так что выбирайте только Английский!

Установка и использование AGPM.

AGPM сервер - для работы AGPM нужно будет установить службу на сервер, где будет лежать архив групповой политики. По-хорошему архив должен лежать на надежном хранилище с регулярным резервным копированием. При установке также запрашиваются учетные данные для работы службы и учетная запись, которой выдаются полные права. Вопрос "а если у этой учетки изменится пароль" для меня остается открытым.

В идеале надо настроить разрешение на работу с GPO только для этой учетной записи. Но это не обязательно, если приучить людей с административными правами не трогать групповые политики в обход AGPM. В качестве учетной записи для работы службы неплохим вариантом станет настройка MSA (Managed Service Accounts). Ознакомиться с принципами работы этого механизма можно в разделе Group Managed Service Accounts. А посмотреть пошаговый пример по настройке связки MSA и AGPM в статье Running AGPM with a Managed Service Account. Powershell рулит!

Сам сервер может быть любым, устанавливать на контроллер домена в принципе можно, это уже дело вкуса.

AGPM клиент - клиента также можно установить на любой машине, где сможет запуститься оснастка «Управление групповой политикой». Разумеется, она должна иметь доступ к AGPM-серверу по порту TCP (по умолчанию 4600). Работа с AGPM производится через вышеупомянутую оснастку, в пункте «Изменение управления».

Saturday, 26 June 2021

Реанимация SCCM-агента.

Всем привет. 

Время от времени агент SCCM теряет связь с SCCM-сервером и становится не активным после долгого простоя. Иногда включения хоста в сеть бывает достаточно, но не всегда. Сегодня мы рассмотрим варианты по восстановлению работоспобности агента SCCM. Первый способ восстановить агента Configuration Manager - использовать утилиту ccmrepair.exe. Ниже я упомяну и о некоторых дополнительных методах, с помощью которых вы можете легко исправить проблемы с агентом клиента SCCM.

Вариант 1.

Если у вас есть ccmrepair, вы можете легко восстановить агент клиента sccm с помощью командной строки:

cd C:\Windows\ccm

C:\Windows\CCM>ccmrepair.exe

Repairing product {88B420C9-C484-4E20-8D02-C25243A36B80}…

Done.


Вариант 2.

Не помогло? Используем Powershell. Удалим полностью агента, выполнив скрипт с админстративными правами.

cd C:\Windows\ccmsetup

.\ccmsetup.exe /uninstall

Start-Sleep -Seconds 10

while (Get-Process -Name ccmsetup -ErrorAction SilentlyContinue) {

    Start-Sleep -Seconds 180

}

Start-Sleep -Seconds 120

Thursday, 22 April 2021

Методы установки программного обеспечения в SCCM.

Всем привет.

Программное обеспечение в SCCM Current Branch можно установить как Application (Приложение) или классически как Program (Пакет).

Считается что установка программного обеспечения с помощью Application (Приложение) является более гибкой в настройках. Разницу между Application (Приложение) и Program (Пакет) вы можете наблюдать на скриншоте.


В тоже время в настройках Application (Приложение) необходимо указать: 

- обязательно: требования к операционному окружению целевого хоста (Global Conditions),  

- обязательно: указать метод проверки наличия уже установленного ПЗ на целевом хосте (Detection method),

- не обязательно: провести проверка необходимого сопутствующего ПЗ, если таковое отсутствует то происходит его пред-инсталирование (Dependecies),

- и наконец, если все что заявлено выше соответствует требованиям то выполняется установка самого Приложения. Ура!

Wednesday, 23 December 2020

Разовая задача в GPO.

Всем привет.

Случилась на днях задачка, по которой надо бы опросить ПК пользователей на тему оставленных USB-флешек. Это касалось тех ПК которые не выключались на ночь. 

Ну что ж, выходит что надо выбрать какое-нибудь ночное время и выполнить самописный скрипт один раз:

Get-WMIObject Win32_DiskDrive | Where { $_.InterfaceType –eq ‘USB’ }

Всего один. Заходим в GPO и выбираем плюсик, а далее выбираем выполнить "Once", т.е разово.



Все просто. Но можно спутать с менюшкой "Immediate task" где по идее можно сделать почти тоже самое. Т.е. только раз, но прямо сейчас.


Кстати, в обоих случаях есть вариант поддержки идемпонетности, т.е. когда задачу не надо выполнять каждый раз при накатывании политики. Раз выполнил и все. 



За это отвечает опция "Apply once and do not reapply." Однако как GPO оценивает что она применилась успешно - вопрос не однозначный. В этом случае лучше обратить свои взоры на Desired State Configuration.

Удачи всем.

Saturday, 12 September 2020

Утилита BGinfo - помощник администратора.

Всем привет! 

Суметь выудить у пользователя нужную информацию по его проблеме непросто. Сегодня я вам подскажу как улучшить взаимодействие между пользователем и специалистом технической поддержки или системным администратором. Самое ценное для нас это знать где эта проблема обитает, т.е. на каком хосте. Да, можно начать с ФИО пользователя которое он часто не сообщает, далее пройтись в AD, там найти его учетку сопоставить с IP-адресом и т.п. Долго! Много движений мышкой, а рука может быть занятой трубкой телефона, пользователи ведь так любят чтобы  с ними говорили голосом...

Решение есть - популярная утилита BGinfo.

BGInfo - это маленькая утилита входящая в состав всем известного пакета Sysinternals от Марка Русиновича. Как вы поняли в ее задачи входит отображение на рабочем столе, некой полезной системной информации.

Сколько раз вы заходя в систему на своем рабочем компьютере получали ситуацию, что вам нужно было щелкнуть несколько диагностических окон, чтобы раскрыть его DNS имя, IP-адрес или версию операционной системы? Если таких компьютеров за сотню то вам нужен BGInfo. Он автоматически отображает соответствующую информацию о компьютере Windows на фоне рабочего стола, такую как имя компьютера, IP-адрес, версия пакета обновления, размер дисков, любые другие WMI данные и т. д. Вы можете редактировать любое поле, шрифт и цвета фона, можете поместить его в папку автозагрузки, чтобы он запускал каждую загрузку, или даже настроить его для отображения в качестве фона для экрана входа в систему. Поскольку BGInfo просто записывает новое настольное растровое изображение и завершает работу, вам не нужно беспокоиться о том, что он потребляет системные ресурсы или мешает другим приложениям.

Думаю достаточно рекламы. Как ее внедрить в систему показано здесь и и здесь.

Sunday, 6 October 2019

Передача событий сервера в Syslog.

Всем привет.

Как то мы разбирали ранее что события с Windows-сервера можно перенаправить на другой Windows-сервер.

Это легко можно устроить с помощью групповой политики. Для этого в групповой политике в ветке “Computer Configuration –> Policies –> Administrative Templates –> Windows components –> Event Forwarding” установить параметр “Configure the server address, refresh interval, and issuer certificate authority of a target Subscription Manager” в значение “Enabled” со следующим значением опции “SubscriptionManagers”: Server=http://<Event Collector FQDN>:5985/wsman/SubscriptionManager/WEC

Для протокола HTTPS прописываете обмен через порт 5986.

И надо не забыть сказать кто(hostname or IP-adr) имеет право эти события забирать в политике Windows Components/Windows Remote Management (WinRM)/WinRM Service. This policy setting allows you to manage whether the Windows Remote Management (WinRM) service automatically listens on the network for requests on the HTTP transport over the default HTTP port. If you enable this policy setting, the WinRM service automatically listens on the network for requests on the HTTP transport over the default HTTP port. To allow WinRM service to receive requests over the network, configure the Windows Firewall policy setting with exceptions for Port 5985 (port for HTTP).

Но я решил такую трансляцию разнообразить и передавать все события и на сервер syslog для страховки. Для начала решаем чем же сделать шлюз.

Еvtsys.

Для того чтобы включить трансляцию событий из журналов сервера в syslog надо доставить на него один маленький сервис. Этот сервис Еvtsys хорошо известен в сети, и не менее популярно описан как самим автором так и благодарными пользователями.

Его установка весьма проста.

copy evtsys.* %systemroot%\system32
%systemroot%\system32\evtsys.exe -h SYSLOGSRV -s 240 -i
net start evtsys

где SYSLOGSRV это имя нашего Syslog-сервера.

Далее неплохо бы поправить файл конфига %systemroot%\system32\evtsys.cfg
net stop evtsys
...правка...
net start evtsys

По умолчанию фильтр указанный в Evtsys.cfg выглядит так, что передаются события со всех четырех основных журналов.

XPath:Application:<Select Path="Application">*</Select>
XPath:Security:<Select Path="Security">*</Select>
XPath:Setup:<Select Path="Setup">*</Select>
XPath:System:<Select Path="System">*</Select>

Wednesday, 5 June 2019

Секреты групповой политики Windows.

Всем привет.

Кто бы мог подумать? Вы возможно знали об этом,  а я - нет.) С университета нас приучают что в групповой политике (Group  Policy) безопасности на Windows все что не включено, то отключено. Или если не задано, то по крайней мере не может быть использовано! Я тоже так думал ...

Но вот пришлось разбираться с каналом в интернет на своем ПК, и что я вижу: по умолчанию, т.е. никакого вашего участия, Windows резервирует до 20% пропускной способности канала. Видимо под свои нужды. Это на Windows XP. На Windows 8 эта цифра уже 80%! И это действует если эта политика отключена или просто не задана!


А вы когда нибудь ходили сюда на своем домашнем ПК? Не уверен.) Да просто сейчас наберите gpedit.msc и проверьте.

Wednesday, 16 January 2019

System Monitor для Windows.

Всем привет.

Изучаем новое не забывая старое. Оказывается повысить информативность и расширить возможности функции штатного аудита событий в Windows-среде можно используя утилиту System Monitor (Sysmon).

Часть 1.

Утилиту Sysmon можно загрузить с веб-сайта Microsoft Docs, из раздела Windows Sysinternals download пакета Windows Sysinternals от Марка Руссиновича.

Для эксперимента берем специальную готовую сборку с GitHub download, включающую файл конфигурации Sysmon Threat Intelligence Configuration от ION-STORM. Она ориентирована именно на выявление инцидентов информационной безопасности и может выступить качественной основой для создания твоих собственных файлов конфигурации.

Утилиту можно установить точечно на каждое рабочее место либо с использованием групповых политик (Group Policy) в домене.

Инсталирование в качестве сервиса:
>sysmon64.exe -i

Применение новой конфигурации:
>sysmon64.exe -с config.xml

Если все ок, то получим ответ:

Loading configuration file with schema version 4.00
Configuration file validated.
Configuration updated.

Тестовый config.xml может быть таким:

<Sysmon schemaversion="4.00">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>

  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">
      <Signature condition="contains">microsoft</Signature>
      <Signature condition="contains">windows</Signature>
    </DriverLoad>

    <ProcessTerminate onmatch="include">
    <!-- Log network connection if the destination port equal 443 -->
    <!-- or 80, and process isn't InternetExplorer -->
    </ProcessTerminate>

    <NetworkConnect onmatch="include">
      <DestinationPort>443</DestinationPort>
      <DestinationPort>80</DestinationPort>
      <Image condition="is">C:\Program Files\OpenVPN\bin\openvpn-gui.exe</Image>
      <Image condition="contains">Notepad</Image>
    </NetworkConnect>

    <NetworkConnect onmatch="exclude">
      <Image condition="end with">iexplore.exe</Image>
      <Image condition="end with">chrome.exe</Image>
    </NetworkConnect>

    <FileCreate onmatch="exclude">
      <Image condition="is">C:\Windows\system32\mmc.exe</Image>
      <Image condition="contains">chrome.exe</Image>
    </FileCreate>

    <FileCreateTime onmatch="exclude">
      <Image condition="contains">chrome.exe</Image>
    </FileCreateTime>

  </EventFiltering>
</Sysmon>

Справка по параметрам конфигурации сервиса:
>sysmon64.exe -? config

Проверка текущей конфигурации:
>sysmon64.exe -c

Если все ок, то получим такую сводку:

Current configuration:
 - Service name:                  Sysmon64
 - Driver name:                   SysmonDrv
 - HashingAlgorithms:             SHA1,MD5,SHA256,IMPHASH
 - Network connection:            enabled
 - Image loading:                 disabled
 - CRL checking:                  disabled
 - Process Access:                disabled

Rule configuration (version 0.00):
 - DriverLoad                         onmatch: exclude
Signature                      filter: contains     value: 'microsoft'
Signature                      filter: contains     value: 'windows'
 - ProcessTerminate                   onmatch: include
 - NetworkConnect                     onmatch: include
DestinationPort                filter: is           value: '443'
DestinationPort                filter: is           value: '80'
Image                          filter: is           value: 'C:\Program Files\OpenVPN\bin\openvpn-gui.exe'
Image                          filter: contains     value: 'Notepad'
 - NetworkConnect                     onmatch: exclude
Image                          filter: end with     value: 'iexplore.exe'
Image                          filter: end with     value: 'chrome.exe'
 - FileCreate                         onmatch: exclude
Image                          filter: is           value: 'C:\Windows\system32\mmc.exe'
Image                          filter: contains     value: 'chrome.exe'
 - FileCreateTime                     onmatch: exclude
Image                          filter: contains     value: 'chrome.exe'


Инструментарий настолько гибкий, что можно задавать любые конструкции, нацеленные на то, чтобы отслеживать определенные действия или исключать их из твоего поля зрения.

Wednesday, 10 October 2018

Местоположение скриптов AD у клиента.

Всем привет.

Сегодня надо было срочно выяснить какие скрипты из доменной политики применяются у пользователя при загрузке ОС Windows.

Недавно когда мне был доступен MS SCCM я знал что весь код распространения (пакеты) прилетал пользователю в папку
C:\Windows\ccmcache

Далее он там лежал по подпапкам в зависимости от заданий которые планировались администратором. Т.е. клиент MS SCCM доставлял его туда и запускал на выполнение.

Со временем кеш MS SCCM клиента занимал много места, поэтому было целесообразно его чистить периодически:
powershell -command "gwmi -Class CacheInfoEx -Namespace root\ccm\softmgmtagent | % {$_ | Remove-WmiObject; Remove-Item $_.Location -Recurse -Force;}"
или так
powershell -command "gwmi -Class CacheConfig -Namespace root\ccm\softmgmtagent | % { Get-ChildItem $_.Location |  Remove-Item -Recurse -Force }"

В политиках домена любые скрипты (BAT, CMD, JS, PS1) можно установить на Login/Logoff пользователя, а также на Start/Shutdown самой Windows.

После применения политики скрипты у клиента лягут вот сюда
C:\Windows\System32\GroupPolicy\User\Scripts
или сюда соответственно
C:\Windows\System32\GroupPolicy\Machine\Scripts

Местоположение проверить можете по результирующей политике:




Вроде ничего не забыл.
Удачи.

Sunday, 9 September 2018

GPO и Powershell.

Всем привет.

Что разобраться с политиками домена и порядком их применения может понадобиться отчет от Powershell. Для этого вначале надо выполнить импорт двух модулей
Import-Module ActiveDirectory
Import-Module GroupPolicy

А далее все просто. Прочитать в формате HTML все политики домена можно так:

Get-GPOReport -All -ReportType HTML -Path "d:\GPOReport1.html"

Получить результирующую политику для вашего хоста:

Get-GPResultantSetOfPolicy -ReportType Html -Path "d:\result.html"

Получить результирующую политику для вашего хоста в формате XML:

Get-GPResultantSetOfPolicy -ReportType xml -Path "d:\res2.xml"

Обычно имеет смысл узнать в каком порядке применились политики. Такой порядок выбирается так:

[xml]$xml = Get-Content d:\res2.xml
$xml.DocumentElement.ComputerResults.GPO | select name, @{LABEL="LinkOrder";EXPRESSION={$_.link.linkorder}} | sort linkorder

Сохранить политики не забываем так:
Backup-GPO -All -Path "d:\backup"
И лучше такую процедуру поставить на расписание.

Восстановить все аналогично таким образом:
Restore-GPO -All -Path "d:\backup"

Thursday, 6 September 2018

Группы в AD - типы и область действия.

Всем привет.

Начиная работать с АD первым делом следует разобраться с группами. Ибо дальше вы просто не продвинетесь в планировании своей инфраструктуры.

В АD существует два типа групп: безопасности и распространения. При создании группы нужно выбрать ее тип в диалоговом окне Новый объект - Группа (New Object - Group). 

Группы распространения изначально используются приложениями  электронной почты. Эти группы - не субъекты безопасности и не содержат SID-идентификаторы. Поэтому им нельзя назначать разрешения доступа к ресурсам. Сообщение, отправленное группе распространения, будет переслано всем ее членам. 

Группы безопасности представляют собой принципалы безопасности с SID-идентификаторами. Поэтому такие группы можно использовать как элементы разрешений в списках ACL для управления безопасностью доступа к ресурсам. Группы безопасности могут также служить приложениям электронной почты в качестве групп распространения. Если группа будет использоваться для  управления безопасностью, она должна быть группой безопасности. Поскольку группы безопасности можно применять и для доступа к  ресурсам, и для распространения электронной почты, многие организации  используют только группы безопасности. Тем не менее если группа будет применяться только для распространения электронной почты, рекомендуется создать группу распространения. Иначе группе будет назначен SID-идентификатор, который добавляется в маркер безопасности доступа пользователя, увеличивая таким образом его размер.

Помимо типа групп существует три области действия для каждой группы:

Локальная в домене - используется для управления разрешениями доступа к ресурсам в пределах всего домена.

Глобальная группа - используется для определения коллекции объектов доменов на основании бизнес-правил и управление объектами, которые требуют ежедневного использования.

Универсальная группа - Рекомендуется использовать в лесах из множества доменов. С помощью нее можно определять роли и управлять ресурсами, которые распределены на нескольких доменах.

Sunday, 12 August 2018

Инструментарий обеспечения готовности по постановлению №95.

Всем привет.

Продолжим тему 95-й.

На форуме In4Sec c докладом "Проверка готовности к постановлению №95 от НБУ" выступил представитель фирмы "Бакотек" Игорь Смолянкин. Собственно доклад был весьма полезен тем что напротив каждого пункта Игорь предложил техническое решение, которое позволяет этот пункт реализовать на практике.

В начале вкратце Игорь напомнил всем предисторию и стандарты на которых появилась идея: 
  • ISO / IEC 27001
  • ISO / IEC 27002
  • PCI DSS
  • СУИБ и другие постановления НБУ.

Основные положения постановления: 
• контроль прав доступа, полномочий;
• выявление атак;
• мониторинг событий информационной безопасности;
• контроль доступа к сети;
• защита электронной почты;
• предотвращение атак, направленных на отказ сервисов;
• антивирусная защита;
• двухфакторная аутентификация.

А  далее по пунктам  которые требуют инструментального решения. 

36. Банк зобов’язаний розробити та затвердити внутрішні документи, які встановлюють вимоги щодо використання, надання, скасування та контролю доступу до інформаційних систем банку і мають містити: 
1) вимоги до ідентифікації, автентифікації, авторизації користувачів;
2) послідовність дій під час управління доступом, у тому числі в разі віддаленого доступу (реєстрація, надання повноважень, перегляд та скасування доступу);
3) перелік типових функцій та прав доступу до інформаційних систем банку;
4) вимоги щодо здійснення заходів контролю доступу, уключаючи контроль за діями привілейованих користувачів;
5) періодичність контролю наданих прав доступу; 
6) вимоги до протоколювання дій під час управління доступом.

Инструмент:
Quest Change Auditor
One Identity

Thursday, 12 July 2018

Перенос пользователей в AD.

Всем привет.

Случается перенос базы пользователей с одного домена в AD на другой. Штатных есть три варианта: утилитами CSVDE, LDIFLE и RSAT(Powershell).

Как принято вначале выполняем экспорт, а потом, естественно, импорт базы.

CSVDE:

Eхport CSVDE:
csvde -f C:\123\exportAD.csv -m -n -o "primaryGroupID,lockoutTime" -j d:\Logs\

Import CSVDE:
csvde -i -f C:\exportAD.csv -k -j D:\Logs\


При использовании этих утилит не экспортируются атрибуты, связанные с безопасностью — имена групп, которым принадлежат пользователи и пользовательские пароли. Пользователям присваиваются пустые пароли и атрибут "Требовать смену пароля при следующем входе в систему".

LDIFLE:

ldifde -u -f C:Exportuser.ldf -s dc2 -d "dc=mydomain,dc=local" -p subtree -r "(&(objectCategory=person)(objectClass=User)(givenname=*))" -l "cn,sn,description,givenName,initials,displayName,name,objectclass,profilePath,homeDirectory,homeDrive,samAccountName,mail"

Затем с помощью текстового редактора автоматически меняем в файле Exportuser.ldf имя домена у всех пользователей:
DC=mydomain,DC=local на DC=new,DC=mydomain,DC=local

И делаем импорт:
ldifde -i -f C:Exportuser.ldf -s dc02

При экспорте, если есть проблемы с русскими атрибутами пользователей, надо добавить ключ -u, т.е. экспорт в юникод. Ключ -f указывает на файл обмена.

RSAT(Powershell):

Export to CSV:
get-aduser –filter * -property * | export-CSV d:\export\adusersexport.csv -NoTypeInformation -Encoding UTF 8

Import CSV:
Import-Module ActiveDirectory
$USERS = Import-CSV d:\export\adusersexport.csv

$USERS|Foreach{
Set-ADUSer -Identity $_.samaccountname -TelephoneNumber $_.TelephoneNumber -MobilePhone $_.MobilePhone -StreetAddress $_.StreetAddress -City $_.City -Title $_.Title}?

Ежели сильно сухо то ниже привожу подробную инструкцию от одного парня.

Версия на печать

Популярное