特定のプロトコル(この場合はポート80のHTTPプロトコル)がどのように機能するかを確認するには、2つのターミナルウィンドウを開きます。
nc -l 80
nc google.com 80
次に、「中」として使用したいプログラム(この場合はFireFox)を実行しますhttp://localhost:80
。
左側の端末からメッセージを送信したら、データをコピーして右側の端末に貼り付けます。右側の端末がメッセージを送信するとき、左側の端末も同じです。
このプロセスは受動的で退屈であるだけでなく、2つの欠点もあります。
- 速度が十分に速くないと、接続がタイムアウトする可能性があります。
- コピー&ペーストはバイナリデータでは正しく機能しません。
このプロセスを自動化できますか?あるポートから自動的にデータを別のポートまたは別のコンピュータに転送して、送受信するデータを調べてデバッグできますか?
ベストアンサー1
使用ソカット、これはnetcatの拡張バージョンです。
左: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を使用しないサイトに固執してください。