

デフォルトの Active Directory の ms-DS-MachineAccountQuota 属性設定により、すべてのドメインユーザーは最大 10 個のマシン アカウントをドメインに追加できます。Powermad には、実際のシステムを AD に接続せずに ms-DS-MachineAccountQuota を悪用するための一連の関数が含まれています。
この関数は、マシン アカウント属性に入力された値を返すことができます。
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この関数は、ホスト システムの Active Directory への参加状況に影響を与えずに、ドメイン コントローラーへの LDAP 追加要求を介して直接新しいマシン アカウントを追加できます。
LDAP 追加要求は、システムをドメインに参加させる際に使用される追加要求をモデルにしています。次の属性が設定されます(ほとんどは DC によって検証されます)。
新しいマシン アカウントは、「Domain Computers」グループに提供される特権を活用したり、ドメイン列挙、DNS エクスプロイトなどのための追加のアカウントとして使用できます。デフォルトでは、マシン アカウントにはローカル ログオン権限がありません。ネットワーク資格情報を直接受け入れるツール/クライアントを使用するか、runas /netonly を使用するか、または PowerView に含まれる @harmj0y の Invoke-UserImpersonation/Invoke-RevertToSelf を使用できます。
標準ユーザーで作成されたマシン アカウントは、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 を介して単一の非特権アカウントから可能な限り多くのマシン アカウントを再帰的に作成します。詳細については、以下のブログ記事を参照してください。
デフォルトでは、認証されたユーザーは Active Directory 統合 DNS(ADIDNS)ゾーンに対する「すべての子オブジェクトの作成」権限を持っています。AD ゾーンに現在存在しないほとんどのレコードは追加/削除できます。
この関数は、ドメイン コントローラーでセキュリティで保護された動的更新が有効(デフォルト設定)になっている場合に、動的 DNS レコードの追加/削除に使用できます。現在、A、AAAA、CNAME、MX、PTR、SRV、TXT レコードがサポートされています。Invoke-DNSUpdate は、BIND の nsupdate ツールで '-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 状態にできます。
Disable-ADIDNSNode -Node *この関数は、tombstone 状態のノードを有効なレコードに戻すことができます。
Enable-ADIDNSNode -Node *この関数は、DNS ノード属性に入力された値を返すことができます。
Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecordこの関数は、ADIDNS ノードの所有者を返すことができます。
Get-ADIDNSNodeOwner -Node testこの関数は、ADIDNS ノードまたはゾーンの DACL を取得します。
ドメインに接続されたシステムから、デフォルトの Active Directory 統合ゾーンの DACL を取得します。
Get-ADIDNSPermission
ドメインに接続されたシステムから、test という名前の DNS ノードの DACL を取得します。
Get-ADIDNSPermission -Node test
この関数は、ADIDNS ゾーンを返すことができます。
Get-ADIDNSZoneこの関数は、DNS ノードまたはゾーンの DACL に ACE を追加します。
Grant-ADIDNSPermission -Node * -Principal "authenticated users"この関数は、暗号化された LDAP 追加要求を通じて、Active Directory 統合 DNS(ADIDNS)ゾーンに DNS ノードを追加します。
New-ADIDNSNode -Node * -Tombstoneこの関数は、dnsRecord 属性の有効なバイト配列を作成します。
New-DNSRecordArray -Data 192.168.0.1この関数は、DNS ゾーンの現在の SOA シリアル番号を取得し、設定された量だけ増分します。
New-SOASerialNumberArrayこの関数は、DNS ノードの名前を変更できます。
Rename-ADIDNSNode -Node test -NodeNew test2この関数は、DNS ノードを削除できます。
Remove-ADIDNSNode -Node *この関数は、DNS ノードまたはゾーンの DACL から ACE を削除します。
Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAllこの関数は、DNS ノード属性の値を追加、設定、または上書きできます。
Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"この関数は、DNS ノードの所有者を設定できます。SeRestorePrivilege を持つトークンが必要です。
Set-ADIDNSNodeOwner -Node test -Principal user1この関数は、既知のユーザー名とパスワードから Kerberos AES 256 および 128 キーを生成できます。これは、invoke-DNSUpdate でのパス・ザ・ハッシュのテストに使用できます。
Get-KerberosAESKey -Salt TEST.LOCALuser