ADRT – Active Directory Report Tool: ferramenta para extrair e exibir informações úteis do AD

Como objetivo de colaborar com o dia-a-dia das tarefas diárias dos Administradores de Redes e Analista de Segurança da Informação eu optei em compartilhar esta ferramenta que desenvolvi utilizando PowerShell, HTML e JavaScript. O objetivo do ADRT é basicamente extrair informações úteis do Active Directory e exibir-las de forma amigável a fim de auxiliar na geração de indicadores e na realização de auditorias.

O ADRT pode ser baixado em github.com/100security/adrt. Abaixo segue um passo a passo para utilizar a ferramenta.

Passo 1

Após realizar o download do adrt.zip descompacte em qualquer diretório (recomendado: C:\adrt). Execute o comando dir para listar os scripts

PS C:\adrt> dir

adrt-01

Passo 2

Execute o script principal adrt.ps1 para visualizar o menu com todas as opções de relatórios.

PS C:\adrt> .\adrt.ps1

adrt-02

Passo 3

Informe o número 00 para realizar as configurações, tais como: Nome da EmpresaSeu Nome e Dados de E-mail.

00 ] Config Tool

Enter a number: 00

Altere os valores nas linhas: 8, 10, 12, 14, 16 e 18

adrt-03

Para o envio de e-mail você pode utilizar um serviço de SMTP autenticado ou um Servidor Local. No artigo abaixo eu mostro como montar um servidor de e-mail local usando Postfix, mas você tem diversas alterativas para fazer isso.

Artigo: Servidor de E-mail com Postfix + SquirrelMail + Outlook [ visualizar ]

Passo 4

Após alterar as configurações com os seus dados, basta informar um número correspondente a um relatório que deseja receber. Exemplo:

01 ] All Users

Enter a number: 01

adrt-04

adrt-04b

Passo 5

relatórios gerados são armazenados na pasta ad-reports\ad-users. Abaixo pode-se ver os arquivos em HTML (ad-users-2018-7-9.html) e CSV (ad-users-2018-7-9.csv).

adrt-05

Visualizando o relatório em HTML: ad-users-2018-7-9.html

adrt-05b

Passo 6

Abaixo pode-se ver o e-mail enviado com os relatórios em anexo.

adrt-06

Passo 7

Outa opção é a extração completa de todos os relatórios disponíveis na opção 14.

14 ] All Reports

Enter a number: 14

adrt-07

Esta opção executa uma interface Web para facilitar a navegação em todos os relatórios gerados. Basta clicar no botão correspondente ao relatório que deseja visualizar:

adrt08

Deixo também um vídeo que pode lhe ajudar a utilizar o ADRT – Active Directory Report Tool.

Caso tenha dúvidas, utilize a área de comentários abaixo!

Marcos Henrique

Mais artigos deste autor »

Marcos Henrique é pós-graduado em Segurança da Informação, é o desenvolvedor do site 100security.com.br, autor dos livros Nagios – Monitoramento de Redes e ownCloud – Crie sua Própria Nuvem publicados pela editora Ciência Moderna.


22 Comentários

Vinicius Caju
2

Olá Marcos obrigado pela materia, estou iniciando no Powershell, vai me ajudar muito esse script.

obrigado
:)

ROGERIO MONTEIRO DOS SANTOS
5

Ao colocar a pasta no servidor, o Windows defender identificou que o arquivo 100security.js é um trojan.

Poderia me ajudar?

Diego
7

Olá Marcos,

Ferramenta bem interessante. Há alguma restrição na versão do Windows Server? Testei no 2012R2 e 2008 e gerar os relatórios, porém não traz informação.

Marcos Henrique Autor do Post
8

Diego,

Não há nenhum tipo de restrição, faça um teste simples, abra o PowerShell e tente executar o comando: PS C:\> Get-ADUser -Filter * , se exibir a lista de usuários a ferramenta deveria funcionar sem problemas, caso contrario certifique-se que instalou o RSAT em seu computador. Qualquer coisa compartilhe o erro aqui!

Klifton
12

Parabéns, rodei em windows server 2008 R2, rodou liso, incrível, muito útil.

Excelente contribuição para a comunidade TI.

Adilson
13

Olá, muito legal os scripts, estou tentando ajustar o arquivo .config.txt, porem quando executo algum script ele tras sempre as informaçoes do dominio defaut da sua empresa, como posso fazer para ajustar ele para a minha empresa?

Andre Oliveira
16

Parabéns, porem o link para baixar está indisponível, pode me dar outra fonte de download?

Paulo
18

Boa tarde Marcos,
não sei porque parou de retornar as informações totalmente preenchidas na tabela. Estava usando normal.
Ele executa mas não preenche toda a tabela.
O que poderia ser?

Douglas
19

Boa tarde Marcos!

Agradeço desde já pela ferramenta, ajudou bastante aqui, gotaria de saber como posso extrair um relatório de logon dos usuário da minha rede, indica alguma ferramenta?

José Carlos
20

Olá Marcos, tudo bem?

Ferramenta bem interessante, porém procuro algo um pouco mais específico, e talvez com sua experiência já tenhas visto algo que possa me ajudar, preciso fazer uma auditoria em “tempo real”, ou seja, se um usuário for bloqueado, ou se algum usuário for inserido no grupo domain admin por exemplo, gostaria que uma notificação fosse enviada via e-mail, Sabes me dizer se existe alguma ferramenta gratuita que faça isso?
Vi que é possível ativar essas opções de auditoria via GPO, mas a tratativa dessas informações em tempo real, somente achei softwares de gerenciamentos de eventos pagos.

Desde já obrigado.

Carlos Lauff
21

Muito legal essa sua ferramenta. Gostaria de fazer uma contribuição: Na pesquisa pelos grupos de administradores, eu coloquei o seguinte código:

$domainSID = (Get-ADDomain).DomainSID
$enterpriseAdmins = Get-ADGroup -Identity $domainSID-519

$t_da = (Get-ADGroupMember -Identity $enterpriseAdmins).count
———-

$domainSID = (Get-ADDomain).DomainSID
$domainAdmins = Get-ADGroup -Identity $domainSID-512

$t_da = (Get-ADGroupMember -Identity $domainAdmins).count
———-

Assim, usando a SID do grupo que é a SID do domínio variando o final, a busca se torna universal e independente do idioma do sistema operacional instalado no computador.

Parabéns pela ferramenta e pelo compartilhamento.

MAYCO ANDREY RANGHETTI
22

ótima ferramenta.
Para contribuir um pouco, segue abaixo uma alteração que fiz no arquivo ad-membergroups.ps1 para deixar a coluna de Membros do grupo um pouco mais limpa, mostrando apenas o nome do usuário, tirando as OU e DC

$result = @($membergroups | Select-Object Name, @{n=’MemberOf'; e= { $_.memberof | Out-String}}, @{n=’Members'; e= { ($_.members -replace ‘CN=(.+?),(OU|DC)=.+’,’$1,’) | Out-String }})

basta substituir a linha origial por este acima.
A linha origial fica logo abaixo de
#– Filter
$membergroups = @(Get-ADGroup -Filter {Name -like “*”} -Properties *)

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">