
Objetivo
Esse post tem como objetivo identificar quando um atributo de usuário é alterado. Um usuário possui vários atributos e quando esses atributos são alterados o Active Directory registra o evento 4738. Alguns exemplos de atributos são Display Name, User Principal Name: user logon name, Password Last Set: last time password changed but also used for “user must change password at next logon” Account Expires, Logon Hours: Day or week and time of day restrictions. Nesse post iremos abordar como o AD regista quando a senha do usuário é configurada para nunca expirar.
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 = 4738
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 – Alteração de conta, habilitado
Vamos simular a alteração do atributo “Password never expires” do usuário Zoro.

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 é 4738. Clique em OK.

O evento 4738 é 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 alterou o atributo “’Don’t Expire Password’ – Enabled”. Neste caso o usuário administrator conseguiu habilitar a senha do usuário Zoro para nunca expirar com sucesso. Em Subject é o usuário que realizou a ação, em Target Account é o usuário que sofreu a ação, em Changed Attributes são os atributos que foram alterados na conta do usuário.

Procedimento – Alteração de conta, desabilitando
Vamos simular a alteração do atributo “Password never expires” do usuário Zoro, desabilitando a opção.

O evento 4738 é usado para quando o atributo é habilitado ou desabilitado. Procure o horário aproximado que o cliente reportou a solicitação e abra o evento.
Neste caso o usuário administrator conseguiu desabilitar a senha do usuário Zoro para nunca expirar com sucesso, ou seja, desabilitando essa opção a senha do usuário passa a respeitar a política de senha padrão do domínio. Em Subject é o usuário que realizou a ação, em Target Account é o usuário que sofreu a ação, em Changed Attributes são os atributos que foram alterados na conta do usuário.

Concluímos que através desses procedimentos é possível identificar um usuário que alterou o atributo de senha nunca expira.