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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PortForwarder — C言語版TCPポートフォワーディングユーティリティ | Kitploit
ツール/GitHubGitHub/lsecqt/portforwarder
汎用ユーティリティネットワークマッピングIDS/IPS回避横移動ペネトレーションテストユーティリティとフレームワークレッドチーミング
GitHublsecqt/portforwarder

PortForwarder

C言語版TCPポートフォワーディングユーティリティ

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Windows TCP Port Forwarder

Windows向け高性能TCPポートフォワーダー。オプションのIPホワイトリストと冗長ログ出力機能を備えています。

特徴

  • ✅ ローカルポートから任意のリモートホスト:ポートへのTCPトラフィック転送
  • ✅ オプションのIPホワイトリストによるセキュリティ強化
  • ✅ ポート445 / SMB テイクオーバーモード(SMBを無効化し、ポート445をリレー用に解放)
  • ✅ 最大100の同時接続をサポート
  • ✅ 双方向データ転送とリアルタイム統計
  • ✅ 拒否された接続のデバッグ用冗長モード
  • ✅ デッド接続検出のための積極的なTCPキープアライブ設定
  • ✅ 低遅延転送(Nagleアルゴリズム無効化)
  • ✅ グレースフルシャットダウン処理(Ctrl+C)
  • ✅ スレッドセーフな接続管理

必要条件

  • Windowsオペレーティングシステム
  • Visual Studio(コンパイル用)または MinGW-w64
  • Winsock2ライブラリ(Windows SDKに含まれています)

コンパイル

Visual Studio 開発者コマンドプロンプトを使用する場合:

root@kitploit:~
cl PortForwarder.c /Fe:PortForwarder.exe ws2_32.lib

MinGW-w64 を使用する場合:

root@kitploit:~
gcc PortForwarder.c -o PortForwarder.exe -lws2_32

使い方

root@kitploit:~
PortForwarder.exe <local_port> <remote_host> <remote_port> [allowed_ip] [-v]

パラメータ

  • <local_port> - リッスンするローカルポート(1-65535)
  • <remote_host> - 転送先のリモートホスト名またはIPアドレス
  • <remote_port> - 転送先のリモートポート(1-65535)
  • [allowed_ip] - オプション - このIPアドレスからの接続のみ許可
  • [-v] - オプション - 冗長モードを有効(拒否された接続を表示)

例

基本的なポート転送(IPフィルタリングなし)

ローカルポート8080をリモートサーバー192.168.1.100のポート80に転送:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80

IPホワイトリストを使用したポート転送

192.168.1.50からの接続のみ受け入れ:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50

IPホワイトリストと冗長ログを使用したポート転送

拒否された接続試行を表示:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50 -v

リモートホスト名への転送

root@kitploit:~
PortForwarder.exe 3306 database.example.com 3306

IP制限付きSSHポート転送

root@kitploit:~
PortForwarder.exe 2222 10.0.0.50 22 192.168.1.100

ポート445 / SMB テイクオーバー(許可されたテストのみ)

SMBポート445でリッスンし、リモートSMBエンドポイントに転送します。ローカルポートが 445 の場合、ツールはまずWindowsの組み込みSMBサーバーからポートを解放します:

root@kitploit:~
PortForwarder.exe 445 10.0.0.50 445 192.168.1.100

ローカルポートが 445 の場合、バインド前にツールは自動的に以下を実行します:

  1. 特権を確認 — プロセスが昇格(管理者)で実行されているか確認します。そうでない場合は、明確なメッセージで中断します。
  2. 現在の所有者を表示 — 現在ポート445にバインドされているPID/プロセスを特定します(通常は System、PID 4、srvnet カーネルドライバ経由)。
  3. SMBを無効化しポートを解放 — LanmanServer と srv2 / srvnet ドライバを停止し(依存サービスも再帰的に停止)、各ステップを可視化するために出力します。
  4. 確認してバインド — ポート445が解放されたことを確認し、通常どおりバインドして転送します。

出力例:

root@kitploit:~
[445] === Port 445 / SMB takeover ===
[445] Privilege check: running elevated (administrator). OK
[445] Port 445 currently held by PID 4 (System (kernel / srvnet))
[445] Disabling SMB server and releasing port 445...
[445] Stopping 'LanmanServer'...
[445]   service 'LanmanServer' stopped
[445] Stopping 'srv2'...
[445]   service 'srv2' stopped
[445] Stopping 'srvnet'...
[445]   service 'srvnet' stopped
[445] Port 445 is now free. Proceeding to bind.
[445] (Restore SMB later with: net start LanmanServer)

⚠️ これらのサービスを停止すると、テスト期間中ホスト上のファイル/プリンター共有が無効になります。後で net start LanmanServer で復元してください(ドライバはオンデマンドまたは次回起動時に再起動します)。テストを許可されたシステムでのみ使用してください。

使用例

ローカル開発

  • コンテナやVMで動作するサービスへのアクセス
  • WSL2からWindowsホストへのポート転送
  • webhookエンドポイントをローカルでテスト

ネットワークブリッジ

  • 異なるネットワークセグメントをブリッジ
  • ファイアウォール制限の回避(許可された使用のみ)
  • DMZからの内部サービスへのアクセス

データベースアクセス

  • IPホワイトリストによる安全なデータベース接続
  • 踏み台ホスト経由のデータベーストラフィックトンネリング
  • リモート開発のためのローカルデータベース公開

セキュリティテスト

  • TCPトラフィックパターンの監視と分析
  • IPベースのアクセス制御のテスト
  • 冗長モードによる接続試行の監査

出力情報

フォワーダーは詳細なログを提供します:

root@kitploit:~
[INFO] Configuration:
  Local port:  8080
  Remote host: 192.168.1.100
  Remote port: 80
  Allowed IP:  192.168.1.50 (filtered mode)
  Verbose:     OFF

[INFO] Listening on port 8080...
[INFO] Press Ctrl+C to stop

[INFO] New connection from 192.168.1.50:54321 ACCEPTED
[INFO] Connected to remote 192.168.1.100:80
[INFO] Connection established, forwarding traffic...
[INFO] Closing connection (Sent: 1024 bytes, Received: 2048 bytes, Total: 3072 bytes)

冗長モード出力

-v フラグが有効な場合、拒否された接続もログに記録されます:

root@kitploit:~
[INFO] Connection from 192.168.1.99:54322 REJECTED (IP not allowed)

技術詳細

パフォーマンス最適化

  • バッファサイズ: 効率的なデータ転送のための8KBバッファ
  • TCP_NODELAY: 低レイテンシのためNagleアルゴリズム無効化
  • キープアライブ: デッド接続検出のための積極的な設定(初期10秒、間隔1秒)
  • スレッドプール: 専用転送スレッドによる最大100の同時接続
  • ノンブロッキングAccept: レスポンシブなシャットダウンのためのタイムアウトベースのselect()

接続処理

各接続は専用の転送スレッドを生成し、以下を実行します:

  1. リモートホストへの接続確立
  2. ソケットオプションの設定(タイムアウト、キープアライブ、TCP_NODELAY)
  3. select() を使用した双方向転送
  4. 各方向に転送されたバイト数の追跡
  5. 終了時に両方のソケットをグレースフルにクローズ

エラーハンドリング

フォワーダーは一般的なネットワークエラーを適切に処理します:

  • WSAECONNRESET - ピアによる接続リセット
  • WSAECONNABORTED - 接続が中断されました
  • WSAENETRESET - ネットワークによる切断
  • WSAETIMEDOUT - 接続がタイムアウトしました

スレッドセーフ

  • クリティカルセクションで接続配列を保護
  • クリーンシャットダウンのための揮発性 running フラグ
  • クリーンアップ中のスレッド同期

セキュリティ考慮事項

⚠️ 重要なセキュリティ注意:

  1. IPホワイトリスト: 本番環境では [allowed_ip] パラメータを使用してアクセスを制限してください
  2. 暗号化なし: このフォワーダーはトラフィックを暗号化しません。機密データにはSSHトンネルやVPNと併用してください
  3. 認証: 組み込み認証はありません。リモートサービスが適切なセキュリティを持っていることを確認してください
  4. ファイアウォール: Windowsファイアウォールを設定して、リッスンポートへのアクセスを制限してください
  5. ログ: 本番環境ではログファイル肥大化を防ぐため冗長モードを無効にしてください
  6. リソース制限: 100接続制限によりリソース枯渇を防止

トラブルシューティング

ポートが既に使用中

root@kitploit:~
[ERROR] bind() failed: 10048

解決策: 別のアプリケーションがそのポートを使用しています。別のローカルポートを選択するか、競合するサービスを停止してください。

リモートに接続できない

root@kitploit:~
[ERROR] connect() to remote failed: 10061

解決策: リモートホストに到達可能であり、指定されたポートでサービスが実行されていることを確認してください。

権限拒否

root@kitploit:~
[ERROR] bind() failed: 10013

解決策: 1024未満のポートには管理者権限が必要な場合があります。管理者として実行するか、より高いポート番号を使用してください。

接続拒否

root@kitploit:~
[INFO] Connection from X.X.X.X:XXXXX REJECTED (IP not allowed)

解決策: 冗長モード(-v)を有効にして拒否されたIPを表示するか、IPフィルタリングを削除してください。

フォワーダーの停止

Ctrl+C を押してフォワーダーをグレースフルに停止します。以下の動作を実行します:

  1. 新しい接続の受け入れを停止
  2. アクティブな接続の完了を待機(最大5秒)
  3. すべてのソケットをクローズ
  4. リソースをクリーンアップ
  5. クリーンアップの確認を表示

制限事項

  • Windowsのみ: Winsock2 APIを使用(Linux/macOSには移植不可)
  • IPv4のみ: 現在はIPv4アドレスのみサポート
  • 単一IPフィルター: 許可されるIPアドレスは1つだけ指定可能
  • ロードバランシングなし: 単一のリモートエンドポイントにトラフィックを転送
  • トラフィック検査なし: コンテンツ分析なしの生のTCP転送
  • 帯域幅制限なし: 組み込みのスロットリングやQoSなし

将来の拡張

将来のバージョンで考えられる機能:

  • IPv6サポート
  • 複数IPホワイトリスト/ブラックリスト
  • SSL/TLS暗号化ラッパー
  • トラフィック統計ダッシュボード
  • 設定ファイルサポート
  • 帯域幅制限
  • ラウンドロビンロードバランシング
  • 接続レート制限
  • クロスプラットフォームサポート(Linux/macOS)

ライセンス

本ソフトウェアは、教育目的および正当なネットワーク管理目的のために現状のまま提供されます。適用法規に従い、責任を持って使用してください。

貢献

貢献を歓迎します!以下の点にご注意ください:

  • コードは既存のスタイルに従うこと
  • 変更はWindowsで十分にテストされていること
  • 複雑なロジックにはコメントを追加すること
  • 新機能についてはREADMEを更新すること

サポート

問題、質問、機能リクエストについては、プロジェクトリポジトリでIssueを開いてください。

また、Patreon で私の活動を支援することもできます。


ツールをダウンロード