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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DLLHSC — Windows実行ファイルにおけるDLL検索順序ハイジャック候補を発見するための自動スキャナ。インポートテーブルの解析、ランタイムモジュールの列挙、Microsoft Detoursを介したAPIフッキングを特長とします。 | Kitploit
ツール/GitHubGitHub/ctxis/dllhsc
エクスプロイトペネトレーションテストバイナリ解析ペイロード開発
GitHubctxis/dllhsc

DLLHSC

Windows実行ファイルにおけるDLL検索順序ハイジャック候補を発見するための自動スキャナ。インポートテーブルの解析、ランタイムモジュールの列挙、Microsoft Detoursを介したAPIフッキングを特長とします。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

DLLHSC

DLL Hijack SCanner - DLL 検索順序ハイジャックの候補を発見し自動化するためのツール

このページの目次

  • このリポジトリの内容
  • 動作モード
  • コンパイルと実行のガイダンス
  • ヘルプメニュー
  • 実行例
  • フィードバック

このリポジトリの内容

このリポジトリには、ツール (DLLHSC) の Visual Studio プロジェクトファイル、API フック機能 (detour) のプロジェクトファイル、ペイロードのプロジェクトファイル、さらに x86 および x64 アーキテクチャ用のコンパイル済み実行ファイル (このリポジトリのリリースセクション) が含まれています。コードは Visual Studio Community 2019 で作成およびコンパイルされました。

ソースからツールをコンパイルする場合は、DLLHSC、detour、payload の各プロジェクトをコンパイルする必要があります。DLLHSC はこのツールのコア機能を実装します。detour プロジェクトは API をフックするための DLL を生成します。payload プロジェクトは、テスト対象の実行ファイルが検索順序ハイジャックを介してロードできるかどうかを確認するための概念実証として使用される DLL を生成します。生成されたペイロードは、DLLHSC および detour と同じディレクトリに配置し、x86 アーキテクチャでは payload32.dll、x64 アーキテクチャでは payload64.dll という名前にする必要があります。

動作モード

このツールは以下の3つの動作モードを実装しています。

軽量モード

実行可能イメージをメモリにロードし、インポートテーブルを解析した後、インポートテーブルに含まれるすべての DLL をペイロード DLL に置き換えます。

ツールは、アプリケーションディレクトリ内に存在せず、WinSxS にも KnownDLLs にも属さないモジュール (DLL) のみをアプリケーションディレクトリに配置します。

ペイロード DLL は、実行時に C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSC.tmp というファイルを作成し、実行の証明とします。ツールはアプリケーションを起動し、一時ファイルが存在するかどうかを確認することで、ペイロード DLL が実行されたかどうかを報告します。一部の実行ファイルは、ロードする DLL から関数をインポートするため、提供された DLL がこれらの関数をエクスポートできず、イメージの依存関係を満たせない場合、エラーメッセージボックスが表示されることがあります。ただし、メッセージボックスの表示は、依存関係が満たされていれば DLL がペイロード実行の良い候補となる可能性があることを示しています。この場合、追加の分析が必要です。これらのメッセージボックスのタイトルには、Ordinal Not Found または Entry Point Not Found という文字列が含まれる場合があります。DLLHSC はこれらの文字列を含むウィンドウを探し、表示され次第閉じて結果を報告します。

モジュール一覧モード

提供された実行可能イメージでプロセスを作成し、そのプロセスのアドレス空間にロードされているモジュールを列挙し、フィルタを適用した後に結果を報告します。

ツールは、システムディレクトリからロードされ、KnownDLLs に属さないモジュールのみを報告します。これらの結果は追加の分析を必要とするリードです。アナリストはその後、報告されたモジュールをアプリケーションディレクトリに配置し、アプリケーションが提供されたモジュールを代わりにロードするかどうかを確認できます。

ランタイムモード

Microsoft Detours を介して LoadLibrary および LoadLibraryEx API をフックし、ランタイムにロードされるモジュールを報告します。

スキャン対象のアプリケーションが LoadLibrary または LoadLibraryEx を呼び出すたびに、ツールは呼び出しをインターセプトし、要求されたモジュールをファイル C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSCRTLOG.tmp に書き込みます。LoadLibraryEx が LOAD_LIBRARY_SEARCH_SYSTEM32 フラグを指定して呼び出された場合、ファイルへの出力は行われません。すべてのインターセプトが終了した後、ツールはファイルを読み取り、結果を表示します。さらに分析が必要なモジュールは、KnownDLLs レジストリキーに存在しないモジュール、システムディレクトリに存在しないモジュール、およびフルパスがないモジュール (これらのモジュールではローダーが通常の検索順序を適用します) です。

コンパイルと実行のガイダンス

ソースからツールをコンパイルする場合は、Visual Studio Community 2019 で行うことを推奨します。ツールが正しく機能するためには、DLLHSC、detour、payload のプロジェクトを同じアーキテクチャ用にコンパイルし、同じディレクトリに配置する必要があります。payload プロジェクトから生成された DLL は、32ビットアーキテクチャの場合は payload32.dll、64ビットアーキテクチャの場合は payload64.dll に名前を変更する必要があることに注意してください。

ヘルプメニュー

このアプリケーションのヘルプメニューです。

root@kitploit:~
NAME
        dllhsc - DLL Hijack SCanner

SYNOPSIS
        dllhsc.exe -h

        dllhsc.exe -e <executable image path> (-l|-lm|-rt) [-t seconds]

DESCRIPTION
        DLLHSC scans a given executable image for DLL Hijacking and reports the results

        It requires elevated privileges

OPTIONS
        -h, --help
                display this help menu and exit

        -e, --executable-image
                executable image to scan

        -l, --lightweight
                parse the import table, attempt to launch a payload and report the results

        -lm, --list-modules
                list loaded modules that do not exist in the application's directory

        -rt, --runtime-load
                display modules loaded in run-time by hooking LoadLibrary and LoadLibraryEx APIs

        -t, --timeout
                number of seconds to wait for checking any popup error windows - defaults to 10 seconds

実行例

このセクションでは、DLLHSC の実行方法と報告される結果の例を示します。この目的のために、正規の Microsoft ユーティリティ OleView.exe (MD5: D1E6767900C85535F300E08D76AAC9AB) を使用しました。より良い結果を得るには、提供された実行可能イメージをそのインストールディレクトリ内でスキャンすることを推奨します。

フラグ -l は、提供された実行ファイルのインポートテーブルを解析し、フィルタを適用して、インポートされたモジュールをペイロード DLL をアプリケーションのカレントディレクトリに配置することで武器化しようと試みます。ペイロード DLL の依存関係 (エクスポート関数) が満たされない場合、スキャン対象の実行ファイルがエラーボックスを表示することがあります。その場合、エラーメッセージボックスが表示されます。DLLHSC はデフォルトで 10 秒間、メッセージボックスが開かれたかどうかを確認します (ユーザーが -t フラグで指定した秒数だけ確認します)。エラーメッセージボックスは、依存関係が満たされていればモジュールを武器化できることを示しています。

次のスクリーンショットは、OleView.dll がペイロード DLL をロードしたときに生成されたエラーメッセージボックスを示しています。

依存関係

ツールは最大 10 秒間、または -t 秒間待機して、プロセスの初期化が完了し、メッセージボックスが生成されたことを確認します。その後、メッセージボックスを検出して閉じ、結果を報告します。

インポートされたモジュール

フラグ -lm は、提供された実行ファイルを起動し、KnownDLLs リストにも WinSxS の依存関係にも属さないロードされたモジュールを表示します。このモードは、ペイロードとして使用できる DLL のアイデアを得ることを目的としており、アナリストにリードを生成するためにのみ存在します。

ロードされたモジュール

フラグ -rt は、提供された実行可能イメージがプロセスとして起動されたときにそのアドレス空間にロードするモジュールを表示します。これは、Microsoft Detours を介して LoadLibrary および LoadLibraryEx API をフックすることで実現されます。

ランタイムでロードされたモジュール

フィードバック

このツールに関するフィードバックは、GitHub Issues セクションをご利用ください。

ツールをダウンロード