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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DbgNexum — Windows Debugging APIを使用したシェルコードインジェクション | Kitploit
ツール/GitHubGitHub/dis0rder0x00/dbgnexum
ペイロード生成エクスプロイトシェルコードポストエクスプロイトペネトレーションテストレッドチーミングシェルコード生成ペイロード開発バイナリエクスプロイト
GitHubdis0rder0x00/dbgnexum

DbgNexum

Windows Debugging APIを使用したシェルコードインジェクション

リポジトリを見る
183397ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

DbgNexum - シェルコードインジェクション

DbgNexum は、Windows デバッグ API と共有メモリ (ファイルマッピング) を使用してシェルコードを注入する Proof-of-Concept です。リモートメモリへの直接の書き込みや読み取りを回避し、代わりにコンテキスト操作を利用してターゲットプロセスにペイロードをロードおよび実行させます。

概要

インジェクターはターゲットプロセスにアタッチし、中断されたスレッドを作成します。デバッグループを通じて、特定のリターンアドレスで実行をトラップするハードウェアブレークポイントを設定します。各トラップで、インジェクターは CPU レジスタを変更して関数呼び出しを模倣し、ターゲットプロセス内部で一連の Windows API 関数呼び出しを調整します。

この README を書いている時点では、MDE および Elastic に対してこの手法をテストしましたが、どちらも検出しませんでした。

主な機能

  • WriteProcessMemory / VirtualAllocEx は使用しません: ペイロードは CreateFileMapping と MapViewOfFile を介して転送されます。
  • ReadProcessMemory は使用しません: この手法はスレッドコンテキストからすべての重要な情報を取得します。

使用方法

PoC は "calc.exe" を起動する XOR された msfvenom シェルコードを使用しています。ただし、ご自身のシェルコードを使用してください。

  1. shellcode.h にシェルコード (および XOR キー) を含めます。
  2. ターゲットのプロセス ID を見つけます。
  3. インジェクターを実行します:
root@kitploit:~
DbgNexum.exe <PID>

出力例:

root@kitploit:~
[i] Section 'MZ' created and shellcode copied
[+] Bait thread created. Setting HWBP on FileTimeToSystemTime
[i] Execution Redirected:
|-> [0] Preparation & anchoring stack
|-> [1] Setting HWBP & buffer alloc
|-> [2] Copying File-Mapping name
|-> [3] Zeroing stack slot
|-> [4] Opening handle to named file mapping
|-> [5] Mapping payload into mem. with exec. perm.
|-> [6] Cleanup & shellcode execution
[+] Successfully detached from process 19256
[i] Orchestration complete.

仕組み

実行フローは、インジェクターのデバッグループとターゲットプロセス間の絶え間ないやり取りです。

インジェクションステージ

DebugLoop 関数にはメインのインジェクションロジックが含まれており、「ステートマシン」を調整します:

0. 準備:

  • インジェクターは各ステージで再利用するために現在のスタックポインタを保存します。
  • 固定されたスタックのリターンアドレスを取得するために、トラップフラグを設定し、即座の ret 呼び出しに実行を設定します。

1. 割り当て:

  • 固定されたスタックのリターンアドレスに HWBP を設定し、呼び出された関数が戻ったときに通知を受け取ります。
  • スレッドを準備し、LocalAlloc を呼び出して小さなバッファを割り当てるように強制します。

2. データ設定:

  • スレッドを準備し、memcpy を呼び出して文字列 MZ を以前に割り当てられたバッファにコピーするように強制します。

3. スタック準備:

  • スレッドに memset を呼び出させてスタックスロットをゼロにします。これは、MapViewOfFile を呼び出すステージ 5 の準備です。この関数は 4 つ以上の引数を使用するため、5 番目の引数はスタックを介して渡されます (ここで設定します)。

4. マッピングを開く:

  • スレッドに、ステージ 2 と 3 で「作成された」MZ 名を使用して OpenFileMappingA を呼び出すように強制します。

5. ペイロードのマッピング:

  • ターゲットに MapViewOfFile を呼び出させます。これにより、共有メモリセクション (シェルコードを含む) が EXECUTE 権限でターゲットのアドレス空間にマッピングされます。

6. 実行:

  • RIP を MapViewOfFile によって返されたアドレスにリダイレクトします。
  • デバッグレジスタをクリアし、デタッチします。
ツールをダウンロード