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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
inject-assembly — 既存のプロセスに .NET アセンブリを注入する | Kitploit
ツール/GitHubGitHub/kyleavery/inject-assembly
エクスプロイトシェルコードポストエクスプロイトレッドチーミング
GitHubkyleavery/inject-assembly

inject-assembly

既存のプロセスに .NET アセンブリを注入する

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

人気

すべて見る →

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

すべてのツールを探索

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

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

inject-assembly - 既存プロセス内で.NETを実行

このツールは、Cobalt Strikeの従来のfork and run実行に代わるものです。ローダーは、現在のBeaconを含む任意のプロセスに注入できます。長時間実行されるアセンブリは、実行を継続し、execute-assemblyと同様の動作で出力をBeaconに送り返します。

inject-assemblyには2つのコンポーネントがあります:

  1. BOF initializer: 引数を渡してアセンブリローダーをリモートプロセスに注入する役割を持つ小さなプログラム。注入にはBeaconInjectProcessを使用するため、この動作はMalleable C2プロファイルまたはプロセスインジェクションBOF(バージョン4.5以降)でカスタマイズできます。

  2. PIC assembly loader: プロジェクトの主要部分。ローダーは.NETランタイムを初期化し、提供されたアセンブリをロードし、実行します。ローダーはターゲットプロセス内に新しいAppDomainを作成し、実行完了時にロードされたアセンブリを完全にアンロードできるようにします。

リモートプロセスとBeacon間の通信は名前付きパイプを介して行われます。Aggressorスクリプトがパイプ名を生成し、それをBOF initializerに渡します。

注目すべき機能

  • リモートプロセスが終了しないようにEnvironment.Exit()をパッチします。
  • .NETアセンブリヘッダのスタンピング(MZバイト、e_lfanew、DOSヘッダ、リッチテキスト、PEヘッダ)。
  • SourcePointに基づくランダムなパイプ名生成。
  • たとえアセンブリが現在のプロセスにロードされても、Beaconをブロックしません。

使用方法

ダウンロードして、inject-assembly.cna AggressorスクリプトをCobalt Strikeにロードしてください。次のコマンドを使用してアセンブリを実行できます:

root@kitploit:~
inject-assembly pid assembly [args...]

PIDに0を指定すると、現在のBeaconプロセス内で実行されます。

既に.NETランタイムをロードしているプロセスを見つけるために、FindObjects-BOFのような別のツールを使用することを推奨しますが、これはinject-assemblyが機能するための必須条件ではありません。

警告

  • 現在はx64リモートプロセスのみサポートしています。
  • プログラム全体にリモートプロセスのクラッシュ可能性を減らすためのチェックがいくつかありますが、それでも発生する可能性があります。
  • デフォルトのCobalt Strikeプロセスインジェクションは検出される可能性があります。カスタムインジェクションBOFまたはUDRL IATフックを検討してください。
  • 一部のアセンブリは実行を終了するためにEnvironment.Exit()に依存しています。これによりローダーのクリーンアップフェーズが行われなくなりますが、jobkillを使用して名前付きパイプを切断することはできます。
  • エラーモードまたは冗長モードを有効にするには、scmain.cの3行目または4行目をコメント解除してください。これらはデフォルトで無効になっており、シェルコードサイズを削減しています。

参考文献

このプロジェクトは以下のプロジェクトなしでは実現できませんでした:

  • CLR関連の定義と実装 - https://github.com/TheWover/donut
  • Beaconジョブインターフェースとプロジェクト構造 - https://github.com/SecIdiot/netntlm

その他の機能と着想は以下のリソースから得ました:

  • https://github.com/med0x2e/ExecuteAssembly
  • https://github.com/anthemtotheego/InlineExecute-Assembly
  • https://www.mdsec.co.uk/2020/08/massaging-your-clr-preventing-environment-exit-in-in-process-net-assemblies
ツールをダウンロード