Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PacketPirate — Windows システム上でネットワークトラフィックの傍受、分析、変更を目的とした、ヘッドレスでスクリプト可能なコマンドラインベースの MITM プロキシ。 | Kitploit
ツール/GitHubGitHub/d0rb/packetpirate
パケットスニッフィングと分析ウェブプロキシと傍受スクリプトと自動化APIセキュリティテスト情報収集ウェブセキュリティペネトレーションテスト学習と教育ログ分析
GitHubd0rb/packetpirate

PacketPirate

Windows システム上でネットワークトラフィックの傍受、分析、変更を目的とした、ヘッドレスでスクリプト可能なコマンドラインベースの MITM プロキシ。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

PacketPirate

PacketPirate

Windows システム上でネットワークトラフィックの傍受、解析、変更を行うために設計された、ヘッドレスでスクリプト可能なコマンドラインベースの MITM プロキシです。業界標準の GUI プロキシと同様に動作しますが、自動化環境、ヘッドレス運用、開発ワークフローとの統合に最適化されています。

注記: これは Node.js で実装された、スタンドアロンで依存関係のないツールです。

概要

  • PacketPirate は、システム全体を対象としたネットワーク傍受ツールです。Windows HTTP プロキシ設定を活用することで、お使いのマシン上で動作するあらゆるアプリケーションからのトラフィックをキャプチャできます。これには Web ブラウザ(Chrome、Edge)、CLI ツール(curl、git)、デスクトップアプリケーション(Spotify、VS Code、Discord)が含まれます。

  • グローバルなシステム傍受: システムプロキシを尊重するあらゆるプロセスからの HTTP/HTTPS トラフィックをキャプチャします。

  • プロセス認識: トラフィックを生成しているアプリケーションを正確に特定します。

  • 動的ルールエンジン: JSON で設定可能で、一致するトラフィックに対して特定のアクション(例: トークン抽出、リクエストログ記録)を実行します。

  • 全トラフィックロギング: 解析用に完全なリクエスト/レスポンスボディ(HTML、JSON、バイナリ)をダンプできます。

  • ヘッドレスアーキテクチャ: 完全に CLI から実行され、バックグラウンドサービスや自動テストパイプラインに適しています。

  • カスタム証明書管理: HTTPS 復号化のための自己署名ルート CA の生成および信頼設定用ユーティリティが含まれます。

インストール

前提条件

  • Node.js(v14 以上)
  • Windows 10/11(システムプロキシ自動化機能に必要)
  • PowerShell(証明書管理スクリプト用)

セットアップ

リポジトリをクローンし、環境を初期化します:

# 1. Generate local SSL certificates
npm run setup

# 2. Trust the generated Root CA
npm run trust
# Note: Requires administrative approval to add the certificate to the Trusted Root Store.

使用方法

プロキシサーバーを起動します:

npm start

これにより、標準の CLI インターフェースが起動します。

CLI 操作

対話型メニューには、次のコントロールがあります:

  1. プロセスのスキャン: 確立されたネットワーク接続を持つアクティブなプロセスを一覧表示します。特定の PID へのトラフィックフィルタリングが可能です(例: code.exe のみを監視)。
  2. フィルターの切り替え: 特定の監視サブシステムを有効/無効にします:
    • API URL スキャン: 要求された API エンドポイントをログに記録します。
    • ヘッダーダンプ: 完全なリクエストヘッダーをコンソールに出力します。
    • トークンハント: Authorization ヘッダー内の Bearer トークンをヒューリスティックに検出します。
    • 全トラフィックダンプ: すべてのトラフィック(ヘッダー + 完全なボディ)を構造化された jsonl ログファイルにキャプチャします。
  3. プロキシの開始: 利用可能な最初のポート(デフォルト 8080)にサーバーをバインドし、Windows システムプロキシを設定します。
  4. ルールの生成: 新しい傍受パターンをすばやく作成するためのヘルパーです。

設定

傍受ロジックは config/rules.json で定義されます。このファイルにより、トラフィック処理の永続的な設定が可能になります。

スキーマ:

{
  "rules": [
    {
      "name": "Description of rule",
      "host": "hostname.match",
      "urlPattern": "regex_pattern",
      "action": "log | save_token",
      "outputFile": "path/to/output.txt",
      "tokenFilter": "regex_filter"
    }
  ]
}

例:

{
    "rules": [
        {
            "name": "Test API",
            "host": "jsonplaceholder.typicode.com",
            "action": "save_token",
            "outputFile": "test_tokens.txt"
        }
    ]
}

技術的詳細

アーキテクチャ

このツールはデュアルサーバーアーキテクチャを採用しています:

  1. プロキシサーバー: 最初の CONNECT トンネリングリクエストを処理し、ホストフィルタリングを実行します。
  2. MITM サーバー: 動的に生成された CA を使用して HTTPS トラフィックを復号化し、ペイロードをルールエンジンに対して検査し、リクエストを上流へ転送します。

ネットワーク処理

  • ポート管理: EADDRINUSE エラーを自動的に検出し、空きポートが見つかるまでポート番号を増加させます。
  • システムプロキシ: PowerShell によるレジストリ直接操作を使用して、システム全体にプロキシ設定を適用します。
  • クリーンアップ: SIGINT/SIGTERM ハンドラーを実装し、終了時にプロキシ設定が元に戻されることを保証して、ネットワーク接続の問題を防ぎます。

証明書のライフサイクルとセキュリティ

このツールは、HTTPS 傍受のためにデュアル証明書モデルに依存しています:

  1. ルート CA の生成: npm run setup は自己署名ルート CA(PacketPirateRoot)を作成します。
    • ロジック: PowerShell の New-SelfSignedCertificate を使用して、5 年間有効なキーペアを生成します。
    • エクスポート: キーはパスワード "headless" 付きで src/certs/server.pfx(PKCS#12 形式)にエクスポートされます。
  2. 信頼の確立: npm run trust は、このルート CA を Windows の CurrentUser\Root ストアに注入します。
    • セキュリティ範囲: LocalMachine ではなく CurrentUser を対象とすることで、信頼範囲を特定のユーザープロファイルに限定し、システム全体のリスクを軽減します。
    • ブラウザーの受け入れ: Chrome、Edge、IE はこの信頼ストアを継承します。Firefox が Windows の信頼ストアを尊重するには、別のトグル(security.enterprise_roots.enabled)が必要です。
  3. 削除: npm run untrust はクリーンな破棄を提供します。
    • 識別: スクリプトは、一意の FriendlyName("PacketPirateRoot")によって証明書を特定し、他のユーザー証明書に触れることがないようにします。
    • 検証: 削除後、証明書の拇印がレジストリに存在しなくなったことを確認するチェックを実行します。

🎓 教育的解説: 構築方法

このプロジェクトは、Node.js を使用したシステムプログラミングの実践的な例です。一般的な Web サーバーを超えて、オペレーティングシステムやネットワークスタックとより低いレベルで対話します。

アーキテクチャ

participant App as Application (VS Code)
participant OS as Windows OS
participant Proxy as Proxy Server
participant MITM as MITM Server
participant Web as Internet

Note over App,Proxy: 1. Plain HTTP Tunneling
App->>Proxy: CONNECT google.com:443
Proxy-->>App: 200 Connection Established

Note over Proxy,MITM: 2. The "Hand-Off" Trick
Proxy->>MITM: Pipe socket data (raw encrypted bytes)

Note over App,MITM: 3. TLS Handshake and Decryption
MITM-->>App: ServerHello (signed by local root CA)
App->>MITM: Encrypted request (GET /)

Note over MITM: 4. Interception Logic
MITM->>MITM: Decrypt → Inspect headers → Log

Note over MITM,Web: 5. Upstream Forwarding
MITM->>Web: New HTTPS request (GET /)
Web-->>MITM: Response
MITM-->>App: Response

中核概念

PacketPirate

1. 「デュアルサーバー」パターン

Node.js の標準 http モジュールは、同じサーバーインスタンス上で CONNECT メソッド(HTTPS トンネルに使用)と通常の HTTPS トラフィックを簡単に処理できません。

  • サーバー A(Net/HTTP): ポート 8080 で待ち受けます。最初の CONNECT リクエストを処理し、単純な TCP パイプとして動作します。
  • サーバー B(HTTPS): メモリ上(またはランダムなポート)にのみ存在します。秘密鍵を保持します。
  • トリック: サーバー A が接続を受け取ると、ソケットをサーバー B に「発行」します。サーバー B は新しい接続を受け取ったと認識し、SSL ハンドシェイクを開始します。これにより、シームレスにトラフィックを復号化できます。

2. プロセス属性の特定(netstat ハック)

どのアプリがトラフィックを送信しているかをどのようにして知るのでしょうか? TCP パケット自体には「プロセス ID」のラベルは付いていません。

  • 一時ポート: 各送信接続はランダムな大きい番号のポート(例: 54321)を使用します。
  • 相関付け: netstat -ano を実行して、ポート 54321 を所有する PID を特定します。
  • 最適化: これをパケットごとに行うと遅いため、結果をキャッシュするか、必要な場合にのみチェックします。

3. ストリームのフォーク

データを効率的に処理するために、Node.js の Streams を使用します。完全な 10MB のレスポンスがダウンロードされるのを待ってから表示する代わりに、ストリームを「フォーク」します:

  • Pipe 1: クライアントへ送信(アプリが動作し続けるように)。
  • Pipe 2: ロガーへ送信(ディスクに保存できるように)。 これは PassThrough ストリームを使用して行われ、追加のレイテンシーを最小限に抑えながらリアルタイム監視を可能にします。

ライセンス

GNU GPL v3.0

ツールをダウンロード