Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Powermad — PowerShell MachineAccountQuota および DNS エクスプロイトツール | Kitploit
ツール/GitHubGitHub/kevin-robertson/powermad
特権昇格偵察ID管理横移動ペネトレーションテスト認証レッドチーミング
GitHubkevin-robertson/powermad

Powermad

PowerShell MachineAccountQuota および DNS エクスプロイトツール

リポジトリを見る
1.5k18863年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Powermad_logo

PowerShell MachineAccountQuota および DNS エクスプロイトツール

Wiki

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

ブログ記事

  • LLMNR/NBNS スプーフィングを超えて - Active Directory 統合 DNS のエクスプロイト

関数

  • MachineAccountQuota 関数
  • DNS 関数
  • 動的更新関数
  • ADIDNS 関数
  • その他関数

MachineAccountQuota 関数

デフォルトの Active Directory の ms-DS-MachineAccountQuota 属性設定により、すべてのドメインユーザーは最大 10 個のマシン アカウントをドメインに追加できます。Powermad には、実際のシステムを AD に接続せずに ms-DS-MachineAccountQuota を悪用するための一連の関数が含まれています。

Get-MachineAccountAttribute

この関数は、マシン アカウント属性に入力された値を返すことができます。

例:
  • マシンアカウント 'test' から 'description' の値を取得します。
    Get-MachineAccountAttribute -MachineAccount test -Attribute discription

Get-MachineAccountCreator

この関数は、マシンアカウントの ms-DS-CreatorSID プロパティを利用して、ユーザー名または SID と関連するマシンアカウントのリストを返します。ms-DS-CreatorSID プロパティは、非特権ユーザーによってマシンアカウントが作成された場合にのみ設定されます。

例:
  • 設定されているすべての ms-DS-CreatorSID 属性のリストを取得します。
    Get-MachineAccountCreator

Disable-MachineAccount

この関数は、New-MachineAccount によって追加されたマシン アカウントを無効にできます。この関数は、マシンアカウントを作成したユーザーと同じユーザーで使用する必要があります。

例:
  • test という名前のマシン アカウントを無効にします。
    Disable-MachineAccount -MachineAccount test

Enable-MachineAccount

この関数は、Disable-MachineAccount によって無効にされたマシン アカウントを有効にできます。この関数は、マシンアカウントを作成したユーザーと同じユーザーで使用する必要があります。

例:
  • test という名前のマシン アカウントを有効にします。
    Enable-MachineAccount -MachineAccount test

New-MachineAccount

この関数は、ホスト システムの Active Directory への参加状況に影響を与えずに、ドメイン コントローラーへの LDAP 追加要求を介して直接新しいマシン アカウントを追加できます。

LDAP 追加要求は、システムをドメインに参加させる際に使用される追加要求をモデルにしています。次の属性が設定されます(ほとんどは DC によって検証されます)。

  • objectClass = Computer
  • SamAccountName = 末尾に $ が付いたマシンアカウント名
  • userAccountControl = 4096
  • DnsHostName = FQDN
  • ServicePrincipalName = FQDN とアカウント名の両方を使用した 2 つの HOST および 2 つの RestrictedKrbHost SPN
  • unicodePwd = 指定されたパスワード

新しいマシン アカウントは、「Domain Computers」グループに提供される特権を活用したり、ドメイン列挙、DNS エクスプロイトなどのための追加のアカウントとして使用できます。デフォルトでは、マシン アカウントにはローカル ログオン権限がありません。ネットワーク資格情報を直接受け入れるツール/クライアントを使用するか、runas /netonly を使用するか、または PowerView に含まれる @harmj0y の Invoke-UserImpersonation/Invoke-RevertToSelf を使用できます。

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

標準ユーザーで作成されたマシン アカウントは、mS-DS-CreatorSID に標準ユーザーの SID が設定されます。

ms-DS-MachineAccountQuota は、認証されたユーザーが追加したマシン アカウントを AD から削除する機能を提供しないことに注意してください。アカウントを削除するには、特権昇格が必要になります(クライアントに作業を引き継ぐのを避けたい場合)。

例:
  • 新しいマシン アカウントを追加します。
    New-MachineAccount -MachineAccount test

  • 追加したアカウントを runas /netonly で使用します。
    runas /netonly /user:domain\test$ powershell

Remove-MachineAccount

この関数は、特権アカウントを使用してマシン アカウントを削除します。

例:
  • ドメイン管理者の資格情報を使用して、test という名前のマシン アカウントを削除します。
    Remove-MachineAccount -MachineAccount test -Credential $domainadmin

Set-MachineAccountAttribute

この関数は、ユーザーが書き込みアクセス権を持っている場合、New-MachineAccount によって追加されたアカウントの一部の属性を設定できます。この関数は、マシンアカウントを作成したユーザーと同じユーザーで使用する必要があります。

通常、書き込みアクセスが有効になっている属性の一部を以下に示します。

  • AccountDisabled
  • description
  • displayName
  • DnsHostName
  • ServicePrincipalName
  • userParameters
  • userAccountControl
  • msDS-AdditionalDnsHostName
  • msDS-AllowedToActOnBehalfOfOtherIdentity
  • SamAccountName
例:
  • SamAccountName 属性から末尾の '$' を削除します。
    Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test

  • 変更したアカウントを runas /netonly で使用します。
    runas /netonly /user:domain\test powershell

Invoke-AgentSmith

この関数は、New-MachineAccount を利用して、MachineAccountQuota を介して単一の非特権アカウントから可能な限り多くのマシン アカウントを再帰的に作成します。詳細については、以下のブログ記事を参照してください。

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

DNS 関数

デフォルトでは、認証されたユーザーは Active Directory 統合 DNS(ADIDNS)ゾーンに対する「すべての子オブジェクトの作成」権限を持っています。AD ゾーンに現在存在しないほとんどのレコードは追加/削除できます。

動的更新関数

Invoke-DNSUpdate

この関数は、ドメイン コントローラーでセキュリティで保護された動的更新が有効(デフォルト設定)になっている場合に、動的 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 関数

Disable-ADIDNSNode

この関数は、ADIDNS ノードを tombstone 状態にできます。

例:
  • ワイルドカード レコードを tombstone 状態にします。
    Disable-ADIDNSNode -Node *

Enable-ADIDNSNode

この関数は、tombstone 状態のノードを有効なレコードに戻すことができます。

例:
  • ワイルドカード レコードを有効にします。
    Enable-ADIDNSNode -Node *

Get-ADIDNSNodeAttribute

この関数は、DNS ノード属性に入力された値を返すことができます。

例:
  • test という名前のノードの dnsRecord 属性に入力された値を取得します。
    Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecord

Get-ADIDNSNodeOwner

この関数は、ADIDNS ノードの所有者を返すことができます。

例:
  • test という名前のノードの所有者を取得します。 Get-ADIDNSNodeOwner -Node test

Get-ADIDNSPermission

この関数は、ADIDNS ノードまたはゾーンの DACL を取得します。

例:
  • ドメインに接続されたシステムから、デフォルトの Active Directory 統合ゾーンの DACL を取得します。
    Get-ADIDNSPermission

  • ドメインに接続されたシステムから、test という名前の DNS ノードの DACL を取得します。
    Get-ADIDNSPermission -Node test

Get-ADIDNSZone

この関数は、ADIDNS ゾーンを返すことができます。

例:
  • すべての ADIDNS ゾーンを取得します。
    Get-ADIDNSZone

Grant-ADIDNSPermission

この関数は、DNS ノードまたはゾーンの DACL に ACE を追加します。

例:
  • 「Authenticated Users」にワイルドカード レコードへのフル アクセスを追加します。
  • 「Authenticated Users」にワイルドカード レコードへのフル アクセスを追加します。
    Grant-ADIDNSPermission -Node * -Principal "authenticated users"

New-ADIDNSNode

この関数は、暗号化された LDAP 追加要求を通じて、Active Directory 統合 DNS(ADIDNS)ゾーンに DNS ノードを追加します。

例:
  • ADIDNS ゾーンにワイルドカード レコードを追加し、ノードを tombstone 状態にします。
    New-ADIDNSNode -Node * -Tombstone

New-DNSRecordArray

この関数は、dnsRecord 属性の有効なバイト配列を作成します。

例:
  • 192.168.0.1 を指す A レコードの dnsRecord 配列を作成します。
    New-DNSRecordArray -Data 192.168.0.1

New-SOASerialNumberArray

この関数は、DNS ゾーンの現在の SOA シリアル番号を取得し、設定された量だけ増分します。

例:
  • 現在の SOA シリアル番号から 1 増分したバイト配列を生成します。
    New-SOASerialNumberArray

Rename-ADIDNSNode

この関数は、DNS ノードの名前を変更できます。

例:
  • test という名前の DNS ノードを test2 に名前変更します。
    Rename-ADIDNSNode -Node test -NodeNew test2

Remove-ADIDNSNode

この関数は、DNS ノードを削除できます。

例:
  • ワイルドカード ノードを削除します。
    Remove-ADIDNSNode -Node *

Revoke-ADIDNSPermission

この関数は、DNS ノードまたはゾーンの DACL から ACE を削除します。

例:
  • user1 アカウントに関連付けられた GenericAll ACE を削除します。
    Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAll

Set-ADIDNSNodeAttribute

この関数は、DNS ノード属性の値を追加、設定、または上書きできます。

例:
  • test という名前のノードに書き込み可能な description 属性を設定します。
    Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"

Set-ADIDNSNodeOwner

この関数は、DNS ノードの所有者を設定できます。SeRestorePrivilege を持つトークンが必要です。

例:
  • test という名前のノードの所有者を user1 に設定します。
    Set-ADIDNSNodeOwner -Node test -Principal user1

その他関数

Get-KerberosAESKey

この関数は、既知のユーザー名とパスワードから Kerberos AES 256 および 128 キーを生成できます。これは、invoke-DNSUpdate でのパス・ザ・ハッシュのテストに使用できます。

例:
  • ユーザー [email protected] の有効な AD ユーザーのキーを生成します。
    Get-KerberosAESKey -Salt TEST.LOCALuser
ツールをダウンロード