0Pricing
Ethical Hacking Academy · レッスン

Kerberoasting

サービスチケットをクラックします

「Kerberoasting」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。

Kerberoastingとは

Kerberoastingは、Active Directoryのサービスアカウントを標的とする攻撃です。認証済みのドメインユーザーであれば、Service Principal Name(SPN)が設定されたアカウントのサービスチケットを要求できます。

そのチケットの一部はサービスアカウントのパスワードハッシュで暗号化されているため、攻撃者はアカウントに直接アクセスすることなく、オフラインでクラックできます。

なぜ機能するのか

ユーザーがサービスチケット(TGS)を要求すると、KDCはその一部をサービスアカウントのパスワードのNTLMハッシュで暗号化します。

どのドメインユーザーでもこのチケットを要求でき、特別な権限も必要ありません。そのため攻撃者はチケットを収集し、自分のマシンで時間をかけてクラックできます。

SPNアカウントの検索

まず、SPNが設定されたアカウントを列挙します。通常は、SQL、Webなどのサービスを実行するサービスアカウントです。

SPNを持つユーザーアカウント(マシンアカウントではないもの)は、パスワードが人手で設定され、変更頻度も低いことが多いため、理想的な標的です。

# PowerView
Get-DomainUser -SPN | select samaccountname,serviceprincipalname

Rubeusによるチケット要求

Rubeusは、Kerberosの悪用に使われるC#製の代表的なツールです。kerberoastコマンドは、SPNアカウントのTGSチケットを要求し、クラック可能な形式で出力します。

この操作は目立ちません。正規ユーザーによる通常のKerberos通信に見えるためです。

Rubeus.exe kerberoast /outfile:hashes.txt

Impacketによるチケット要求

Linuxでは、ImpacketのGetUserSPNs.pyを使い、有効なドメイン認証情報で同じ攻撃をリモートから実行できます。

すでに低権限の認証情報を1組入手している外部業務や侵害想定の業務で便利です。

GetUserSPNs.py corp.local/lowuser:Password1 -dc-ip 10.0.0.10 -request

ハッシュ形式

取得したチケットは、Hashcatがモード13100(Kerberos 5 TGS-REP etype 23、RC4)として認識する形式で保存します。

各ハッシュは$krb5tgs$23$で始まり、その後にSPN、アカウント、暗号化されたブロブが続きます。これをクラックツールに入力します。

$krb5tgs$23$*svc_sql$CORP.LOCAL$MSSQL/...*$a1b2c3...

Hashcatによるクラッキング

オフラインクラッキングでは、取得したハッシュに対してワードリスト(多くの場合はルール付き)を試します。RC4チケットは検証が高速なため、脆弱なサービスパスワードはすぐに破られてしまいます。

このため、サービスアカウントのパスワードは長く、ランダムなものにする必要があります。理想的には、Group Managed Service Accounts(gMSA)で管理します。

hashcat -m 13100 hashes.txt rockyou.txt -r best64.rule

暗号化の種類が重要な理由

アカウントが<強調>RC4(etype 23)をサポートしている場合、クラッキングは高速です。AES(etype 17/18)しか許可していない場合は、クラッキングに時間がかかりますが、それでも実行可能です(Hashcat modes 19600/19700)。

攻撃者は、要求する暗号化タイプをダウングレードして、より弱いRC4チケットを強制的に取得することさえあります。

検知と防御

防御側は、TGSリクエストの異常な量を監視します。特にRC4チケットに関するもの(イベントID 4769)が対象です。緩和策には次のものがあります。

  • 長くランダムなサービスアカウントパスワード(25文字以上)。
  • 自動ローテーションを行うgMSAアカウントの使用。
  • RC4を無効化し、AESを強制する。

なぜサービスアカウントなのか

サービスアカウントが狙われやすいのは、特権グループのメンバーであることが多く、パスワードが長期間変更されておらず、異常に気づく特定の人間にも紐付いていないためです。

サービスアカウントに不注意な過剰権限が付与されていた場合、それをクラッキングするだけでDomain Adminの権限を取得できる可能性があります。

攻撃における位置付け

Kerberoastingは通常、ドメインへの足掛かりを得た直後に実行されます。ノイズの少ない列挙とオフラインクラッキングで構成されるため、アラートが発生することはほとんどありません。

クラッキングされたサービスアカウントからは、ラテラルムーブメントや権限昇格につながることが多く、内部ペネトレーションテストやレッドチーム演習で定番の手法となっています。

確認問題

Kerberoastingに必要な基本条件を思い出してください。

まとめ

これでKerberoastingについて理解できました。

  • ドメインユーザーであれば誰でも、SPNアカウントのTGSチケットを要求できます。
  • チケットはサービスアカウントのハッシュで暗号化され、オフラインでクラッキングされます。
  • ツールにはRubeus、Impacket GetUserSPNs.pyがあり、Hashcat mode 13100でクラッキングします。
  • 長いパスワード、gMSA、AESのみの暗号化で防御します。

次は、Pass-the-Hashで認証情報を直接再利用します。

よくある質問

「Kerberoasting」レッスンは無料ですか?

はい。「Kerberoasting」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。

「Kerberoasting」で何を学びますか?

サービスチケットをクラックします ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ethical Hacking Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Kerberoasting」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このEthical Hacking Academyレッスンでコードを書いて実行できますか?

はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ADの基礎
  2. Kerberoasting
  3. Pass-the-Hash
  4. BloodHound
← Ethical Hacking Academyに戻る