
Audita compartilhamentos SMB do Active Directory para inventariar, analisar e relatar privilégios excessivos. Descobre sistemas acessíveis, enumera ACLs de compartilhamentos, identifica configurações de alto risco e gera relatórios HTML/CSV para priorização de remediação.
PowerHuntShares é uma ferramenta PowerShell projetada para ajudar equipes de cibersegurança e testadores de penetração a melhor identificar, entender, atacar e remediar compartilhamentos SMB em ambientes Active Directory que protegem. Todo hacker tem uma história sobre abusar de compartilhamentos SMB, mas é uma superfície de ataque que as equipes de cibersegurança ainda lutam para defender. Este projeto visa fornecer uma ferramenta de prova de conceito aberta para criar um inventário abrangente de compartilhamentos, usando estatísticas, gráficos, diagramas e modelos de linguagem para contextualizar compartilhamentos, resumir relacionamentos, avaliar riscos e priorizar remediação.
Suporta funcionalidades para:
Recursos Bônus:
Recursos do PowerHuntShares v2:
No entanto, podem existir exposições adicionais que não são destacadas além disso.Recursos do PowerHuntShares v1:
PowerHuntShares inventariará ACLs de compartilhamento SMB configuradas com "privilégios excessivos" e destacará ACLs de "alto risco". Abaixo está como elas são definidas neste contexto.
Privilégios Excessivos
Permissões de leitura e gravação excessivas em compartilhamentos foram definidas como qualquer ACL de compartilhamento de rede contendo uma ACE (Entrada de Controle de Acesso) explícita para os grupos "Everyone", "Authenticated Users", "BUILTIN\Users", "Domain Users" ou "Domain Computers". Todos fornecem acesso a usuários do domínio aos compartilhamentos afetados devido a problemas de herança de privilégios. Note que existe um parâmetro que permite aos operadores adicionar seus próprios grupos alvo.
Abaixo está algum contexto adicional:
Por favor, observe: As permissões de compartilhamento podem ser anuladas pelas permissões NTFS. Além disso, esteja ciente de que os testes excluíram nomes de compartilhamento contendo as seguintes palavras-chave:
print$, prnproc$, printer, netlogon, and sysvol
Compartilhamentos de Alto Risco
No contexto deste relatório, compartilhamentos de alto risco foram definidos como compartilhamentos que fornecem acesso remoto não autorizado a um sistema ou aplicativo.
Por padrão, isso inclui os compartilhamentos
wwwroot, inetpub, c$, e admin$
Abaixo está uma lista de comandos que podem ser usados para carregar o PowerHuntShares na sua sessão atual do PowerShell. Observe que um deles terá que ser executado toda vez que o PowerShell for executado. Não é persistente.
# Bypass restrições de política de execução
Set-ExecutionPolicy -Scope Process Bypass
# Importar módulo que existe no diretório atual
Import-Module .\PowerHuntShares.psm1
ou
# Reduzir nível de operação SSL para suportar conexão com github
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12
# Baixar e carregar PowerHuntShares.psm1 na memória
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")
Nota Importante: Todos os comandos devem ser executados como um usuário de domínio não privilegiado.
.EXEMPLO 1: Executar a partir de um computador do domínio. Realiza descoberta de computadores Active Directory por padrão.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
.EXEMPLO 2: Executar a partir de um computador do domínio com credenciais alternativas do domínio. Realiza descoberta de computadores Active Directory por padrão.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential dominio\usuario
.EXEMPLO 3: Executar a partir de um computador do domínio como usuário atual. Segmentar hosts em um arquivo. Um por linha.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -HostFile c:\temp\hosts.txt
.EXEMPLO 4: Executar a partir de um computador não pertencente ao domínio com credencial. Realiza descoberta de computadores Active Directory por padrão.
C:\temp\test> runas /netonly /user:dominio\usuario PowerShell.exe
PS C:\temp\test> Import-Module PowerHuntShares.psm1
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeout 10 -OutputDirectory c:\pasta\ -DomainController 10.1.1.1 -Credential dominio\usuario
=============================================================== PowerHuntShares =============================================================== Esta função automatiza as seguintes tarefas: o Determinar o domínio do computador atual o Enumerar computadores do domínio o Filtrar computadores que respondem a requisições ping o Filtrar computadores que têm TCP 445 aberto e acessível o Enumerar compartilhamentos SMB o Enumerar permissões de compartilhamento SMB o Identificar compartilhamentos com potenciais privilégios excessivos o Identificar compartilhamentos que fornecem acesso de leitura e gravação o Identificar compartilhamentos que são de alto risco o Identificar proprietários comuns de compartilhamentos, nomes e listagens de diretórios o Gerar cronogramas de criação, última modificação e último acesso o Gerar relatório resumido em html e arquivos csv detalhados Nota: Isso pode levar horas para ser executado em ambientes grandes. --------------------------------------------------------------- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| --------------------------------------------------------------- DESCOBERTA DE COMPARTILHAMENTOS --------------------------------------------------------------- [*][03/01/2021 09:35] Início da Varredura [*][03/01/2021 09:35] Diretório de Saída: c:\temp\smbshares\SmbShareHunt-03012021093504 [*][03/01/2021 09:35] Conexão bem-sucedida ao controlador de domínio: dc1.demo.local [*][03/01/2021 09:35] Realizando consulta LDAP para computadores associados ao domínio demo.local [*][03/01/2021 09:35] - 245 computadores encontrados [*][03/01/2021 09:35] Pingando 245 computadores [*][03/01/2021 09:35] - 55 computadores responderam a requisições ping. [*][03/01/2021 09:35] Verificando se a porta TCP 445 está aberta em 55 computadores [*][03/01/2021 09:36] - 49 computadores têm a porta TCP 445 aberta. [*][03/01/2021 09:36] Obtendo uma lista de compartilhamentos SMB de 49 computadores [*][03/01/2021 09:36] - 217 compartilhamentos SMB foram encontrados. [*][03/01/2021 09:36] Obtendo permissões de compartilhamento de 217 compartilhamentos SMB [*][03/01/2021 09:37] - 374 permissões de compartilhamento foram enumeradas. [*][03/01/2021 09:37] Obtendo listagens de diretório de 33 compartilhamentos SMB [*][03/01/2021 09:37] - Segmentando até 3 níveis de diretório aninhados [*][03/01/2021 09:37] - 563 arquivos e pastas foram enumerados. [*][03/01/2021 09:37] Identificando permissões de compartilhamento potencialmente excessivas [*][03/01/2021 09:37] - 33 privilégios potencialmente excessivos encontrados em 12 sistemas.. [*][03/01/2021 09:37] Varredura Concluída --------------------------------------------------------------- ANÁLISE DE COMPARTILHAMENTOS --------------------------------------------------------------- [*][03/01/2021 09:37] Início da Análise [*][03/01/2021 09:37] - 14 compartilhamentos podem ser lidos em 12 sistemas. [*][03/01/2021 09:37] - 1 compartilhamento pode ser gravado em 1 sistema. [*][03/01/2021 09:37] - 46 compartilhamentos são considerados não padrão em 32 sistemas. [*][03/01/2021 09:37] - 0 compartilhamentos são considerados de alto risco em 0 sistemas [*][03/01/2021 09:37] - Identificados os 5 principais proprietários de compartilhamentos excessivos. [*][03/01/2021 09:37] - Identificados os 5 principais grupos de compartilhamentos. [*][03/01/2021 09:37] - Identificados os 5 principais nomes de compartilhamentos. [*][03/01/2021 09:37] - Identificados compartilhamentos criados nos últimos 90 dias. [*][03/01/2021 09:37] - Identificados compartilhamentos acessados nos últimos 90 dias. [*][03/01/2021 09:37] - Identificados compartilhamentos modificados nos últimos 90 dias. [*][03/01/2021 09:37] Análise Concluída --------------------------------------------------------------- RESUMO DO RELATÓRIO DE COMPARTILHAMENTOS --------------------------------------------------------------- [*][03/01/2021 09:37] Domínio: demo.local [*][03/01/2021 09:37] Hora de início: 03/01/2021 09:35:04 [*][03/01/2021 09:37] Hora de fim: 03/01/2021 09:37:27 [*][03/01/2021 09:37] Tempo de execução: 00:02:23.2759086 [*][03/01/2021 09:37] [*][03/01/2021 09:37] RESUMO DE COMPUTADORES [*][03/01/2021 09:37] - 245 computadores do domínio encontrados. [*][03/01/2021 09:37] - 55 (22,45%) computadores do domínio responderam ao ping. [*][03/01/2021 09:37] - 49 (20,00%) computadores do domínio tinham a porta TCP 445 acessível. [*][03/01/2021 09:37] - 32 (13,06%) computadores do domínio tinham compartilhamentos não padrão. [*][03/01/2021 09:37] - 12 (4,90%) computadores do domínio tinham compartilhamentos com potenciais privilégios excessivos. [*][03/01/2021 09:37] - 12 (4,90%) computadores do domínio tinham compartilhamentos que permitiam acesso de LEITURA. [*][03/01/2021 09:37] - 1 (0,41%) computadores do domínio tinham compartilhamentos que permitiam acesso de GRAVAÇÃO. [*][03/01/2021 09:37] - 0 (0,00%) computadores do domínio tinham compartilhamentos considerados ALTO RISCO. [*][03/01/2021 09:37] [*][03/01/2021 09:37] RESUMO DE COMPARTILHAMENTOS [*][03/01/2021 09:37] - 217 compartilhamentos foram encontrados. Esperamos um mínimo de 98 compartilhamentos [*][03/01/2021 09:37] porque 49 sistemas tinham portas abertas e normalmente há dois compartilhamentos padrão. [*][03/01/2021 09:37] - 46 (21,20%) compartilhamentos em 32 sistemas eram não padrão. [*][03/01/2021 09:37] - 14 (6,45%) compartilhamentos em 12 sistemas estão configurados com 33 ACLs potencialmente excessivas. [*][03/01/2021 09:37] - 14 (6,45%) compartilhamentos em 12 sistemas permitiam acesso de LEITURA. [*][03/01/2021 09:37] - 1 (0,46%) compartilhamentos em 1 sistema permitiam acesso de GRAVAÇÃO. [*][03/01/2021 09:37] - 0 (0,00%) compartilhamentos em 0 sistemas são considerados ALTO RISCO. [*][03/01/2021 09:37] [*][03/01/2021 09:37] RESUMO DE ACL DE COMPARTILHAMENTOS [*][03/01/2021 09:37] - 374 ACLs foram encontradas. [*][03/01/2021 09:37] - 374 (100,00%) ACLs estavam associadas a compartilhamentos não padrão. [*][03/01/2021 09:37] - 33 (8,82%) ACLs foram consideradas potencialmente excessivas. [*][03/01/2021 09:37] - 32 (8,56%) ACLs foram encontradas que permitiam acesso de LEITURA. [*][03/01/2021 09:37] - 1 (0,27%) ACLs foram encontradas que permitiam acesso de GRAVAÇÃO. [*][03/01/2021 09:37] - 0 (0,00%) ACLs foram encontradas associadas a nomes de compartilhamentos de ALTO RISCO. [*][03/01/2021 09:37] [*][03/01/2021 09:37] - Os 5 nomes de compartilhamento mais comuns são: [*][03/01/2021 09:37] - 9 de 14 (64,29%) compartilhamentos descobertos estão associados aos 5 principais nomes de compartilhamento. [*][03/01/2021 09:37] - 4 backup [*][03/01/2021 09:37] - 2 ssms [*][03/01/2021 09:37] - 1 test2 [*][03/01/2021 09:37] - 1 test1 [*][03/01/2021 09:37] - 1 users [*] -----------------------------------------------




Autor
Scott Sutherland (@_nullbind)
Código Open-Source Utilizado
Essas pessoas escreveram código open-source que foi usado como parte deste projeto. Um grande agradecimento a eles e ao seu trabalho!
| Nome | Site |
|---|---|
| Will Schroeder (@harmj0y) | https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1 |
| Warren F (@pscookiemonster) | https://github.com/RamblingCookieMonster/Invoke-Parallel |
| Luben Kirov | http://www.gi-architects.co.uk/2016/02/powershell-check-if-ip-or-subnet-matchesfits/ |
Licença
BSD 3-Clause
Correções/Bugs Pendentes
Recursos Pendentes
Abaixo está uma explicação visual de como o PowerHuntShares funciona, quais dados ele extrai e como apresenta resultados acionáveis.
Fornece uma visão de alto nível dos compartilhamentos descobertos e riscos associados.

Relatórios gerados automaticamente para análise fácil e revisão offline.

Mapeamento detalhado de nomes de compartilhamentos e suas propriedades.

Etapas sugeridas de remediação para lidar com riscos identificados.

Visualização de problemas descobertos ao longo do tempo.

Compara compartilhamentos e permissões descobertos em diferentes sistemas.

Agrupamento de pastas e compartilhamentos relacionados para melhor contexto.

Mostra a exposição de ativos com base em impressões digitais descobertas.

Representação visual de compartilhamentos descobertos e relacionamentos.

Destaca informações sensíveis e segredos descobertos durante a varredura.

Lista arquivos potencialmente interessantes ou de alto valor encontrados em compartilhamentos.

Destaca áreas onde dados sensíveis podem estar expostos.

Visões abrangentes de exposição a risco com análise detalhada.
