特定のポートを「中間者」として指定する方法は?

特定のポートを「中間者」として指定する方法は?

特定のプロトコル(この場合はポート80のHTTPプロトコル)がどのように機能するかを確認するには、2つのターミナルウィンドウを開きます。

nc -l 80
nc google.com 80

次に、「中」として使用したいプログラム(この場合はFireFox)を実行しますhttp://localhost:80

左側の端末からメッセージを送信したら、データをコピーして右側の端末に貼り付けます。右側の端末がメッセージを送信するとき、左側の端末も同じです。

このプロセスは受動的で退屈であるだけでなく、2つの欠点もあります。

  1. 速度が十分に速くないと、接続がタイムアウトする可能性があります。
  2. コピー&ペーストはバイナリデータでは正しく機能しません。

このプロセスを自動化できますか?あるポートから自動的にデータを別のポートまたは別のコンピュータに転送して、送受信するデータを調べてデバッグできますか?

ベストアンサー1

使用ソカット、これはnetcatの拡張バージョンです。

サルカル 1951 アルセンベンガージャイアント
           ネットマオスオマオ

左:1951年モデルスイス軍用ナイフ、写真:Evelianfs。右:「巨人」ベンガ、写真提供:Slati Bartfas

socat TCP-LISTEN:8080 TCP:google.com:80

(1024より低いポートをリスンするにはroot権限が必要なので、より高いポートを選択してください。)

ただし、トラフィックを観察したい場合、root アクセス権がある場合は削除して実行します。ワイヤーシャーク。開始し、フィルタをに設定し、プライマリtcp.port == 80ネットワークインターフェイスからの受信を開始し、ナビゲーションを開始します。

Google はあなたを HTTPS にリダイレクトします。 HTTPSトラフィックを見ると、暗号化されたTLS接続のみが表示されますが、これはTLSハンドシェイクを観察しない限り大きな意味はありません。ブラウザに偽の認証局を提供すると、HTTPSセッションを傍受できますが、設定は困難です。 HTTPプロトコルを観察するには、暗号化されていないバージョン、つまりSSLを使用しないサイトに固執してください。

おすすめ記事