Atacando e corrigindo permissões excessivas de compartilhamento de rede em ambientes do Active Directory

Views: 360
0 0
Read Time:26 Minute, 39 Second

Introdução 

Neste blog, explicarei como inventariar, explorar e corrigir rapidamente os compartilhamentos de rede configurados com permissões excessivas em escala em ambientes do Active Directory. Permissões de compartilhamento excessivas representam um risco que pode levar à exposição de dados, escalonamento de privilégios e ataques de ransomware em ambientes corporativos. Portanto, também explorarei por que os compartilhamentos de rede configurados com permissões excessivas ainda estão assolando a maioria dos ambientes após 20 anos de gerenciamento de vulnerabilidades e testes de penetração .

Por fim, compartilharei uma nova ferramenta de código aberto chamada PowerHuntShares que pode ajudar a simplificar a busca de compartilhamento e a correção de permissões excessivas de compartilhamento SMB em ambientes do Active Directory. Este conteúdo também está disponível em formato de apresentação aqui . Ou, se você quiser me ouvir falar sobre esse tópico, confira nosso webinar, Como avaliar os compartilhamentos SMB do Active Directory em escala .

Isso deve ser interessante para as pessoas responsáveis ​​por gerenciar o acesso ao compartilhamento de rede em ambientes do Active Directory (gerenciamento de identidade e acesso/equipes do IAM) e os testadores da equipe vermelha/penetração encarregados de explorar esse acesso. 

TLDR; Podemos aproveitar o Active Directory para ajudar a criar um inventário de sistemas e compartilhamentos. Os compartilhamentos configurados com permissões excessivas podem levar à execução remota de código (RCE) de várias maneiras, os esforços de correção podem ser acelerados por meio de técnicas simples de agrupamento de dados e a verificação de compartilhamento mal-intencionado pode ser detectada com alguns IDs de eventos comuns e um pouco de correlação (sempre mais fácil falar do que fazer).

Índice: 

O(s) problema(s) 
Permissões de compartilhamento de rede Herança Pontos cegos 
Inventário de compartilhamento de 
rede Exploração de compartilhamento de 
rede Correção de compartilhamento de rede 
Apresentando o PowerHuntShares 
Conclusão

Os problemas) 

Se fosse apenas um problema. Não conheço um testador de penetração que não tenha uma história de guerra envolvendo acesso não autorizado ao compartilhamento de rede. No mundo real, essa história normalmente termina com a implantação de ransomware e dupla extorsão. É por isso que é importante tentarmos entender algumas das causas por trás desse problema. Abaixo está um resumo das causas principais que geralmente levam à exposição massiva de compartilhamento de rede na maioria dos ambientes do Active Directory. 

Gerenciamento de Ativos Quebrados 

Rastrear sistemas ativos em ambientes corporativos é difícil e rastrear um inventário de ações e proprietários em constante mudança é ainda mais difícil. Mesmo que a equipe de gerenciamento de identidade e acesso (IAM) encontre um compartilhamento de rede por meio da descoberta, isso levanta as questões:

  1. Quem é o dono?
  2. Quais aplicativos ou processos de negócios ele suporta?
  3. Podemos remover entradas de controle de acesso (ACE) de alto risco ?
  4. Podemos remover o compartilhamento todos juntos?

A maioria dessas perguntas pode ser respondida se você tiver um banco de dados de gerenciamento de configuração (CMDB) em funcionamento. Infelizmente, nem todos o fazem.

Gerenciamento de vulnerabilidades quebradas 

Muitos programas de gerenciamento de vulnerabilidades nunca foram criados para identificar configurações de compartilhamento de rede que fornecem acesso não autorizado a usuários de domínio autenticados. Muito de seu foco tem sido identificar vulnerabilidades clássicas (patches ausentes, senhas fracas e problemas de aplicativos) e priorizar esforços em torno de vulnerabilidades que não exigem autenticação, o que obviamente não é de todo ruim.

No entanto, com base em minhas observações, o setor só se interessou profundamente pelo ecossistema do Active Directory nos últimos cinco anos. Isso parece ser em grande parte devido à maior exposição e conscientização dos ataques do Active Directory (AD), que são fortemente dependentes das configurações e não faltam patches.

Também não estou dizendo que as equipes de IAM não estão trabalhando duro para fazer seu trabalho, mas em muitos casos, elas ficam atoladas no que equivale a gerenciamento de grupo e esquecem (ou não têm tempo de) olhar para o real ativos aos quais grupos globais/comuns têm acesso. Isso é um poço profundo, mas o foco de hoje está nos compartilhamentos de rede.

Os testadores de penetração sempre souberam que os compartilhamentos são um risco, mas implementar, gerenciar e avaliar o privilégio mínimo em ambientes do Active Directory é um desafio não trivial. Mesmo com o aumento do interesse na comunidade de segurança, poucas soluções podem efetivamente inventariar e avaliar o acesso compartilhado para um domínio inteiro do Active Directory (ou vários domínios). 

Com base na minha experiência, poucas organizações realizam verificações de vulnerabilidade autenticadas para começar, mas mesmo aquelas que parecem não ter descobertas de privilégios excessivos comuns, permissões herdadas e dados resumidos destilados para o ambiente que fornecem os insights que a maioria das equipes de IAM precisa tomar boas decisões. Há muito tempo há uma dependência excessiva desses tipos de ferramentas porque muitas empresas têm a impressão de que elas fornecem mais cobertura do que em relação às permissões de compartilhamento de rede. 

Resumindo, um bom inventário de ativos e gerenciamento de superfície de ataque abre caminho para uma melhor cobertura de gerenciamento de vulnerabilidades – e muitas empresas ainda não chegaram lá. 

Não considerar os limites da segmentação 

A maioria dos grandes ambientes tem limites de domínio de host, rede e Active Directory que precisam ser considerados ao executar qualquer tipo de verificação autenticada ou implantação de agente. As empresas que tentam inventariar e avaliar com precisão os compartilhamentos de rede geralmente perdem as coisas porque não consideram os limites que isolam seus ativos. Certifique-se de trabalhar dentro desses limites ao avaliar ativos. 

A nuvem está aqui!

A nuvem está aqui e suporta todos os tipos de meios de armazenamento de arquivos fantásticos, mas isso não significa que os compartilhamentos de rede locais desapareçam. As empresas precisam ter certeza de que ainda estão olhando para trás enquanto continuam olhando para frente em relação aos controles de segurança em compartilhamentos de arquivos. Para muitas empresas, pode levar quase uma década até que possam migrar a maior parte de sua infraestrutura de armazenamento de arquivos para sua massa flutuante favorita de vapor de água condensado – você sabe, a nuvem. 😜

Mal-entendido NTFS e permissões de compartilhamento 

Existem muitas práticas ruins relacionadas ao gerenciamento de permissões de compartilhamento que foram absorvidas pela cultura de TI ao longo dos anos simplesmente porque as pessoas não entendem como elas funcionam. Um dos maiores contribuintes para permissões de compartilhamento excessivas é a herança de privilégios por meio de associações a grupos aninhados nativos. Esse problema também não se limita aos compartilhamentos de rede. Temos abusado dos mesmos problemas de herança de privilégios por mais de uma década para obter acesso a instâncias do SQL Server . Nas próximas seções, fornecerei uma visão geral do problema e como ele pode ser explorado no contexto de compartilhamentos de rede.

Pontos cegos de herança de permissões de compartilhamento de rede 

Um compartilhamento de rede é apenas um meio para disponibilizar arquivos locais para usuários remotos na rede, mas dois conjuntos de permissões controlam o acesso de um usuário remoto aos arquivos compartilhados. Para entender o problema de herança de privilégios, é útil fazer uma rápida atualização sobre como o NTFS e as permissões de compartilhamento funcionam juntos em sistemas Windows. Vamos explorar o básico. 

Permissões NTFS 

  • Usado para controlar o acesso ao sistema de arquivos NTFS local 
  • Pode afetar usuários locais e remotos 

Compartilhar permissões 

  • Usado para controlar o acesso a arquivos e pastas compartilhados 
  • Afeta apenas usuários remotos 

Resumindo, de uma perspectiva de usuário remoto, as permissões de compartilhamento de rede (remotas) são revisadas primeiro, depois as permissões NTFS (locais) são revisadas em segundo lugar, mas a permissão mais restritiva sempre vence independentemente. Abaixo está um exemplo simples mostrando que John tem permissões de controle total no compartilhamento, mas somente permissões de leitura na pasta local associada. A maioria restritiva vence, então John só tem acesso de leitura aos arquivos disponibilizados remotamente por meio da pasta compartilhada.

Um diagrama de permissões NTFS e permissões de compartilhamento mostrando que a permissão mais restritiva vence.

Então esses são os fundamentos. A grande ideia é que a ACL mais restritiva vence. No entanto, existem algumas nuances que têm a ver com grupos locais que herdam Grupos de Domínio. Para entendermos isso, vamos falar brevemente sobre os grupos locais afetados. 

Todos

O grupo todos fornece acesso a todos os usuários autenticados e anônimos na maioria das configurações. Esse grupo é usado em excesso em muitos ambientes e geralmente resulta em privilégios excessivos. 

Integrado\Usuários 

Novos usuários locais são adicionados a ele por padrão. Quando o sistema não está associado a um domínio, ele opera como você espera. 

Usuários autenticados

Este grupo está aninhado no grupo Builtin\Users. Quando um sistema não é associado ao domínio, ele não influencia muito o acesso. No entanto, quando um sistema éassociado a um domínio do Active Directory, os Usuários Autenticados incluem implicitamente os grupos “Usuários do Domínio” e “Computadores do Domínio”. Por exemplo, um administrador de TI pode pensar que está apenas fornecendo acesso de compartilhamento remoto ao grupo Integrado\Usuários, quando na verdade o está fornecendo a todos no domínio. Abaixo está um diagrama para ajudar a ilustrar esse cenário.

O grupo Builtin\Users inclui Usuários do Domínio quando o domínio ingressou.

A lição aqui é que um pequeno mal-entendido sobre relacionamentos de grupos locais e de domínio pode levar a acesso não autorizado e risco potencial. A próxima seção abordará como inventariar compartilhamentos e suas listas de controle de acesso (ACLs) para que possamos direcioná-los e corrigi-los.

Inventário de compartilhamento de rede 

Como se vê, obter um inventário rápido de seus computadores de domínio e compartilhamentos associados não é tão difícil graças a várias ferramentas nativas e de código aberto. O truque é obter informações suficientes para responder a quem, o quê, onde, quando e como as perguntas necessárias para os esforços de remediação. 
A descoberta de compartilhamentos e permissões se resume a algumas etapas básicas: 

  1. Consulte o Active Directory por meio do Lightweight Directory Access Protocol (LDAP) para obter uma lista de computadores de domínio. Comandos do PowerShell como Get-AdComputer (módulo do PowerShell do Active Directory) e Get-DomainComputer (PowerSploit) podem ajudar muito lá.
  2. Confirme a conectividade com esses computadores na porta TCP 445. O Nmap é uma ferramenta gratuita e fácil de usar para essa finalidade. Existem também vários scripts de verificação de porta TCP de código aberto, se você quiser ficar com o PowerShell.
  3. Consulte compartilhamentos, permissões de compartilhamento e outras informações usando seu método preferido. Ferramentas do PowerShell como Get-SMBShare , Get-SmbShareAccess , Get-ACL e Get-ObjectAcl (PowerSploit) são bastante úteis.
  4. Outras informações que ajudarão nos esforços de correção posteriores incluem o proprietário da pasta, contagem de arquivos, listagem de arquivos, hash de listagem de arquivos e endereço IP do computador. Você também pode encontrar algumas dessas informações no CMDB da sua empresa. Comandos do PowerShell como Get-ChildItem e Resolve-DnsNameSome também podem ajudar a coletar algumas dessas informações.

Os PowerHuntShares podem ser usados ​​para automatizar as tarefas acima (abordadas na última seção), mas, independentemente do que você usa para descoberta, entender como o acesso não autorizado ao compartilhamento pode ser abusado ajudará sua equipe a priorizar os esforços de correção.

Exploração de compartilhamento de rede 

Os compartilhamentos de rede configurados com permissões excessivas podem ser explorados de várias maneiras, mas a natureza do compartilhamento e as permissões de compartilhamento específicas determinarão quais ataques podem ser executados. Abaixo, forneci uma visão geral de alguns dos ataques mais comuns que aproveitam o acesso de leitura e gravação a compartilhamentos para ajudar você a começar. 

Leia Abuso de Acesso 

Ransomware e outros agentes de ameaças geralmente aproveitam permissões de leitura excessivas em compartilhamentos para acessar dados confidenciais, como informações de identificação pessoal ( PII ) ou propriedade intelectual (código-fonte, projetos de engenharia, estratégias de investimento, fórmulas proprietárias, informações de aquisição etc.) que eles podem explorar, vender ou extorquir sua empresa. Além disso, descobrimos durante os testes de penetração que as senhas geralmente são armazenadas em texto não criptografado e podem ser usadas para fazer login em bancos de dados e servidores. Isso significa que, em alguns casos, o acesso de leitura a um compartilhamento pode terminar em RCE.

Abaixo está um exemplo simples de como o acesso de leitura excessivo a um compartilhamento de rede pode resultar em RCE: 

  1. O invasor compromete um usuário de domínio.
  2. O invasor identifica uma pasta compartilhada para um diretório raiz da Web, backup de código ou dev ops.
  3. O invasor identifica senhas (geralmente cadeias de conexão de banco de dados) armazenadas em texto simples.
  4. O invasor usa a senha do banco de dados para se conectar ao servidor de banco de dados.
  5. O invasor usa a funcionalidade do banco de dados nativo para obter privilégios administrativos locais para o sistema operacional do servidor de banco de dados.
  6. O invasor aproveita a conta de serviço de banco de dados compartilhado para acessar outros servidores de banco de dados. 

Abaixo está uma ilustração simples desse processo: 

Um processo de 6 etapas de como o acesso de leitura excessivo a um compartilhamento de rede pode resultar em execução remota de código (RCE).

Abuso de acesso de gravação 

O acesso de gravação oferece todos os benefícios do acesso de leitura com o bônus de poder adicionar, remover, modificar e criptografar arquivos (como agentes de ameaças Ransomware). O acesso de gravação também oferece mais potencial para transformar o acesso de compartilhamento em RCE. Abaixo está uma lista de dez das opções mais comuns de RCE: 

  1. Escreva um web shell em uma pasta raiz da web, que pode ser acessada por meio do servidor web.
  2. Substitua ou modifique os arquivos EXE e DLL do aplicativo para incluir um backdoor .
  3. Grave arquivos EXE ou DLL em caminhos usados ​​por aplicativos e serviços sem aspas .
  4. Grave uma DLL nas pastas do aplicativo para executar o seqüestro de DLL. Você pode usar Koppeling , escrito pelo próprio Diretor de Pesquisa da NetSPI, Nick Landers.
  5. Grave uma DLL e um arquivo de configuração em pastas de aplicativos para executar o seqüestro de domínio de aplicativo para aplicativos .net .
  6. Escreva um executável ou script na pasta de inicialização “All Users” para iniciá-los no próximo logon.
  7. Modifique arquivos executados por tarefas agendadas.
  8. Modifique o perfil de inicialização do PowerShell para incluir um backdoor .
  9. Modifique os modelos do Microsoft Office para incluir um backdoor .
  10. Escreva um arquivo LNK malicioso para capturar ou retransmitir os hashes NetNTLM. 

Você deve ter notado que muitas das técnicas que listei também são comumente usadas para persistência e movimento lateral, o que é um ótimo lembrete de que técnicas antigas podem ter mais de um caso de uso. 

Abaixo está um diagrama simples que tenta ilustrar o exemplo básico do shell da web.

  1. O invasor compromete um usuário de domínio.
  2. O invasor procura por compartilhamentos, encontra um diretório wwwroot e carrega um web shell. O diretório wwwroot armazena todos os arquivos usados ​​pelo aplicativo Web hospedado no servidor IIS de destino. Assim, você pode pensar no web shell como algo que estende a funcionalidade do aplicativo web publicado.
  3. Usando um navegador da Web padrão, o invasor agora pode acessar o arquivo de shell da Web carregado hospedado pelo servidor Web IIS de destino.
  4. O invasor usa o acesso ao shell da web para executar comandos nos sistemas operacionais como a conta de serviço do servidor web.
  5. A conta de serviço do servidor web pode ter privilégios adicionais para acessar outros recursos na rede.
Um diagrama de 5 etapas mostrando o RCE usando um shell da web.

Abaixo está outro diagrama simplificado mostrando as etapas genéricas que podem ser usadas para executar os ataques da minha lista dos 10 principais. Vamos prestar atenção ao compartilhamento de C$ sendo abusado. O compartilhamento C$ é um compartilhamento oculto padrão no Windows que não deve ser acessível a usuários de domínio padrão. Ele mapeia para a unidade C, que normalmente inclui todos os arquivos do sistema. Infelizmente, devOops, implantações de aplicativos e configurações incorretas de usuário único acidentalmente (ou intencionalmente) tornam o compartilhamento C$ disponível para todos os usuários do domínio em mais ambientes do que você imagina. Durante nosso teste de penetração, realizamos auditorias completas de compartilhamento SMB para sistemas ingressados ​​em domínio e descobrimos que acabamos com acesso de gravação a um compartilhamento C$ mais da metade das vezes.

Um diagrama simplificado baseado na lista de 10 opções comuns de execução remota de código (RCE).

Correção de compartilhamento de rede 

Rastrear proprietários de sistemas, aplicativos e casos de negócios válidos durante esforços excessivos de correção de compartilhamento pode ser um grande problema para as equipes de IAM. Para uma grande empresa, isso pode significar classificar centenas de milhares de ACLs de compartilhamento. Portanto, ter maneiras de agrupar e priorizar compartilhamentos durante esse esforço pode economizar muito tempo. 

Descobri que o truque para um agrupamento bem-sucedido é coletar os dados certos. Para determinar quais dados coletar, eu me pergunto o padrão de quem, o quê, onde, quando e como, e então determino onde posso obter esses dados a partir daí. 

Quais ações estão expostas? 

  • Nome do compartilhamento: às vezes, o nome do compartilhamento sozinho pode indicar o tipo de dados expostos, incluindo compartilhamentos de alto risco, como C$, ADMIN$ e wwwroot.
  • Contagem de arquivos de compartilhamento: Diretórios sem arquivos podem ser uma maneira de priorizar a correção de compartilhamentos quando você estiver tentando priorizar compartilhamentos de alto risco primeiro.
  • Lista de diretórios: Semelhante ao nome do compartilhamento, as pastas e arquivos em um diretório compartilhado geralmente podem dizer muito sobre o contexto.
  • Hash da Lista de Diretórios: Este é simplesmente um hash da listagem de diretórios. Embora não seja um requisito difícil, pode facilitar um pouco a identificação e a comparação de listas de diretórios iguais. 

Quem tem acesso a eles? 

  • Compartilhar ACL: Isso ajudará a mostrar qual acesso os usuários têm e pode ser filtrado para grupos conhecidos de alto risco ou grandes grupos internos.
  • NTFS ACL:  Isso ajudará a mostrar qual acesso os usuários têm e pode ser filtrado para grupos conhecidos de alto risco ou grandes grupos internos. 

Quando foram criados? 

  • Data de criação da pasta: Agrupar ou agrupar datas de criação em uma linha do tempo pode revelar tendências que podem estar vinculadas a unidades de negócios, aplicativos e processos que podem ter introduzido privilégios de compartilhamento excessivos no passado. 

Quem os criou? 

  • Proprietário da pasta: às vezes, o proprietário da pasta pode levar você ao departamento ou unidade de negócios que possui o sistema, aplicativo ou processo que criou/usa o compartilhamento.
  • Nome do host: o nome do host pode indicar a localização e a propriedade se convenções de nomenclatura padronizadas forem usadas. 

Onde eles estão? 

  • Nome do computador: O nome do computador que os hosts compartilham muitas vezes pode ser usado para determinar muitas informações, como departamento e local, se uma convenção de nomenclatura padronizada for usada.
  • Endereço IP: Semelhante aos nomes de computador, as sub-redes também são comumente alocadas a computadores que realizam tarefas específicas. Em muitos ambientes, essa alocação é documentada no Active Directory e pode ser cruzada. 

Se coletarmos todas essas informações durante a descoberta, podemos usá-las para realizar o agrupamento com base no nome do compartilhamento, proprietário, sub-rede, lista de pastas e hash da lista de pastas para que possamos identificar grandes partes de compartilhamentos relacionados que podem ser corrigidos de uma só vez. Não quer escrever o código para isso sozinho? Eu escrevi PowerHuntShares para ajudá-lo.

Apresentando PowerHuntShares 

O PowerHuntShares foi projetado para inventariar, analisar e relatar automaticamente privilégios excessivos atribuídos a compartilhamentos SMB em computadores ingressados ​​no domínio do Active Directory. Destina-se a ser usado pelo IAM e outras equipes de segurança para obter uma melhor compreensão de sua superfície de ataque SMB Share e fornecer insights de dados para ajudar a agrupar e priorizar os esforços de correção de compartilhamento. Abaixo está um guia rápido para configuração, execução (coleta e análise) do PowerHuntShares e relatórios. 

Configurar 

1. Baixe o projeto em https://github.com/NetSPI/Powerhuntshares .

2. De um sistema sem domínio, você pode carregá-lo com o seguinte comando:

runas /netonly /user:domain\user PowerShell.exe

Processo Set-ExecutionPolicy bypass -scope

Import-Module Invoke-HuntSMBShares.ps1

Como alternativa, você pode carregá-lo diretamente da Internet usando o seguinte script do PowerShell. 

[System.Net.ServicePointManager]::ServerCertificateValidation

Retorno de chamada = {$true}

[Net.ServicePointManager]::SecurityProtocol =[Net.Security

ProtocolType]::Tls12

IEX(New-Object System.Net.WebClient).DownloadString

(“https://raw.githubusercontent.com/NetSPI/

PowerHuntShares/main/PowerHuntShares.psm1″)

Coleção

A função de coleção Invoke-HuntSMBShares envolve algumas funções modificadas do PowerView e Invoke-Parallel. As modificações capturam informações adicionais, automatizam sequências de tarefas comuns e geram dados resumidos para os relatórios. Independentemente disso, um grande grito pelo bom trabalho feito por Warren F. e Will Schroeder (no entanto, há muito tempo). Abaixo estão alguns exemplos de comandos. 

Executar a partir do sistema ingressado no domínio 

Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test

Executar a partir de um sistema não associado ao domínio

runas /netonly /user:domain\user PowerShell.exe

Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeOut 10`

-OutputDirectory c:\pasta\`

-DomainController 10.1.1.1`

-Credencial domínio\usuário

===============================================================

PowerHuntShares

===============================================================

Esta função automatiza as seguintes tarefas:

o Determinar o domínio do computador atual

o Enumerar computadores de domínio

o Filtre por computadores que respondem a solicitações de ping

o Filtre por computadores que tenham TCP 445 aberto e acessível

o Enumerar ações SMB

o Enumerar permissões de compartilhamento SMB

o Identificar compartilhamentos com privilégios potencialmente excessivos

o Identificar compartilhamentos que fornecem acesso de leitura e gravação

o Identificar ações que são de alto risco

o Identificar proprietários de ações comuns, nomes e listagens de diretórios

o Gerar linhas de tempo de criação, última escrita e último acesso

o Gerar relatório de resumo html e arquivos csv detalhados

Observação: isso pode levar horas para ser executado em ambientes grandes.

—————————————————————

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

—————————————————————

COMPARTILHE DESCOBERTA

—————————————————————

[*][03/01/2021 09:35] Início da digitalização

[*][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

[*][01/03/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] Fazendo ping em 245 computadores

[*][03/01/2021 09:35] – 55 computadores responderam a solicitações de 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] – Segmentação de 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 foram encontrados em 12 sistemas.

[*][03/01/2021 09:37] Digitalização concluída

—————————————————————

PARTILHAR ANÁLISE

—————————————————————

[*][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 compartilhamento.

[*][03/01/2021 09:37] – Identificados os 5 principais nomes de compartilhamento.

[*][03/01/2021 09:37] – Compartilhamentos identificados criados nos últimos 90 dias.

[*][03/01/2021 09:37] – Compartilhamentos identificados acessados ​​nos últimos 90 dias.

[*][03/01/2021 09:37] – Compartilhamentos identificados modificados nos últimos 90 dias.

[*][03/01/2021 09:37] Análise concluída

—————————————————————

PARTILHAR RESUMO DO RELATÓRIO

—————————————————————

[*][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 término: 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 DO COMPUTADOR

[*][03/01/2021 09:37] – 245 computadores de domínio encontrados.

[*][03/01/2021 09:37] – 55 (22,45%) computadores de domínio responderam ao ping.

[*][03/01/2021 09:37] – 49 (20,00%) computadores de domínio tinham a porta TCP 445 acessível.

[*][03/01/2021 09:37] – 32 (13,06%) computadores de domínio tinham compartilhamentos que não eram padrão.

[*][03/01/2021 09:37] – 12 (4,90%) computadores de domínio tinham compartilhamentos com privilégios potencialmente 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%) computador de domínio tinha compartilhamentos que permitiam acesso WRITE.

[*][03/01/2021 09:37] – 0 (0,00%) computadores de domínio tinham compartilhamentos de ALTO RISCO.

[*][03/01/2021 09:37]

[*][03/01/2021 09:37] COMPARTILHAR RESUMO

[*][03/01/2021 09:37] – 217 compartilhamentos foram encontrados. Esperamos um mínimo de 98 ações

[*][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 não eram 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 permitiram acesso de LEITURA.

[*][03/01/2021 09:37] – 1 (0,46%) compartilhamento em 1 sistema permitiu acesso de GRAVAÇÃO.

[*][03/01/2021 09:37] – 0 (0,00%) compartilhamentos em 0 sistemas são considerados de ALTO RISCO.

[*][03/01/2021 09:37]

[*][03/01/2021 09:37] COMPARTILHAR RESUMO ACL

[*][03/01/2021 09:37] – 374 ACLs foram encontradas.

[*][03/01/2021 09:37] – 374 (100,00%) ACLs foram 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 READ.

[*][03/01/2021 09:37] – 1 (0,27%) ACLs foram encontradas que permitiam o acesso WRITE.

[*][03/01/2021 09:37] – 0 (0,00%) ACLs foram encontradas associadas a nomes de compartilhamento 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 backups

[*][03/01/2021 09:37] – 2 ssms

[*][01/03/2021 09:37] – 1 teste2

[*][03/01/2021 09:37] – 1 teste1

[*][03/01/2021 09:37] – 1 usuário

[*] ———————————————–

Análise

O PowerHuntShares fará o inventário das ACLs de compartilhamento de SMB configuradas com “privilégios excessivos” e destacará as ACLs de “alto risco”. Abaixo está como eles são definidos neste contexto.

Privilégios Excessivos 

Permissões de compartilhamento de leitura e gravação excessivas foram definidas como qualquer ACL de compartilhamento de rede contendo uma ACE (Entrada de controle de acesso) explícita para “Todos”, “Usuários autenticados”, “BUILTIN\Usuários”, “Usuários de domínio” ou “Computadores de domínio” grupos. Todos eles fornecem aos usuários do domínio acesso aos compartilhamentos afetados devido a problemas de herança de privilégios.

Ações de alto risco 

No contexto deste relatório, os 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 c$. No entanto, podem existir exposições adicionais que não são chamadas além disso.

Comunicando

O script produzirá um relatório HTML, arquivos de dados csv e arquivos html.

Relatório HTML 

O relatório HTML deve ter links para todo o conteúdo. Abaixo está uma captura de tela rápida do painel. Inclui dados de resumo no computador, compartilhamento e nível de compartilhamento de ACL. Ele também possui uma linha do tempo de criação de compartilhamento divertida para que você possa identificar os clusters de criação de compartilhamento mencionados anteriormente. Foi minha primeira tentativa de gerar esse tipo de HTML/CSS com o PowerShell, então, embora pudesse ser melhor, pelo menos é uma primeira tentativa funcional. 😊 Também inclui resumos de agrupamento de dados na seção “insights de dados”. 
 
Nota: Os dados exibidos no gráfico de linha do tempo de criação parecem ser confiáveis, mas os gráficos de linha do tempo acessados/modificados pela última vez parecem ser um pouco menos confiáveis. Acredito que tenha algo a ver com a forma como eles são usados ​​pelo sistema operacional, mas isso é um projeto de pesquisa para outro dia. 

Uma captura de tela do painel Compartilhamentos do Powerhunt.  Inclui dados de resumo no nível do computador, compartilhamento e compartilhamento de ACL.
Arquivos CSV

O script Invoke-HuntSMBShares gerará todos os tipos de arquivos .csv, mas o arquivo principal de interesse será o arquivo “Inventory-Excessive-Privileges.csv”. Ele deve conter todos os dados discutidos anteriormente neste blog e pode ser uma boa fonte de dados para análises offline adicionais.

Uma captura de tela detalhada do Inventory-Excessive-Privileges.csv gerado pelo script Invoke-HuntSMBShares. Uma captura de tela detalhada do Inventory-Excessive-Privileges.csv gerado pelo script Invoke-HuntSMBShares.

O PowerShell pode ser usado para importar os arquivos .csv e fazer análises adicionais no local, o que pode ser útil das   perspectivas da equipe azul e vermelha .

Uma captura de tela detalhando como o PowerShell pode ser usado para importar arquivos.csv para análise adicional.

Embrulhar

Este foi um blog divertido de escrever, e cobrimos muito terreno, então abaixo está uma rápida recapitulação:

  • O IAM e as equipes vermelhas podem aproveitar o Active Directory para ajudar a criar um inventário de sistemas, compartilhamentos e permissões de compartilhamento.
  • Os esforços de correção podem ser acelerados por meio de técnicas simples de agrupamento de dados se as informações corretas forem coletadas ao criar seu inventário de compartilhamento.
  • O grupo interno\usuários inclui implicitamente usuários de domínio quando ingressam em domínios do Active Directory por meio de uma cadeia de herança de grupo.
  • Os compartilhamentos configurados com permissões excessivas podem levar ao RCE de várias maneiras.
  • As IDs de evento do Windows podem ser usadas para identificar a verificação autenticada (540, 4624, 680,4625) e compartilhar o acesso (5140) acontecendo em seu ambiente.
  • PowerHuntShares é uma ferramenta de código aberto que pode ser usada para você começar.

A longo prazo, minha esperança é reescrever PowerHuntShares em C# para melhorar o desempenho e remover alguns dos bugs. Felizmente, as informações compartilhadas neste blog ajudaram a gerar alguma conscientização sobre os problemas relacionados a permissões excessivas atribuídas a compartilhamentos SMB em ambientes do Active Directory. Ou pelo menos serve como um lugar para começar a investigar as soluções. 

Lembre-se de que as auditorias de compartilhamento devem ser feitas em uma cadência regular para que você possa identificar e corrigir permissões de compartilhamento de alto risco antes que elas se tornem uma ameaça. Faz parte de uma boa higiene de segurança ofensiva e de TI, assim como um teste de penetração,  simulação de adversários ou  operações de equipe vermelha . 

Para saber mais sobre esse tópico, assista ao webinar da NetSPI,  How to Evaluate Active Directory SMB Shares at Scale .

Boa sorte e boa caçada!

FONTE: NETSPI

POSTS RELACIONADOS