
Инструменты эксплуатации PowerShell MachineAccountQuota и DNS

Атрибут ms-DS-MachineAccountQuota по умолчанию в Active Directory позволяет всем пользователям домена добавлять до 10 учётных записей компьютеров в домен. Powermad включает набор функций для эксплуатации ms-DS-MachineAccountQuota без фактического присоединения системы к AD.
Эта функция может возвращать значения, заполненные в атрибуте учётной записи компьютера.
Get-MachineAccountAttribute -MachineAccount test -Attribute discriptionЭта функция использует свойство ms-DS-CreatorSID учётных записей компьютеров для возврата списка имён пользователей или SID и связанной с ними учётной записи компьютера. Свойство ms-DS-CreatorSID заполняется только в том случае, если учётная запись компьютера была создана непривилегированным пользователем.
Get-MachineAccountCreatorЭта функция может отключить учётную запись компьютера, добавленную с помощью New-MachineAccount. Эту функцию следует использовать с тем же пользователем, который создал учётную запись компьютера.
Disable-MachineAccount -MachineAccount testЭта функция может включить учётную запись компьютера, которая была отключена с помощью Disable-MachineAccount. Эту функцию следует использовать с тем же пользователем, который создал учётную запись компьютера.
Enable-MachineAccount -MachineAccount testЭта функция может добавить новую учётную запись компьютера напрямую через LDAP-запрос добавления к контроллеру домена, не влияя на статус присоединения хост-системы к Active Directory.
LDAP-запрос добавления моделируется по образцу запроса добавления, используемого при присоединении системы к домену. Устанавливаются следующие атрибуты (в основном проверяемые контроллером домена):
Новая учётная запись компьютера может использоваться для таких задач, как использование привилегий, предоставленных группе «Компьютеры домена», или в качестве дополнительной учётной записи для перечисления домена, эксплуатации DNS и т. д. По умолчанию учётные записи компьютеров не имеют разрешения на локальный вход. Вы можете использовать инструменты/клиенты, которые принимают сетевые учётные данные напрямую, или через использование 'runas /netonly', или с помощью Invoke-UserImpersonation/Invoke-RevertToSelf от @harmj0y, входящих в PowerView.
Учётные записи компьютеров, созданные стандартными пользователями, будут иметь атрибут mS-DS-CreatorSID, заполненный SID стандартного пользователя.
Обратите внимание, что ms-DS-MachineAccountQuota не даёт аутентифицированным пользователям возможности удалять добавленные учётные записи компьютеров из AD. Для удаления учётной записи потребуется получить повышенные привилегии, если вы хотите избежать передачи этой задачи вашему клиенту.
Добавить новую учётную запись компьютера.
New-MachineAccount -MachineAccount test
Использовать добавленную учётную запись с runas /netonly.
runas /netonly /user:domain\test$ powershell
Эта функция удаляет учётную запись компьютера с привилегированной учётной записью.
Remove-MachineAccount -MachineAccount test -Credential $domainadminЭта функция может заполнять некоторые атрибуты для учётной записи, добавленной через New-MachineAccount, если у пользователя есть права на запись. Эту функцию следует использовать с тем же пользователем, который создал учётную запись компьютера.
Вот список некоторых атрибутов, для которых обычно включён доступ на запись:
Удалить завершающий символ '$' из атрибута SamAccountName.
Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test
Использовать изменённую учётную запись с runas /netonly.
runas /netonly /user:domain\test powershell
Эта функция использует New-MachineAccount для рекурсивного создания как можно большего числа учётных записей компьютеров из одной непривилегированной учётной записи через MachineAccountQuota. Подробности см. в следующей записи блога:
По умолчанию аутентифицированные пользователи имеют разрешение «Создание всех дочерних объектов» в зоне DNS, интегрированной в Active Directory (ADIDNS). Большинство записей, которые в данный момент не существуют в зоне AD, могут быть добавлены/удалены.
Эту функцию можно использовать для добавления/удаления динамических DNS-записей, если на контроллере домена настроен параметр безопасных динамических обновлений (включён по умолчанию). В настоящее время поддерживаются записи A, AAAA, CNAME, MX, PTR, SRV и TXT. Invoke-DNSUpdate моделируется по образцу инструмента nsupdate от BIND при использовании опций '-g' или 'gsstsig'.
Добавить A-запись.
Invoke-DNSUpdate -DNSType A -DNSName www -DNSData 192.168.100.125
Удалить A-запись.
Invoke-DNSUpdate -DNSType A -DNSName www.test.local
Добавить SRV-запись.
Invoke-DNSUpdate -DNSType SRV -DNSName _autodiscover._tcp.test.local -DNSData system.test.local -DNSPriority 100 -DNSWeight 80 -DNSPort 443
Эта функция может поместить узел ADIDNS в состояние «надгробия» (tombstone).
Эта функция может превратить узел, находящийся в состоянии «надгробия», обратно в действительную запись.
Enable-ADIDNSNode -Node *Эта функция может возвращать значения, заполненные в атрибуте узла DNS.
Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecordЭта функция может возвращать владельца узла ADIDNS.
Get-ADIDNSNodeOwner -Node testЭта функция получает DACL узла или зоны ADIDNS.