Получение списка учетных записей AD, созданных за последние 24 часа

Отдел информационной безопасности поставил задачу разработки простейшей системы аудита, которая должна ежедневно выгружать статистику об учетных записях Active Directory, созданных за последние 24 часа, а также информацию о том, кто создал эти учетные записи в домене.

Powershell скрипт получения списка недавно созданных пользователей в Active Directory

Для получения списка пользователей созданных в Active Directory за последние 24 часа, проще всего воспользоваться командлетом PowerShell Get-ADUser.  Вывод командлета будем фильтровать по атрибуту пользователя whencreated, в котором хранится дата и время создания учетной записи.  У меня получится такой простенький PowerShell скрипт:

$lastday = ((Get-Date).AddDays(-1))
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\new_ad_users_” + $filename + “.csv”
Get-ADUser -filter {(whencreated -ge $lastday)} | Export-csv -path $exportcsv

В этом примере список учетных записей AD сохраняется в файл с текущей датой в качестве имени. С помощью планировщика можно настроить ежедневный запуска данного скрипта, в результате чего в указанном каталоге будут накапливаться файлы содержащих информацию о дате создания той или иной учетной записи. В отчет можно добавить любые другие атрибуты пользователя из Active Directory (см. статью об использовании Get-ADUser).

Отчет со списком пользователей, созданных в Active Directory за последние 24 часа

Как узнать, кто создал учетную запись в Active Directory

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

При заведении нового пользователя в журнале безопасности контроллера домена (только того DC, на котором создавалась учетная запись) появляется событие с кодом EvenId 4720 (на DC должна быть включена политика аудита Audit account management в политике Default Domain Controller Policy).

В описании этого события содержится строка A user account was created, а затем указан аккаунт, из-под которого была создана новая учетка пользователя AD (выделен на скриншоте ниже).

Событие "A user account was created" eventid 4720Скрипт для выгрузки всех событий создания аккаунтов из журнала контроллера домена за последние 24 часа может выглядеть следующим образом:

$time =  (get-date) - (new-timespan -hour 24)
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\ad_users_creators” + $filename + “.csv”
Get-WinEvent -FilterHashtable @{LogName="Security";ID=4720;StartTime=$Time}| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$CreatorUser = $event.Event.EventData.Data[4]."#text"
$NewUser = $event.Event.EventData.Data[0]."#text"
$dc = $event.Event.System.computer
$dc + “|” + $Time + “|” + $NewUser + “|” + $CreatorUser| out-file $exportcsv -append
}
}

Кто создал учетную запись в ADПо аналогии со статьей «Простая система аудита удаления файлов и папок для Windows Server» можно настроить сохранение информации о найденных событиях не в текстовый файл на каждом DC, а через MySQL .NET Connector  для PowerShell единую базу MySQL.

(Пока оценок нет)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x