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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
process-injection-playground — プロセスインジェクションに関連するサンプルと資料のコレクション | Kitploit
ツール/GitHubGitHub/oscerd/process-injection-playground
CTFペネトレーションテスト学習と教育レッドチーミングペイロード開発バイナリエクスプロイト
GitHuboscerd/process-injection-playground

process-injection-playground

プロセスインジェクションに関連するサンプルと資料のコレクション

リポジトリを見る
18ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Linux プロセスインジェクション・プレイグラウンド

Linux 向けのプロセスインジェクション手法を包括的にまとめたコレクションです。実行中のプロセスにコードを注入するさまざまな方法を紹介しています。これらの例は、教育目的、セキュリティ研究、および低レベルな Linux プロセス操作の理解を目的としています。

概要

プロセスインジェクションは、別のプロセスのコンテキストでコードを実行するために使用される手法です。マルウェアと関連付けられることが多いですが、これらの手法は以下の目的にも役立ちます:

  • セキュリティ研究:攻撃ベクトルの理解と防御策の開発
  • デバッグ:実行中のアプリケーションの解析と変更
  • 計装(インストルメンテーション):パフォーマンスプロファイリングとモニタリング
  • ペネトレーションテスト:許可を得たセキュリティ評価
  • CTF コンペティション:Capture The Flag チャレンジ

利用可能な手法

1. Ptrace ベースのコードインジェクション

ディレクトリ:ptrace/

ptrace() システムコールを使用して、プロセスのメモリにシェルコードを直接書き込み、実行をリダイレクトする古典的なプロセスインジェクション手法です。

主な特徴:

  • PTRACE_POKETEXT による直接メモリ操作
  • 命令ポインタ(RIP)のハイジャック
  • 生のシェルコード注入

ユースケース:低レベルなプロセス制御と直接コードインジェクションの理解

詳細はこちら →


2. LD_PRELOAD インジェクション

ディレクトリ:ld_preload/

LD_PRELOAD 環境変数を使用して、他のすべてのライブラリより先にライブラリをロードする関数インターセプション(関数の差し替え)手法です。

主な特徴:

  • 環境変数ベースの注入
  • シンボルインターセプションによる関数フック
  • コンストラクタ / デストラクタ関数
  • 実装は簡単だが、検出も容易

ユースケース:関数フック、API モニタリング、動作の変更

詳細はこちら →


3. /proc/mem 書き込みインジェクション

ディレクトリ:proc_mem/

/proc/<pid>/mem ファイルシステムインターフェースを介した直接メモリ書き込みと、プロセス制御のための ptrace を組み合わせた手法です。

主な特徴:

  • ファイルシステムを介した直接メモリアクセス
  • 大きなペイロードの場合、PTRACE_POKETEXT より効率的
  • シェルコード全体を単一の書き込み操作で注入
  • ワードアライメントの要件なし

ユースケース:高速なバルクメモリインジェクション、従来の ptrace の制限の回避

詳細はこちら →


4. dlopen() ライブラリインジェクション

ディレクトリ:dlopen_inject/

実行をハイジャックして dlopen() を呼び出させることで、実行中のプロセスに共有ライブラリをロードさせる高度な手法です。

主な特徴:

  • すでに実行中のプロセスでも動作(LD_PRELOAD とは異なる)
  • 永続的(ライブラリはロードされたまま保持される)
  • 完全なライブラリ機能を備えた複雑なペイロードを可能にする
  • LD_PRELOAD と同様に関数をフックできるが、起動後に対応可能

ユースケース:高度な永続的インジェクション、実行時ライブラリ操作

詳細はこちら →


クイックスタート

前提条件

  • Linux システム(x86_64 でテスト済み)
  • GCC コンパイラ
  • ルートアクセスまたは CAP_SYS_PTRACE ケーパビリティ
  • Make ビルドツール

全サンプルのビルド

root@kitploit:~
# Build ptrace injection
cd ptrace && make all

# Build LD_PRELOAD injection
cd ../ld_preload && make all

# Build /proc/mem injection
cd ../proc_mem && make all

# Build dlopen injection
cd ../dlopen_inject && make all

基本的な使用方法

各手法は同様のパターンに従います:

  1. ターゲットプロセスを起動:

    root@kitploit:~
    cd <technique>/victim-process
    ./sample
    

    表示された PID をメモする

  2. インジェクションを実行:

    root@kitploit:~
    cd <technique>
    sudo ./<injector> <PID> [additional args]
    
  3. 結果を確認:ターゲットプロセスの出力で注入されたコードの実行を確認する

各手法の詳細な手順については、個別の README ファイルを参照してください。

比較マトリックス

どの手法をいつ使うべきか?

  • ptrace:基礎の学習、シンプルなシェルコードインジェクション
  • LD_PRELOAD:迅速な関数フック、デバッグ、プロセスの起動を制御できる場合
  • /proc/mem:大きなペイロードの高速インジェクション、PTRACE_POKETEXT が遅すぎる場合
  • dlopen:永続的インジェクション、複雑なペイロード、完全なライブラリ機能が必要な場合

セキュリティに関する考慮事項

防御策

  1. Yama ptrace_scope:ptrace を特権ユーザーに制限する

    root@kitploit:~
    echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  2. SELinux/AppArmor:強制アクセス制御

  3. モニタリング:auditd を使用して ptrace およびプロセスインジェクションの試行をログ記録する

    root@kitploit:~
    auditctl -a exit,always -F arch=b64 -S ptrace
    
  4. 実行時整合性チェック:プロセスメモリを定期的に検証する

  5. コードサイニング:ライブラリの署名を検証する

検出方法

  • /proc/<pid>/maps を監視して、予期しないメモリ領域やライブラリを検出する
  • システムログで ptrace アタッチの試行を監視する
  • 環境変数(LD_PRELOAD)を確認する
  • lsof、pmap、プロセス監視ユーティリティなどのツールを使用する
  • カーネルセキュリティモジュールを有効にする

法的および倫理的な注意事項

重要:これらの手法は、許可された環境でのみ使用してください:

このリポジトリは教育および研究目的専用です。 著者はこれらの手法の悪用について責任を負いません。どのシステムでテストする場合でも、必ず適切な許可を取得してください。

トラブルシューティング

よくある問題

権限拒否エラー:

  • sudo で実行する
  • /proc/sys/kernel/yama/ptrace_scope を確認する
  • SELinux/AppArmor のポリシーを検証する

インジェクションが静かに失敗する:

  • ターゲットプロセスが静的リンクされていないことを確認する
  • ターゲットプロセスが必要なライブラリをロードしていることを確認する
  • シェルコードが使用しているアーキテクチャに正しいことを確認する

セグメンテーションフォルト:

  • x86_64 アーキテクチャであることを確認する
  • ターゲットプロセスが保護されていないことを確認する
  • メモリのアライメントが適切であることを確認する

具体的なトラブルシューティングのガイダンスについては、各手法の README を参照してください。

コントリビューション

コントリビューションを歓迎します! 追加候補:

  • 追加のインジェクション手法(GOT/PLT フック、VDSO 操作など)
  • 比較用の Windows 版
  • 検出 / 防止ツール
  • ARM アーキテクチャのサポート
  • 追加のシェルコード例
  • 防御的プログラミングの例

参考資料

ドキュメント

  • man 2 ptrace - プロセストレーシングシステムコール
  • man 5 proc - /proc ファイルシステムのドキュメント
  • man 3 dlopen - 動的ライブラリのロード
  • Linux カーネルソース:プロセスメモリ管理

関連研究

  • "Linux Process Injection" の手法と進化
  • "Ptrace Injection" の方法論
  • "Shared Library Injection" のベストプラクティス
  • MITRE ATT&CK: T1055(プロセスインジェクション)

ライセンス

詳細は LICENSE.txt を参照してください。

免責事項

このソフトウェアは教育目的で「現状のまま」提供されます。責任を持って倫理的に使用してください。所有していないシステムでセキュリティ手法をテストする前に、必ず適切な許可を取得してください。

ツールをダウンロード
手法複雑さステルス性永続性速度実行中プロセスで動作
ptrace中低なし中あり
LD_PRELOAD低非常に低なし高速なし
/proc/mem中低なし高速あり
dlopen高中あり中あり