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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
jackdaw — 収集 収集 収集 | Kitploit
ツール/GitHubGitHub/skelsec/jackdaw
パスワードクラッキング情報収集ペネトレーションテスト異常検知
GitHubskelsec/jackdaw

jackdaw

収集 収集 収集

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

人気

すべて見る →

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

すべてのツールを探索

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

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

jackdaw

収集 収集 収集 jackdaw_card

これは何?

Jackdawは、ドメイン内のすべての情報を収集し、SQLデータベースに保存し、ドメインオブジェクトが互いにどのように相互作用するか、そして潜在的な攻撃者がこれらの相互作用をどのように悪用する可能性があるかを示す美しいグラフを表示するためのツールです。 また、ハッシュ/パスワード/ユーザーを保存、検索、レポートすることで、パスワードクラッキングプロジェクトを支援する便利な機能も備えています。

クイック使用方法

  • 自動収集を使用しない場合(例:Windows以外)は、dbinit で最初に空のデータベースを作成する必要があります。
  • 最初に enum を実行する必要があります。Windowsでは実行ファイルをダブルクリックするか、jackdaw.exe auto と入力することで自動的に実行できます。
  • 次に nest を実行してWebインターフェースを起動します。デフォルトでは http://127.0.0.1:5000/nest で提供され、http://127.0.0.1:5000/ui にはSWAGGERドキュメント化されたAPIがあります。
  • Webインターフェースでは、ドメインビューに移動し、Generate graph cache をクリックして(一度だけ)エッジ情報をキャッシュファイルに保存する必要があります。時間がかかる場合がありますが、コマンドラインに進行状況バーが表示されます。
  • グラフキャッシュが完了したら、graph view でグラフを操作できますが、左上の正しいキャッシュ番号を選択することを忘れないでください。

パフォーマンスのヒント/コツ

このセクションはユーザーフィードバックに基づいて定期的に更新されます。

データ収集

ここではアドバイスはありません。コード上で改善できる点はありますが、汎用的なものでは何もできません。

グラフデータキャッシュファイル生成

各グラフに対して一度だけ実行する必要があるグラフデータキャッシュファイルの生成は、デフォルトのsqlalchemyツールを使用すると時間がかかる場合があります。
SQLiteバックエンドを使用し、かつ sqlite3 コマンドラインユーティリティを PATH のどこかに置くことで、パフォーマンスと速度を大幅に向上させることができます(速度は50倍以上、メモリは20分の1未満)。すべてのユーザーにこれを推奨します。

パス計算とグラフデータ読み込み

ここが大きなトレードオフの部分です。Jackdawの初期実装では、グラフバックエンドとして networkx モジュールを使用していました。これは完全にPythonで書かれているためです。しかし、これには非常に大きなメモリと速度のコストがかかりました。Jackdawを純粋なPythonのままにする場合、このオプションはまだ存在しますが、現在は igraph バックエンドを使用するのがデフォルトです。
注: igraph はC++ライブラリで、Pythonバインディングがあります。Windowsおよび主要なLinuxディストリビューション向けのプリコンパイル済みホイールがありますが、Jackdawを他の環境(組み込みシステム/モバイル/Webブラウザ)で使用する場合は、networkx に戻すか、長時間のコンパイル時間を受け入れる必要があります。

コマンド例

自動列挙 - Windowsのみ、ドメイン参加ユーザーが必要 -

データベースを事前に初期化する必要はありません。自動的に行われます。 配布バイナリを使用する場合は、jackdaw.exe をダブルクリックするだけです。
Pythonスクリプトとして使用する場合: jackdaw auto

DB初期化

jackdaw --sql sqlite:///<フルパス>/test.db dbinit
Linuxシステムでは <フルパス> に先頭の / が含まれるため、ファイル名の前に //// の4つのスラッシュが入ります。驚かないでください。

列挙

統合SSPIによる完全列挙 - Windowsのみ

jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<ドメイン>\<プレースホルダ>@10.10.10.2' 'smb+sspi-ntlm://<ドメイン>\<プレースホルダ>@10.10.10.2'

ユーザー名とパスワードによる完全列挙 - プラットフォーム非依存

パスワードは Passw0rd! です。
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'

ユーザー名とパスワードによるLDAPのみの列挙 - プラットフォーム非依存

パスワードは Passw0rd! です。
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'

対話型Webインターフェースを起動してグラフをプロットし、追加機能にアクセス

jackdaw --sql sqlite:///<DBのフルパス> nest

APIの場合は http://127.0.0.1:5000/ui を開きます。

UIのビルド方法については、下の「UIのビルド」セクションを参照してください。ビルドが完了したら:

グラフインターフェースの場合は http://127.0.0.1:5000/nest を開きます(グラフは表示されますが、完全には機能していません)。

機能

データ収集

LDAP経由

LDAP列挙フェーズでは、AD情報、ユーザー、マシン、OU、グループオブジェクトのデータを収集します。これらはグラフ内のノードとして、またDB内の個別のテーブルとして表現されます。さらに、上記のすべてのオブジェクトのセキュリティ記述子が解析され、DACLのACLがDBに追加されます。これはメンバーシップ情報とともに、グラフ内のエッジとして表現されます。また、必要に応じて上記のデータタイプに対してカスタムSQLクエリを実行することもできます。

SMB経由

SMB列挙フェーズでは、ドメイン内の各マシン(LDAPで取得)に接続して、共有、ローカルグループ、セッション、NTLMデータを収集します。

Kerberos経由

Kerberosモジュールは自動的にKerberoastingとAS-REP Roastingを実行します。

LSASSダンプ経由(オプション)

このフレームワークでは、LSASSメモリダンプをアップロードして資格情報を保存し、セッション情報テーブルを拡張できます。これらは両方ともグラフ内の追加エッジとして使用されます(それぞれ共有パスワードとセッション)。フレームワークはこの情報を使用して、脆弱/共有/クラック済み資格情報のパスワードレポートを作成します。

DCSYNC結果経由(オプション)

このフレームワークでは、impacketのDCSYNCファイルをアップロードして資格情報を保存できます。これはグラフ内の追加エッジとして使用されます(共有パスワード)。フレームワークはこの情報を使用して、脆弱/共有/クラック済み資格情報のパスワードレポートを作成します。

手動アップロード経由(オプション)

このフレームワークでは、利用可能なDBをあらゆる面で手動で拡張できます。例:特定のコンピュータ上のユーザーセッション情報が(自動列挙以外で)発見された場合、これらのセッションを手動でアップロードすることが可能で、それによりDBが更新され、結果のグラフにも反映されます。

グラフ

このフレームワークは、データベース内の利用可能な情報を使用してグラフを生成し、Web UI(nest)を介してプロットできます。さらに、グラフ生成とパス計算は、Web API(/ui エンドポイント)またはグラフオブジェクトの関数を使用してプログラム的に呼び出すことができます。

異常検出

このフレームワークは、グラフ生成なしで一般的なADの設定ミスを特定できます。現在はWeb API経由のみです。

ユーザー

ユーザー異常検出には、安全でないUAC権限や過剰なユーザー記述値の検出が含まれます。この機能セットは、将来新機能が実装されるにつれて拡大する予定です。

マシン

マシン異常検出には、安全でないUAC権限、必須でないSMB署名、古いOSバージョン、ドメイン外のマシンの検出が含まれます。この機能セットは、将来新機能が実装されるにつれて拡大する予定です。

パスワードクラッキング

このフレームワークはクラッキング自体は行わず、ハッシュとクラッキング結果の整理のみを行います
現在の主な焦点は、impacketとaiosmbのdcsync結果(NTハッシュとLMハッシュのみ)です!
サンプルプロセスは以下の通りです:

  1. impacket/aiosmb経由のテキストファイル、または適切なツールを使用したLSASSプロセスのメモリダンプとして資格情報を収集します。
  2. 収集した資格情報をAPI経由でアップロードします。
  3. API経由で未クラックのハッシュを取得します。
  4. クラッキングします(hashcat?)
  5. 結果をAPI経由でフレームワークにアップロードします。
  6. クラック済み/未クラックのユーザー、パスワードの強度、パスワード共有に関するレポートを生成します。

作者からの注: この機能は攻撃者と防御者の両方を対象として実装されました。個人的にはどちらの側にもあまり付加価値はないと思います。なぜなら、ユーザーのNTハッシュを入手した時点で、それはパスワードと同じくらい有用だからです... とはいえ、パスワード強度のエクササイズを実施する企業が増えており、この機能はそれらの企業を支援するでしょう。攻撃者にとっては、単なる見せびらかしですが、ご自由にお使いください。追加ポイントとして経営陣を脅かすかもしれません。

重要

このプロジェクトは実験段階です!つまり、以下のことを意味します:

  1. クラッシュする可能性があります。
  2. 使用しているコントロールは将来変更される可能性があります(ほぼ確実)。
  3. (最悪の部分)データベース設計は将来の要求に必ずしも適しているとは限らないため、変更される可能性があります。実験段階のDB構造との後方互換性を維持するための努力は行われません。

技術的な部分

データベースバックエンド

JackdawはSQLAlchemy ORMモジュールを使用しており、任意のSQL DBバックエンドを使用するオプションがあります。テストは主に明らかな理由からSQLiteで行われています。このプロジェクトでは、ユーザーを制限するバックエンド固有のコマンドは使用されません。

UIのビルド

これは、GIT経由でインストールする場合、および/またはUIコードを変更する場合にのみ必要です
UIはReactで書かれています。初回使用/インストール前にビルドする必要があります。そのためには、nodejs と npm がインストールされている必要があります。その後:

  1. jackdaw/nest/site/nui に移動します。
  2. npm install を実行します。
  3. npm run build を実行します。

上記が完了すると、UIを使用する準備が整います。

謝辞

「もし私が遠くを見ることができたなら、それは巨人の肩の上に立っていたからです。」

オリジナルのアイデアについて

BloodHoundチーム

ACLエッジ計算について

@dirkjanm (https://github.com/dirkjanm/)

素晴らしいUIについて

Zsolt Imre (https://github.com/keymandll)

データ収集部分について

aiosmb および msldap モジュールの謝辞セクションを参照してください。

もし誰かを記載し忘れていた場合は、PRを送ってください。

ツールをダウンロード