Auditoria criação e exclusão de grupos em domínio

Objetivo

Esse post tem como objetivo identificar o usuário que realizou a criação ou exclusão de grupos no Active Directory.

Esses eventos são gerados no domain contoller que a ação foi processada. Por isso, antes de realizar a análise verifique com o cliente o site que ele se encontra, pois torna mais fácil a busca. Também há outras formas de realizar a pesquisa do evento em todos os domain controllers ao mesmo tempo, como por exemplo o cmdlet Get-WinEvent.

Abaixo um exemplo de um script que pode ser utilizado, no meu caso possuo os domain controllers DC2016 e DC201602, altere o nome desses servidores para os que pretende realizar a busca.

# Lista dos Domain Controllers, altere para os de sua rede.
$DCs = @("DC2016", "DC201602")
# IDs de evento que desejamos buscar
$EventIDs = 4727, 4731, 4754, 4730, 4734, 4758

foreach ($DC in $DCs) {
    Write-Host "`nColetando eventos no servidor: $DC" -ForegroundColor Cyan

    try {
        $logs = Get-WinEvent -ComputerName $DC -FilterHashtable @{
            LogName = 'Security'
            Id      = $EventIDs
        }

        if ($logs.Count -eq 0) {
            Write-Host "Nenhum evento encontrado no DC: $DC" -ForegroundColor Yellow
        }
        else {
            $logs | Select-Object TimeCreated, Id, LevelDisplayName, Message, MachineName |
                Sort-Object TimeCreated |
                Format-Table -AutoSize
        }
    }
    catch {
        Write-Host "Erro ao consultar ${DC}:" -ForegroundColor Red
        Write-Host $_ -ForegroundColor DarkRed
    }
}

Escopo do grupo

Cada grupo tem um escopo que identifica até que ponto o grupo é aplicado à árvore de domínio ou à floresta. O escopo de um grupo define o local em que as permissões de rede podem ser concedidas para o grupo. O Active Directory define os três seguintes escopos de grupo: Universal, Global e Local de Domínio. Para mais informações sobre escopo de grupos consulte o KB da Microsoft https://learn.microsoft.com/pt-br/windows-server/identity/ad-ds/manage/understand-security-groups

Pré-requisitos:

É necessário que a auditoria de gerenciamento de objetos esteja habilitada no servidor, seja através de GPO ou diretiva local (servidores em WORKGROUP), para verificar esse pré-requisito consultar o post Verificação de Auditoria – GPO e WORKGROUP

Procedimento – Criação de grupos

Os eventos de criação de grupos são diferentes para cada escopo em específico, conforme abaixo.

Grupo Global: Gera o evento 4727;
Grupo Local: Gera o evento 4731;
Grupo Universal: Gera o evento 4754;

Foram criados três grupos, cada um em seu respectivo escopo.

Global1
Local1
Universal1

Execute o Event Viewer, navegue até Windows Logs\Security. Clique com o botão direito em Security e selecione Filter Current Log…

No campo Include/Excludes Event IDs informe os IDs dos eventos que neste caso serão 4727, 4731 e 4754. Os eventos devem ser separados por vírgula. Clique em OK.

Os eventos 4727, 4731 e 4754 serão filtrados. Procure o horário aproximado que o cliente reportou a solicitação e abra o evento.

Evento de criação do grupo global Global1

Evento de criação do grupo de domínio local Local1

Evento de criação do grupo universal Universal1

Procedimento – Exclusão de grupos

Os eventos de exclusão de grupos são diferentes para cada escopo em específico, conforme abaixo.

Grupo Global: Gera o evento 4730;
Grupo Local: Gera o evento 4734;
Grupo Universal: Gera o evento 4758;

Os três grupos criados anteriormente foram excluídos.

Filtre novamente através dos eventos 4730, 4734 e 4758.

Evento de exclusão do grupo global Global1

Evento de exclusão do grupo de domínio local Local1

Evento de exclusão do grupo universal Universal1

Concluímos que através desses procedimentos é possível identificar um usuário que criou ou excluiu um grupo no Active Directory com sucesso.