Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Powermad — Herramientas de explotación de MachineAccountQuota y DNS en PowerShell | Kitploit
Herramientas/GitHubGitHub/kevin-robertson/powermad
Escalada de PrivilegiosReconocimientoGestión de IdentidadesMovimiento LateralPruebas de PenetraciónAutenticaciónRed Teaming
GitHubkevin-robertson/powermad

Powermad

Herramientas de explotación de MachineAccountQuota y DNS en PowerShell

Ver Repositorio
1.5k188hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Powermad_logo

Herramientas de explotación de MachineAccountQuota y DNS de PowerShell

Wiki

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

Entrada de Blog

  • Más allá del spoofing LLMNR/NBNS - Explotando DNS integrado en Active Directory

Funciones

  • Funciones de MachineAccountQuota
  • Funciones de DNS
  • Funciones de actualizaciones dinámicas
  • Funciones de ADIDNS
  • Funciones misceláneas

Funciones de MachineAccountQuota

La configuración predeterminada del atributo ms-DS-MachineAccountQuota de Active Directory permite que todos los usuarios del dominio agreguen hasta 10 cuentas de máquina a un dominio. Powermad incluye un conjunto de funciones para explotar ms-DS-MachineAccountQuota sin adjuntar un sistema real a AD.

Get-MachineAccountAttribute

Esta función puede devolver valores poblados en un atributo de cuenta de máquina.

Ejemplo:
  • Obtener el valor de 'description' de una cuenta de máquina llamada 'test'. Get-MachineAccountAttribute -MachineAccount test -Attribute discription

Get-MachineAccountCreator

Esta función aprovecha la propiedad ms-DS-CreatorSID en las cuentas de máquina para devolver una lista de nombres de usuario o SIDs y la cuenta de máquina asociada. La propiedad ms-DS-CreatorSID solo se completa cuando un usuario no privilegiado crea una cuenta de máquina.

Ejemplo:
  • Obtener una lista de todos los atributos ms-DS-CreatorSID poblados. Get-MachineAccountCreator

Disable-MachineAccount

Esta función puede deshabilitar una cuenta de máquina que se agregó mediante New-MachineAccount. Esta función debe usarse con el mismo usuario que creó la cuenta de máquina.

Ejemplo:
  • Deshabilitar una cuenta de máquina llamada test. Disable-MachineAccount -MachineAccount test

Enable-MachineAccount

Esta función puede habilitar una cuenta de máquina que fue deshabilitada mediante Disable-MachineAccount. Esta función debe usarse con el mismo usuario que creó la cuenta de máquina.

Ejemplo:
  • Habilitar una cuenta de máquina llamada test. Enable-MachineAccount -MachineAccount test

New-MachineAccount

Esta función puede agregar una nueva cuenta de máquina directamente a través de una solicitud de agregado LDAP a un controlador de dominio y no afectando el estado de conexión del sistema host a Active Directory.

La solicitud de agregado LDAP está modelada según la solicitud de agregado utilizada al unir un sistema a un dominio. Se establecen los siguientes atributos (mayormente validados por el DC):

  • objectClass = Computer
  • SamAccountName = Nombre de la cuenta de máquina con $ al final
  • userAccountControl = 4096
  • DnsHostName = FQDN
  • ServicePrincipalName = 2 SPN de HOST y 2 de RestrictedKrbHost usando tanto el FQDN como el nombre de la cuenta
  • unicodePwd = la contraseña especificada

Una nueva cuenta de máquina puede usarse para tareas como aprovechar el privilegio otorgado al grupo 'Domain Computers' o como una cuenta adicional para enumeración del dominio, exploits de DNS, etc. Por defecto, las cuentas de máquina no tienen permiso de inicio de sesión local. Puede usar herramientas/clientes que acepten credenciales de red directamente o mediante el uso de 'runas /netonly' o Invoke-UserImpersonation/Invoke-RevertToSelf de @harmj0y incluido con PowerView.

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

Las cuentas de máquina creadas con usuarios estándar tendrán el atributo mS-DS-CreatorSID poblado con el SID del usuario estándar.

Tenga en cuenta que ms-DS-MachineAccountQuota no proporciona la capacidad a los usuarios autenticados de eliminar las cuentas de máquina agregadas de AD. Se necesitarán privilegios elevados para eliminar la cuenta si desea evitar pasar la tarea a su cliente.

Ejemplos:
  • Agregar una nueva cuenta de máquina New-MachineAccount -MachineAccount test

  • Usar la cuenta agregada con runas /netonly runas /netonly /user:domain\test$ powershell

Remove-MachineAccount

Esta función elimina una cuenta de máquina con una cuenta privilegiada.

Ejemplo:
  • Eliminar una cuenta de máquina llamada test con credenciales de administrador del dominio Remove-MachineAccount -MachineAccount test -Credential $domainadmin

Set-MachineAccountAttribute

Esta función puede poblar algunos atributos para una cuenta que se agregó mediante New-MachineAccount, si un usuario tiene acceso de escritura. Esta función debe usarse con el mismo usuario que creó la cuenta de máquina.

Aquí hay una lista de algunos de los atributos habituales con acceso de escritura habilitado:

  • AccountDisabled
  • description
  • displayName
  • DnsHostName
  • ServicePrincipalName
  • userParameters
  • userAccountControl
  • msDS-AdditionalDnsHostName
  • msDS-AllowedToActOnBehalfOfOtherIdentity
  • SamAccountName
Ejemplos:
  • Eliminar el '$' al final del atributo SamAccountName Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test

  • Usar la cuenta modificada con runas /netonly runas /netonly /user:domain\test powershell

Invoke-AgentSmith

Esta función aprovecha New-MachineAccount para crear recursivamente tantas cuentas de máquina como sea posible desde una sola cuenta no privilegiada a través de MachineAccountQuota. Consulte la siguiente entrada de blog para más detalles:

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

Funciones de DNS

Por defecto, los usuarios autenticados tienen el permiso 'Crear todos los objetos secundarios' en la zona DNS integrada en Active Directory (ADIDNS). La mayoría de los registros que no existen actualmente en una zona de AD pueden agregarse/eliminarse.

Funciones de actualizaciones dinámicas

Invoke-DNSUpdate

Esta función puede usarse para agregar/eliminar registros DNS dinámicos si la configuración predeterminada de actualizaciones dinámicas seguras habilitadas está configurada en un controlador de dominio. Actualmente se admiten registros A, AAAA, CNAME, MX, PTR, SRV y TXT. Invoke-DNSUpdate está modelado según la herramienta nsupdate de BIND cuando se usan las opciones '-g' o 'gsstsig'.

Ejemplos:
  • Agregar un registro A Invoke-DNSUpdate -DNSType A -DNSName www -DNSData 192.168.100.125

  • Eliminar un registro A Invoke-DNSUpdate -DNSType A -DNSName www.test.local

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

Funciones de ADIDNS

Disable-ADIDNSNode

Esta función puede marcar como eliminado (tombstone) un nodo ADIDNS.

Ejemplo:
  • Marcar como eliminado un registro comodín.
    `Disable-ADIDNSNode -Node *

Enable-ADIDNSNode

Esta función puede convertir un nodo marcado como eliminado de nuevo en un registro válido.

Ejemplo:
  • Habilitar un registro comodín.
    Enable-ADIDNSNode -Node *

Get-ADIDNSNodeAttribute

Esta función puede devolver valores poblados en un atributo de nodo DNS.

Ejemplo:
  • Obtener el valor del atributo dnsRecord de un nodo llamado test.
    Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecord

Get-ADIDNSNodeOwner

Esta función puede devolver el propietario de un nodo ADIDNS.

Ejemplo:
  • Obtener el propietario de un nodo llamado test. Get-ADIDNSNodeOwner -Node test

Get-ADIDNSPermission

Esta función obtiene una DACL de un nodo o zona ADIDNS.

Ejemplos:
  • Obtener la DACL para la zona predeterminada integrada en Active Directory desde un sistema unido al dominio.
    Get-ADIDNSPermission

  • Obtener la DACL para un nodo DNS llamado test desde un sistema unido al dominio.
    Get-ADIDNSPermission -Node test

Get-ADIDNSZone

Esta función puede devolver zonas ADIDNS.

Ejemplos:
  • Obtener todas las zonas ADIDNS.
    Get-ADIDNSZone

Grant-ADIDNSPermission

Esta función agrega una ACE a una DACL de nodo o zona DNS.

Ejemplo:
  • Agregar acceso completo a un registro comodín para "Usuarios autenticados".
  • Agregar acceso completo a un registro comodín para "Usuarios autenticados".
    Grant-ADIDNSPermission -Node * -Principal "authenticated users"

New-ADIDNSNode

Esta función agrega un nodo DNS a una zona DNS integrada en Active Directory (ADIDNS) mediante una solicitud de agregado LDAP cifrada.

Ejemplo:
  • Agregar un registro comodín a una zona ADIDNS y marcar el nodo como eliminado.
    New-ADIDNSNode -Node * -Tombstone

New-DNSRecordArray

Esta función crea una matriz de bytes válida para el atributo dnsRecord.

Ejemplo:
  • Crear una matriz dnsRecord para un registro A que apunte a 192.168.0.1.
    New-DNSRecordArray -Data 192.168.0.1

New-SOASerialNumberArray

Esta función obtiene el número de serie SOA actual para una zona DNS y lo incrementa en la cantidad establecida.

Ejemplo:
  • Generar una matriz de bytes a partir del número de serie SOA actual incrementado en uno.
    New-SOASerialNumberArray

Rename-ADIDNSNode

Esta función puede renombrar un nodo DNS.

Ejemplo:
  • Renombrar un nodo DNS llamado test a test2.
    Rename-ADIDNSNode -Node test -NodeNew test2

Remove-ADIDNSNode

Esta función puede eliminar un nodo DNS.

Ejemplo:
  • Eliminar un nodo comodín.
    Remove-ADIDNSNode -Node *

Revoke-ADIDNSPermission

Esta función elimina una ACE de una DACL de nodo o zona DNS.

Ejemplo:
  • Eliminar la ACE GenericAll asociada con la cuenta user1.
    Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAll

Set-ADIDNSNodeAttribute

Esta función puede añadir, poblar o sobrescribir valores en un atributo de nodo DNS.

Ejemplo:
  • Establecer el atributo description (describible) en un nodo llamado test.
    Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"

Set-ADIDNSNodeOwner

Esta función puede establecer el propietario de un nodo DNS. Tenga en cuenta que se requiere un token con SeRestorePrivilege.

Ejemplo:
  • Establecer el propietario de un nodo llamado test a user1.
    Set-ADIDNSNodeOwner -Node test -Principal user1

Funciones misceláneas

Get-KerberosAESKey

Esta función puede generar claves Kerberos AES de 256 y 128 bits a partir de un nombre de usuario y contraseña conocidos. Esto puede usarse para probar pass-the-hash en invoke-DNSUpdate.

Ejemplo:
  • Generar claves para un usuario AD válido llamado [email protected].
    Get-KerberosAESKey -Salt TEST.LOCALuser
Descargar herramienta