Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Powermad — Ferramentas de exploit de MachineAccountQuota e DNS em PowerShell | Kitploit
Ferramentas/GitHubGitHub/kevin-robertson/powermad
Escalada de PrivilégiosReconhecimentoGerenciamento de IdentidadesMovimento LateralTestes de PenetraçãoAutenticaçãoRed Teaming
GitHubkevin-robertson/powermad

Powermad

Ferramentas de exploit de MachineAccountQuota e DNS em PowerShell

Ver Repositório
1.5k188há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Powermad_logo

Ferramentas de exploração de PowerShell MachineAccountQuota e DNS

Wiki

  • https://github.com/Kevin-Robertson/Powermad/wiki

Postagem no Blog

  • Além do Spoofing LLMNR/NBNS – Explorando o DNS Integrado ao Active Directory

Funções

  • Funções de MachineAccountQuota
  • Funções de DNS
  • Funções de Atualizações Dinâmicas
  • Funções de ADIDNS
  • Funções Diversas

Funções de MachineAccountQuota

A configuração padrão do atributo ms-DS-MachineAccountQuota do Active Directory permite que todos os usuários do domínio adicionem até 10 contas de máquina a um domínio. O Powermad inclui um conjunto de funções para explorar o ms-DS-MachineAccountQuota sem anexar um sistema real ao AD.

Get-MachineAccountAttribute

Esta função pode retornar valores preenchidos em um atributo de conta de máquina.

Exemplo:
  • Obter o valor de 'description' de uma conta de máquina chamada 'test'. Get-MachineAccountAttribute -MachineAccount test -Attribute discription

Get-MachineAccountCreator

Esta função aproveita a propriedade ms-DS-CreatorSID em contas de máquina para retornar uma lista de nomes de usuário ou SIDs e a conta de máquina associada. A propriedade ms-DS-CreatorSID só é preenchida quando uma conta de máquina é criada por um usuário não privilegiado.

Exemplo:
  • Obter uma lista de todos os atributos ms-DS-CreatorSID preenchidos. Get-MachineAccountCreator

Disable-MachineAccount

Esta função pode desabilitar uma conta de máquina que foi adicionada através de New-MachineAccount. Esta função deve ser usada com o mesmo usuário que criou a conta de máquina.

Exemplo:
  • Desabilitar uma conta de máquina chamada test. Disable-MachineAccount -MachineAccount test

Enable-MachineAccount

Esta função pode habilitar uma conta de máquina que foi desabilitada através de Disable-MachineAccount. Esta função deve ser usada com o mesmo usuário que criou a conta de máquina.

Exemplo:
  • Habilitar uma conta de máquina chamada test. Enable-MachineAccount -MachineAccount test

New-MachineAccount

Esta função pode adicionar uma nova conta de máquina diretamente através de uma solicitação de adição LDAP a um controlador de domínio, sem afetar o status de anexação do sistema host ao Active Directory.

A solicitação de adição LDAP é modelada após a solicitação de adição usada ao ingressar um sistema em um domínio. Os seguintes atributos (principalmente validados pelo DC) são definidos:

  • objectClass = Computer
  • SamAccountName = Nome da conta de máquina com $ no final
  • userAccountControl = 4096
  • DnsHostName = FQDN
  • ServicePrincipalName = 2 SPNs HOST e 2 RestrictedKrbHost usando tanto o FQDN quanto o nome da conta
  • unicodePwd = a senha especificada

Uma nova conta de máquina pode ser usada para tarefas como aproveitar o privilégio concedido ao grupo 'Domain Computers' ou como uma conta adicional para enumeração de domínio, explorações de DNS, etc. Por padrão, contas de máquina não têm permissão de logon local. Você pode usar ferramentas/clientes que aceitam credenciais de rede diretamente ou através do uso de 'runas /netonly' ou do Invoke-UserImpersonation/Invoke-RevertToSelf de @harmj0y incluído no PowerView.

  • https://github.com/PowerShellMafia/PowerSploit/tree/dev/Recon

Contas de máquina criadas com usuários padrão terão o mS-DS-CreatorSID preenchido com o SID do usuário padrão.

Observe que o ms-DS-MachineAccountQuota não fornece a capacidade para usuários autenticados excluírem contas de máquina adicionadas do AD. Será necessário obter privilégios elevados para remover a conta se você quiser evitar passar a tarefa para o seu cliente.

Exemplos:
  • Adicionar uma nova conta de máquina New-MachineAccount -MachineAccount test

  • Usar a conta adicionada com runas /netonly runas /netonly /user:dominio\test$ powershell

Remove-MachineAccount

Esta função remove uma conta de máquina com uma conta privilegiada.

Exemplo:
  • Remover uma conta de máquina chamada test com credenciais de administrador de domínio Remove-MachineAccount -MachineAccount test -Credential $domainadmin

Set-MachineAccountAttribute

Esta função pode preencher alguns atributos para uma conta que foi adicionada através de New-MachineAccount, se um usuário tiver acesso de gravação. Esta função deve ser usada com o mesmo usuário que criou a conta de máquina.

Aqui está uma lista de alguns dos atributos com acesso de gravação normalmente habilitado:

  • AccountDisabled
  • description
  • displayName
  • DnsHostName
  • ServicePrincipalName
  • userParameters
  • userAccountControl
  • msDS-AdditionalDnsHostName
  • msDS-AllowedToActOnBehalfOfOtherIdentity
  • SamAccountName
Exemplos:
  • Remover o '$' final do atributo SamAccountName Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test

  • Usar a conta modificada com runas /netonly runas /netonly /user:dominio\test powershell

Invoke-AgentSmith

Esta função aproveita New-MachineAccount para criar recursivamente quantas contas de máquina forem possível a partir de uma única conta não privilegiada através do MachineAccountQuota. Consulte a seguinte postagem no blog para obter detalhes:

  • https://blog.netspi.com/machineaccountquota-transitive-quota

Funções de DNS

Por padrão, os usuários autenticados têm a permissão 'Create all child objects' na zona DNS Integrada ao Active Directory (ADIDNS). A maioria dos registros que não existem atualmente em uma zona AD podem ser adicionados/excluídos.

Funções de Atualizações Dinâmicas

Invoke-DNSUpdate

Esta função pode ser usada para adicionar/excluir registros DNS dinâmicos se a configuração padrão de atualizações dinâmicas seguras habilitadas estiver configurada em um controlador de domínio. Registros A, AAAA, CNAME, MX, PTR, SRV e TXT são atualmente suportados. Invoke-DNSUpdate é modelado após a ferramenta nsupdate do BIND ao usar as opções '-g' ou 'gsstsig'.

Exemplos:
  • Adicionar um registro A Invoke-DNSUpdate -DNSType A -DNSName www -DNSData 192.168.100.125

  • Excluir um registro A Invoke-DNSUpdate -DNSType A -DNSName www.test.local

  • Adicionar um registro SRV Invoke-DNSUpdate -DNSType SRV -DNSName _autodiscover._tcp.test.local -DNSData system.test.local -DNSPriority 100 -DNSWeight 80 -DNSPort 443

Funções de ADIDNS

Disable-ADIDNSNode

Esta função pode tombstone (marcar como excluído) um nó ADIDNS.

Exemplo:
  • Tombstone um registro curinga. Disable-ADIDNSNode -Node *

Enable-ADIDNSNode

Esta função pode transformar um nó tombstoned novamente em um registro válido.

Exemplo:
  • Habilitar um registro curinga. Enable-ADIDNSNode -Node *

Get-ADIDNSNodeAttribute

Esta função pode retornar valores preenchidos em um atributo de nó DNS.

Exemplo:
  • Obter o valor preenchido do atributo dnsRecord de um nó chamado test. Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecord

Get-ADIDNSNodeOwner

Esta função pode retornar o proprietário de um nó ADIDNS.

Exemplo:
  • Obter o proprietário de um nó chamado test. Get-ADIDNSNodeOwner -Node test

Get-ADIDNSPermission

Esta função obtém um DACL de um nó ou zona ADIDNS.

Exemplos:
  • Obter o DACL da Zona Integrada ao Active Directory padrão de um sistema conectado ao domínio. Get-ADIDNSPermission

  • Obter o DACL de um nó DNS chamado test de um sistema conectado ao domínio. Get-ADIDNSPermission -Node test

Get-ADIDNSZone

Esta função pode retornar zonas ADIDNS.

Exemplos:
  • Obter todas as zonas ADIDNS. Get-ADIDNSZone

Grant-ADIDNSPermission

Esta função adiciona uma ACE ao DACL de um nó ou zona DNS.

Exemplo:
  • Adicionar acesso total a um registro curinga para "Authenticated Users".
  • Adicionar acesso total a um registro curinga para "Authenticated Users". Grant-ADIDNSPermission -Node * -Principal "authenticated users"

New-ADIDNSNode

Esta função adiciona um nó DNS a uma zona DNS Integrada ao Active Directory (ADIDNS) através de uma solicitação de adição LDAP criptografada.

Exemplo:
  • Adicionar um registro curinga a uma zona ADIDNS e tombstone o nó. New-ADIDNSNode -Node * -Tombstone

New-DNSRecordArray

Esta função cria um array de bytes válido para o atributo dnsRecord.

Exemplo:
  • Criar um array dnsRecord para um registro A apontando para 192.168.0.1. New-DNSRecordArray -Data 192.168.0.1

New-SOASerialNumberArray

Esta função obtém o número de série SOA atual para uma zona DNS e o incrementa pelo valor definido.

Exemplo:
  • Gerar um array de bytes a partir do número de série SOA atual incrementado em um. New-SOASerialNumberArray

Rename-ADIDNSNode

Esta função pode renomear um nó DNS.

Exemplo:
  • Renomear um nó DNS chamado test para test2. Rename-ADIDNSNode -Node test -NodeNew test2

Remove-ADIDNSNode

Esta função pode remover um nó DNS.

Exemplo:
  • Remover um nó curinga. Remove-ADIDNSNode -Node *

Revoke-ADIDNSPermission

Esta função remove uma ACE do DACL de um nó ou zona DNS.

Exemplo:
  • Remover a ACE GenericAll associada à conta user1. Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAll

Set-ADIDNSNodeAttribute

Esta função pode anexar, preencher ou sobrescrever valores em um atributo de nó DNS.

Exemplo:
  • Definir o atributo de descrição gravável em um nó chamado test. Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"

Set-ADIDNSNodeOwner

Esta função pode definir o proprietário de um nó DNS. Observe que é necessário um token com SeRestorePrivilege.

Exemplo:
  • Definir o proprietário de um nó chamado test para user1. Set-ADIDNSNodeOwner -Node test -Principal user1

Funções Diversas

Get-KerberosAESKey

Esta função pode gerar chaves Kerberos AES 256 e 128 a partir de um nome de usuário e senha conhecidos. Isso pode ser usado para testar pass the hash no invoke-DNSUpdate.

Exemplo:
  • Gerar chaves para um usuário AD válido chamado [email protected]. Get-KerberosAESKey -Salt TEST.LOCALuser
Baixar ferramenta