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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
aggrokatz — Aggrokatz は、Cobalt Strike 用の aggressor プラグイン拡張機能であり、pypykatz がビーコンとリモートで連携できるようにし、LSASS ダンプファイルやレジストリハイブファイルを解析して、ファイルをダウンロードしたりビーコンに疑わしいコードをアップロードすることなく、資格情報やその他の秘密情報を抽出することを可能にします。 | Kitploit
ツール/GitHubGitHub/sec-consult/aggrokatz
エクスプロイトフレームワークポストエクスプロイトペネトレーションテストレッドチーミングペイロード開発
GitHubsec-consult/aggrokatz

aggrokatz

Aggrokatz は、Cobalt Strike 用の aggressor プラグイン拡張機能であり、pypykatz がビーコンとリモートで連携できるようにし、LSASS ダンプファイルやレジストリハイブファイルを解析して、ファイルをダウンロードしたりビーコンに疑わしいコードをアップロードすることなく、資格情報やその他の秘密情報を抽出することを可能にします。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

aggrokatz

aggro_card

これは何ですか

aggrokatz は、CobaltStrike 用の Aggressor プラグイン拡張で、pypykatz がリモートでビーコンとインターフェースできるようにします。
現在のバージョンの aggrokatz では、pypykatz が LSASS ダンプファイルとレジストリハイブファイルを解析し、ファイルをダウンロードしたり、ビーコンに不審なコードをアップロードしたりすることなく、保存された資格情報やその他の秘密を抽出できます(Cobalt Strike はすでにそこにあります)。 将来的には、このプロジェクトは、すべての DPAPI シークレットの検索と復号化、Kerberoasting などの隠密運用のための追加機能を提供することを目指しています。

このツールのリリースに際して、短い ブログ記事 を公開しました。スクリーンショットも含まれています。

重要な注意事項 - 必ずお読みください

LSASS/レジストリのダンプはこのプロジェクトの目標ではなく、解析のみです。理由:

  1. ダンプのための複数の手法はすでに Cobalt Strike (CS) に実装されており、一般に広く利用可能です。最近、私たちは、ベース64ではなく生のバイトをディスクにダンプする CredBandit の修正版を使用するように切り替えました。クールなツールです。チェックしてみてください。
  2. 私たちはダンプ手法を非公開にしたいと考えています。

CS クライアントでは、スクリプトを変更した場合、「リロード」を使用したり、手動でアンロードしてから再読み込みしようとしたりしないでください。必ずアンロードし、クライアントを閉じて新たに起動し、その後変更したスクリプトを読み込んでください。そうしないと、複数のバージョンが同時に実行され、大量のエラーや奇妙な動作が発生します!
リモート側で LSASS/レジストリファイルを解析している間は、スクリプトを開始した特定のビーコンと対話しないでください。通常は問題を引き起こしませんが、保証はできません。

インストール

  • pycobalt をインストールしてセットアップする必要があります。GitHub ページに readme があります。
  • pypykatz をインストールする必要があります。バージョンは >=0.4.8 でなければなりません。
  • Cobalt Strike が必要です。

セットアップ

  • pycobalt の aggressor.cna ファイルがセットアップされ、Python インタプリタの場所を認識していることを確認してください。
  • aggrokatz.cna 内の pycobalt_path を pycobalt.cna を指すように変更してください。
  • CS では、View > Script Console と Cobalt Strike > Script Manager ウィンドウを使用します。Script Manager を使用して aggkatz.cna スクリプトを読み込んでください。

使い方

  • aggkatz.cna スクリプトが正常に読み込まれると、ビーコンを右クリックしたときに新しいメニュー項目 pypykatz が表示されます。
  • 解析中は、Script Console ウィンドウにデバッグメッセージが表示されます。
  • 解析が完了すると、結果は Script Console ウィンドウとビーコン自身のウィンドウの両方に表示されます。

LSASS ダンプ解析メニューパラメータ

  • LSASS file: リモートコンピュータ上の lsass.dmp ファイルの場所。UNC パスを使用して、SMB 経由で共有されている lsass.dmp ファイルにアクセスすることもできます。
  • chunksize : 一度に読み取られる最大量
  • BOF file : チャンク読み取りを可能にする BOF ファイル(Beacon Object File)。このファイルは、新しいチャンクが読み取られるたびにアップロードされ、メモリ内で実行されます。
  • (module) : 解析するモジュールを指定します。デフォルト: all
  • Output : 出力形式を指定します。
  • Populate Credential tab : 解析が成功すると、取得したすべての資格情報が Cobalt Strike の資格情報タブで利用できるようになります。この機能はベータ版です。
  • Delete remote file after parsing : 解析が成功すると、LSASS ダンプファイルがターゲットから削除されます。

レジストリダンプ解析メニューパラメータ

  • SYSTEM file: リモートコンピュータ上の SYSTEM.reg ファイルの場所。UNC パスを使用して、SMB 経由で共有ファイルにアクセスすることもできます。
  • SAM file (optional): リモートコンピュータ上の SAM.reg ファイルの場所。UNC パスを使用して、SMB 経由で共有ファイルにアクセスすることもできます。
  • SECURITY file (optional): リモートコンピュータ上の SECURITY.reg ファイルの場所。UNC パスを使用して、SMB 経由で共有ファイルにアクセスすることもできます。
  • SOFTWARE file (optional): リモートコンピュータ上の SOFTWARE.reg ファイルの場所。UNC パスを使用して、SMB 経由で共有ファイルにアクセスすることもできます。
  • chunksize : 一度に読み取られる最大量
  • BOF file : チャンク読み取りを可能にする BOF ファイル(Beacon Object File)。このファイルは、新しいチャンクが読み取られるたびにアップロードされ、メモリ内で実行されます。
  • Output : 出力形式を指定します。

制限事項

ファイル読み取り BOF は現在、最大 4GB のファイル読み取りをサポートしています。これは修正により拡張可能ですが、これまでそのような大きなファイルは観測されていません。

仕組み

TL;DR

通常、pypykatz のパーサーはディスク上で一連のファイル読み取り操作を実行しますが、aggrokatz の助けを借りて、これらの読み取り操作は特別に作成された BOF (Beacon Object File) を使用してビーコンにトンネリングされ、リモートファイルの内容をチャンク単位で読み取ることができます。これにより、pypykatz はファイル全体を読み取ることなく、秘密が保存されている必要なチャンクだけを取得して、リモートファイルからすべての秘密を抽出できます。

詳細

プロセス全体の全体像を把握するには、2つの部分を強調する必要があります:

  1. pypykatz が CobaltStrike とどのように統合されるか
  2. pypykatz がファイル全体を読み取らずに資格情報抽出をどのように実行するか

pypykatz の CobaltStrike への統合

CobaltStrike (エージェント) は Java で書かれており、pypykatz は Python で書かれています。これは問題です。幸運なことに、未知のエンティティが pycobalt を作成しており、これは Python から直接呼び出せる便利な API を備えた、2つの世界の間のすっきりしたインターフェースを提供しています。pycobalt は素晴らしいエンジニアリング作品ですが、指摘しておくべきいくつかの問題/欠点があります:

  1. pycobalt プロジェクトの信頼について:
  • 私たちは作者に連絡を試みましたが、返事はありませんでした。
  • pycobalt プロジェクトが将来維持されることは保証できません。
  • 私たちは pycobalt の開発のどの側面も制御していません。
  1. 観測された技術的問題について:
  • 一般的に、pycobalt と CobaltStrike の間にはいくつかのエンコーディング問題があります。これにより、一部のバイトがエンコーダによって破損されるために使用できないバイトを返すAPI呼び出しが発生します。コードを確認した結果、ほとんどのエンコード/デコード問題は、pycobalt が Java プロセスとの通信に STDOUT/STDIN を使用しているためであると結論付けました。
  • 特に、このプロジェクトにとって重要な bof_pack API 呼び出しは、純粋なアグレッサースクリプトとして実装し、Python からはバイトを使用せずに基本データ構造(文字列と整数)のみを使用して呼び出す必要がありました。
  • pycobalt パッケージが提供するのはスレッドサポートなしのブロッキングAPIのみです。まあ、少なくともスレッドがランダムに壊れるのを観測しましたが、ある程度予想していました。
  • ブロッキングAPI + スレッドなし + コールバック依存 = 正しく動作させるためにいくつかの奇妙なハックを採用する必要がありました。

カードの山の上の資格情報解析

pypykatz とそのコンパニオンモジュール minidump は、以前実装されていたものよりも効率的なチャンク解析を可能にするために修正する必要がありましたが、これはまた別の日の話題です。
pypykatz が pycobalt を介して CobaltStrike とインターフェースできるようになった後、次のステップはチャンクファイル読み取りを可能にすることでした。残念ながら、この機能は私たちが見てきたどの C2 ソリューションでもデフォルトでは利用できなかったため、実装する必要がありました。この問題に取り組んだ方法は、CobaltStrike の Beacon Object Files インターフェース(略して BOF)を使用してチャンク読み取りを実装することです。BOF は、ビーコン上で別個の実行ファイルとしてではなく、すでに実行中のビーコンの一部として動作する C プログラムです。このインターフェースは、すべてのコードがディスクに何も書き込まれることなくメモリ内で実行されるため、BOF をはるかにステルスにするため、非常に便利です。
私たちの BOF ソリューションは単純な関数で、4つの引数を取ります:

  • fileName : LSASS ダンプファイルまたはレジストリハイブ(リモート側)の完全なファイルパス
  • buffsize : ファイルから読み取る量(バイト単位)
  • seekSize : ファイル読み取り操作を開始する位置(ファイルの先頭から)
  • rplyid : 衝突を避けるために応答に組み込まれる識別番号

これらのパラメータを使用して、pypykatz(エージェント上で実行)は、ファイルの特定の部分を対象とするファイル読み取り操作をビーコン(ターゲットコンピュータ)に発行できます。
もう一方の端(CobaltStrike 内)では、aggrokatz がコールバックを登録し、ターゲットビーコンから返されるすべてのメッセージを監視します。メッセージのヘッダーがファイル読み取り操作のヘッダーと一致する場合、それは minidump ファイルのチャンクとして処理され、minidump パーサーにディスパッチされ、結果が pypykatz に送られます。さらに読み取りが必要な場合、pypykatz は minidump リーダーを使用して読み取りを発行し、BOF インターフェースを介して新しい読み取りコマンドをビーコンにディスパッチします。このプロセスはファイルが解析されるまで繰り返されます。

結果

この方法を使用して約100個のLSASSダンプを解析した後、以下のことを述べることができます(使用したチャンクサイズは20kです):

  • LSASSダンプファイルのサイズに依存しますが(私たちのダンプは40MB~300MBでした)、平均してすべての秘密を3.5MBで抽出できました。この数値はLSASSダンプのサイズではなく、秘密の数と解析対象として選択したパッケージの量に依存することに注意してください。
  • 成功した解析には平均250回の読み取り操作が使用されました。
  • 解析にかかる時間はジッター/スリープ設定にのみ依存するため、測定しても意味がありません。

欠点

  • 読み取り操作ごとに BOF をビーコンにアップロードする必要があります。(密かに、CobaltStrike の誰かがこの記事を見て、デフォルトで基本的なファイル読み取り操作を実装することを決定し、このソリューションをスキップできるようになることを願っています)。
  • 読み取り操作の数は、非常に大きなジッター/スリープを使用しているビーコンの場合、問題になる可能性があります。

謝辞

dcsync - pycobalt の作者
@anthemtotheego Twitter - CredBandit の作成者
Nicol Jos @shinepaw - ロゴデザイン

ツールをダウンロード