Auditoria criação e exclusão conta de usuário em domínio

Objetivo

Esse post tem como objetivo identificar o usuário que realizou a criação ou exclusão de uma conta de usuário no domínio. 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 = 4720, 4726

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
    }
}

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 – Quem criou o usuário

Vamos simular a criação de um usuário de nome Ace.

O usuário foi criado de forma padrão, sem opções habilitadas.

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 o ID do evento que neste caso é 4720. Clique em OK.

O evento 4720 será filtrado. Procure o horário aproximado que o cliente reportou a solicitação e abra o evento.

No evento é possível verificar se a ação foi com sucesso ou falha, o usuário que foi criado e quem criou. Neste caso o usuário administrator criou o usuário Ace com sucesso. Em User Accout Control são informados os atributos que são habilitados na criação do usuário, por exemplo, se a opção “User must change password at next logon” fosse marcada durante a criação do usuário o evento seria registrado nesse log. Como a opção “User must change password at next logon” não foi habilitada durante a criação do usuário o log exibe ‘Password Not Required’ – Enabled. Em Subject é o usuário que realizou a ação, em New Account é o usuário que foi criado, em  Attributes são os atributos que foram criados.

Procedimento – Quem excluiu o usuário

Vamos simular a exclusão do usuário Ace.

No campo Include/Excludes Event IDs informe o ID do evento que neste caso é diferente do evento de criação 4726. Clique em OK.

O evento 4726 será filtrado. Procure o horário aproximado que o cliente reportou a solicitação e abra o evento.

Neste caso o usuário administrator conseguiu excluir o usuário Ace com sucesso. Em Subject é o usuário que realizou a ação, em Target Account é o usuário que sofreu a ação.

Concluímos que através desses procedimentos é possível identificar qual usuário criou ou excluiu um usuário específico.