Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
WonkaVision — セッションおよびチケットデータをダンプし、異常をスコアリングし、SIEMベースのインシデントレスポンス用にWindowsイベントログのインジケーターを生成することで、偽造されたKerberosチケットを検出します。 | Kitploit
ツール/GitHubGitHub/0xe7/wonkavision
防御ツールアイデンティティ&アクセス管理 (IAM)認証侵入検知インシデントレスポンス異常検知ログ分析
GitHub0xe7/wonkavision

WonkaVision

セッションおよびチケットデータをダンプし、異常をスコアリングし、SIEMベースのインシデントレスポンス用にWindowsイベントログのインジケーターを生成することで、偽造されたKerberosチケットを検出します。

リポジトリを見る
8993年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

WonkaVision


WonkaVision は、Kerberos チケットを分析し、それらが偽造されているかどうかを判断するための概念実証 (POC) ツールです。このツールは Charlie Clark と Andrew Schwartz によって作成されました。

この POC は、本番環境対応のエンタープライズアプリケーションとして意図されたものではなく、検出された IOA を公表しながら、偽造チケットをより適切に検出する方法に関するアイデアを生み出すためのものであることに注意してください。

Charlie Clark はこのコードベースの主著者です。

セッション情報のダンプ、Kerberos チケットのダンプ、Kerberos チケットの復号化/暗号化を行うコードの多くは Rubeus から取得されました。GetNCChanges コードは Vincent Le Toux の MakeMeEnterpriseAdmin から改作されました。

3つの機能があります:

  • /createkeys - ダンパーとアナライザーが使用する公開鍵/秘密鍵のペアを作成します
  • /dump - サーバー/ワークステーションで実行し、関連する Kerberos チケットとともにセッションデータをダンプします
  • /analyze - すべてのダンプファイルを含むディレクトリに対して実行し、ダンプ内のすべてのセッションとチケットを分析して、スコアを生成し、イベントログに書き込みます

WonkaVision には次の依存関係があります:

  • Newtonsoft.Json - JSON オブジェクトのシリアル化/逆シリアル化用
  • dnMerge - チケットダンプ時の展開を容易にするために Newtonsoft.Json DLL を単一バイナリにマージするため

講演のスライドデッキはこちらです。

WonkaVision は BSD 3-Clause ライセンスの下でライセンスされています。

目次

  • WonkaVision
    • キー作成
    • ダンプ
    • 分析
      • イベントログサンプル
      • SIEM ログ転送サンプル
        • Splunk を使用した例
        • Sentinel を使用した例
  • トークデモ
  • Kerberos スニファ
  • 謝辞
  • TODO

CreateKeys

楕円曲線ディフィー・ヘルマン (ECDH) 鍵交換アルゴリズムと P-256 曲線を使用して、公開鍵と秘密鍵のペアを生成します。デフォルトでは、鍵を base64 エンコードされた blob としてターミナルに出力しますが、鍵をファイルに書き込むための /outdir:PATH 引数もあります。

ファイルに書き込む場合、private.key ファイルは KRBTGT キーであるかのように保護する必要があります

例 1:

root@kitploit:~
C:\WonkaVision>WonkaVision.exe /createkeys
====================PublicKey====================
RUNLMSAAAABN/odC5C5W7meBvf6rKmWOoVW9qRTRcyCJBFuvRbEvMFuMa8cV20W1e+rRd4f9jSfr5vDVJ0+I/SJsZI1ondws
==================End PublicKey==================


====================PrivateKey====================
RUNLMiAAAABN/odC5C5W7meBvf6rKmWOoVW9qRTRcyCJBFuvRbEvMFuMa8cV20W1e+rRd4f9jSfr5vDVJ0+I/SJsZI1ondwsto7Fc/J4akdJdCix51F0ELLKWlsdMDlkYx2shFEV3AA=
==================End PrivateKey==================

例 2:

root@kitploit:~
C:\WonkaVision>WonkaVision.exe /createkeys /outdir:.
[!] Writing key files to ., be sure to protect the private key as if it was the krbtgt key!
[*] Written public key to .\public.key
[*] Written private key to .\private.key

C:\WonkaVision>dir
 Volume in drive C is System
 Volume Serial Number is 22BC-4361

 Directory of C:\WonkaVision

10/14/2022  01:10 PM    <DIR>          .
10/14/2022  01:10 PM    <DIR>          ..
10/14/2022  01:10 PM               104 private.key
10/14/2022  01:10 PM                72 public.key
10/14/2022  01:08 PM         1,383,424 WonkaVision.exe
               3 File(s)      1,383,600 bytes
               2 Dir(s)  71,813,464,064 bytes free

Dump

Kerberos チケットを含むセッションのセッション情報を、KERB-CRED 形式の Kerberos チケット自体も含めてダンプします。これは、LsaCallAuthenticationPackage を実行してセッション情報、チケットキャッシュの情報を要求し、チケットを KERB-CRED として要求することで行います (Rubeus の dump コマンドと同じ方法)。

2つの主要な引数が必要です:

  • /publickey:KEY - ダンプされたデータの暗号化に使用される公開鍵
  • /dumpdir:DIR - ダンプされたデータを保存するディレクトリ

データがダンプされると、WonkaVision は次の処理を行います:

  1. データを JSON 文字列に格納します
  2. ダンパー用の公開鍵/秘密鍵のペアを生成します
  3. /publickey:KEY 引数で渡された公開鍵とともに自身の秘密鍵を使用して、対称鍵を導出します
  4. 対称鍵を使用して JSON 文字列を AES で暗号化します
  5. 暗号化されたデータ、その公開鍵、IV を JSON 文字列内に格納し、/dumpdir:DIR 引数で指定されたディレクトリに書き込みます

特定のセッション (/luid:X 引数)、ユーザー (/user:USER 引数)、サービス (/service:SVC 引数)、および/またはサーバー (/server:Y 引数) を指定することも可能ですが、これらは現在あまりテストされていません。

例:

root@kitploit:~
WonkaVision.exe /dump /publickey:\\server\dumpshare\public.key /dumpdir:\\server\dumpshare\dumps

Analyze

/dump コマンドで作成されたダンプを分析します。/dumpdir:DIR が指すすべての子ディレクトリを再帰的にループし、見つかった .json ファイルをすべて読み取ります。json ファイルを逆シリアル化すると、その中に保存されているすべてのセッションと、セッション内のすべてのチケットをループし、可能な限り詳細に分析して、見つかった期待値からの逸脱ごとにスコアを割り当てます。その後、これらのスコアを合計して合計スコアを生成し、発見されたすべての問題を含む WonkaVision Session と WonkaVision Ticket のそれぞれについて、9988 と 9989 の 2 種類の Windows イベントを生成します。

LDAP クエリと DC 同期に代替の資格情報を使用するために、/creduser:USER、/creddomain:DOMAIN、/credpass:PASSWORD を指定することができます。ただし、これは実運用での使用は推奨されません。デバッグの問題を少し簡単にするために実装されました。

2つの主要な引数が必要です:

  • /privatekey:KEY - 暗号化されたダンプを復号化するために使用される秘密鍵
  • /dumpdir:DIR - 暗号化されたダンプが保存されているディレクトリ

例:

root@kitploit:~
WonkaVision.exe /analyze /privatekey:C:\keys\private.key /dumpdir:C:\dumpshare\dumps

Event Log Sample

WonkaVision はターミナルを介して分析出力を返しますが、攻撃指標 (IOA) 分析のより詳細な説明は Windows アプリケーションイベントログチャネルにあります。ここでアナリストは、合計スコア、特定の IOA、IOA の理由、ツールスコアに関して、より深い洞察とコンテキストを得ることができます。9988 (セッションイベント) と 9989 (チケットイベント) の 2 つのイベントがそれぞれ書き込まれます。イベントのサンプルはこちらにあります。

以下は WonkaVision セッションイベント (9988) の例です: 9988 Event

以下は WonkaVision チケットイベント (9989) の例です:

EVTX ログにおける Mimikatz を使用した偽造ゴールデンチケットの可能性がある例: 9989 Event

9989 Event 2

SIEM Log Forwarding Sample

上記のように、WonkaVision のログは Windows アプリケーションイベントログチャネルに書き込まれます。設定されている場合、これらのログは SIEM (例: Splunk、Sentinel など) に転送できます。

Example with Splunk

Splunk "Classic" WinEvnet ログ記録を使用した推奨クエリも使用できます:

root@kitploit:~
index="wv_demo_wineventlog" source="WinEventLog:Application" (Total_Score>=8) | table _time,Total_Score,User,Machine_Name,Service_Principal_Name,Mimikatz_Score,Rubeus_Score,Impacket_Score,Cobalt_Strike_Score,IOA_Reasons

Splunk における Mimikatz WonkaVision を使用した偽造ゴールデンチケットの可能性がある例: Mimikatz WonkaVisvion Splunk

Splunk における WonkaVision の Rubeus を使用した偽造ゴールデンチケットの可能性がある例:Rubeus WonkaVisvion Splunk

Example with Sentinel

Sentinel でのログ記録も可能です。ただし、これには追加の解析が必要になる場合があります。以下は、Jonathan Johnson (@jsecurity101) による、WonkaVision が Sentinel でどのように解析されるかの例クエリです:

root@kitploit:~
Event
    | where Computer contains "asgard" and Source contains "Wonka"
    | extend ParsedEventData=parse_xml(EventData)
    | extend Data=ParsedEventData.DataItem.EventData.Data
    | parse-where Data with *
            "Total Score: " TotalScore:string
            "Session: " Session:string
            "Machine Name: " MachineName:string
            "User: " User:string
            "Service Principal Name: " ServicePrincipalName:string
            "IOAs: " IOAs:string
            "SessionUser: " IOA_SessionUser:string
            "KDCCalled: " IOA_KDCCalled:string
            "Mimikatz Score: " TScore_MimikatzScore:string 
            "Impacket Score: " TScore_ImpacketScore:string 
            "Rubeus Score: " TScore_RubeusScore:string 
            "Cobalt Strike Score: " TScore_CobaltStrikeScore:string 
            "IOA Reasons: " IOA_Reasons:string
    | where IOA_SessionUser contains "thor"

Sentinel における WonkaVision からの偽造ゴールデンチケットの可能性がある例: WonkaVisvion Sentinel

Talk Demos

デモ 1 - ゴールデンチケット作成:

https://user-images.githubusercontent.com/13423848/202441525-aec75260-a991-4a4d-8df1-6fbf92ddbb4c.mp4

デモ 2 - 鍵ペア作成とセッション/チケットダンプ:

https://user-images.githubusercontent.com/13423848/202441775-b753ae06-d012-4258-9ea0-25d88dc80549.mp4

デモ 3 - ダンプ分析と Windows イベント出力:

https://user-images.githubusercontent.com/13423848/202441909-04bd1b2a-f204-41c4-a13a-dcfa42eebcf3.mp4

デモ 4 - Kerberos ネットワークスニファ:

https://user-images.githubusercontent.com/13423848/202442125-822cc4a4-1c87-447f-88ae-2e5c2fbf58d3.mp4

KrbSniffer POC

私たちの講演 (デモ 4) でデモンストレーションした Kerberos トラフィックスニファ POC は SharpPCap で実装されましたが、生のソケットを使用するように簡単に変更でき、その依存関係とシステムへの npcap のインストールの必要性を排除できます。

これは最小限の POC だったため、実装された指標のほとんどは、このスライドデッキ の18ページで詳述されている Charlie の YASCON 2020 講演で言及された暗号化されていない指標でしたが、さらに多くを実装できる可能性があります。

Acknowledgements

  • Rubeus コードベースを提供してくれた Will Schroeder (@harmj0y)
  • 'Make Me Enterprise Admin' コードベースを提供してくれた Vincent Le Toux (@mysmartlogon)
  • 'Get-KerberosTicketGrantingTicket.ps1' と 'Test-KerberosTicketGrantingTicket.ps1' コードベースを提供してくれた Jared Atkinson (@jaredcatkinson)
  • DCSync エラーのトラブルシューティングの支援 :)、POC テスト、Microsoft Sentinel テスト、Windows イベントログへの書き込みに関するアドバイス/ガイダンスを提供してくれた Jonathan Johnson (@jsecurity101)
  • アドバイス/ガイダンスを提供してくれた Elad Shamir (@elad_shamir)
  • BlackHat Europe 2018 で 'Real-time detection of attacks leveraging Domain Administrator privilege' を発表し、POC 後に私たちがその成果を知った 'sisoc-tokyo' チーム (東京大学、Wataru Matsuda、Mariko Fujimoto、Takuho Mitsunaga)。彼らのプロジェクトはこちら にあります。
  • このプロジェクトを完了させてくれた Semperis (@SemperisTech) と Trustedsec (@TrustedSec)

TODO

  • コードのリファクタリングとクリーンアップ
  • トラストキー取得の実装
ツールをダウンロード