
Herramientas de explotación de MachineAccountQuota y DNS en PowerShell

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.
Esta función puede devolver valores poblados en un atributo de cuenta de máquina.
Get-MachineAccountAttribute -MachineAccount test -Attribute discriptionEsta 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.
Get-MachineAccountCreatorEsta 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.
Disable-MachineAccount -MachineAccount testEsta 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.
Enable-MachineAccount -MachineAccount testEsta 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):
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.
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.
Agregar una nueva cuenta de máquina
New-MachineAccount -MachineAccount test
Usar la cuenta agregada con runas /netonly
runas /netonly /user:domain\test$ powershell
Esta función elimina una cuenta de máquina con una cuenta privilegiada.
Remove-MachineAccount -MachineAccount test -Credential $domainadminEsta 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:
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
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:
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.
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'.
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
Esta función puede marcar como eliminado (tombstone) un nodo ADIDNS.
Esta función puede convertir un nodo marcado como eliminado de nuevo en un registro válido.
Enable-ADIDNSNode -Node *Esta función puede devolver valores poblados en un atributo de nodo DNS.
Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecordEsta función puede devolver el propietario de un nodo ADIDNS.
Get-ADIDNSNodeOwner -Node testEsta función obtiene una DACL de un nodo o zona ADIDNS.
Get-ADIDNSPermission