web-dev-qa-db-ja.com

ホームネットワークでHTTPヘッダートラフィックをキャプチャする方法

私は個人的なプロジェクトのためにいくつかのHTTPデータを実験しようとしています。私がやりたいのは、自宅のWifiルーターを通過するすべてのHTTPトラフィックをキャプチャし、そのデータを分析に使用することです。

このタスクには、HTTPヘッダー情報をキャプチャするだけで十分です。ノートパソコン、電話、iPadからのトラフィックをすべて監視したい。このデータをキャプチャするための専用サーバーが自宅にないので、Amazonのクラウドサーバーを使用したいと思います。 AWSアカウントを持っています。

だから、私はこれをどのように行うのですか?なんらかのプロキシを設定する必要があると思いますが、私はネットワーキングの初心者です。

ISPのFTTHモデムを持っています。そして、Wifiルーターがそれに接続します。

3
sfactor

ルーターとモデムの間のネットワークに何かを挿入するのが理想的なようです。これは、RaspberryPiで実現できます。イーサネットインターフェイスは1つしかありませんが、USB nicを入手して、着信および発信インターフェイスを使用できます。

Piがルーターとして参加する必要がないように、これらをブリッジする必要があります。一方のインターフェイスでpiに入ってくるものはすべて、もう一方のインターフェイスから出ます。ネットワークの内部に接続できる管理ポートとして機能するために、3番目のUSBNICが必要になる場合があります。

1つのアプローチは、AWSでnetcatを実行してから、tcpdumpを実行してポート80からhttpヘッダーを除外し、それらをAWSに送信することです。

tcpdump -s 0 -U -n -w - -i br0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'  | nc AWS_IP -p 10000

これは言っている

-s 0   Get the whole packet
-U     Send output immediately, don't buffer
-n     No name conversion with dns etc
-w -   write to standard output
-i br0 Listen for packets on the br0 interface (assumes the ethernet ports are bridged)

次に、フィルターはhttpヘッダーを引き出します。これからの出力はnetcatにパイプされ、netcatはそれをAWSIPアドレスのポート10000に送信します

そしてAWSでは

nc -l -p 10000 > http.pcap

これにより、ポート10000にリスナーが設定され、このポートに到着したものはすべてhttp.pcapというファイルに出力されます。

このファイルは、wiresharkなどを使用して開くことができます。

このトラフィックを保護するには、sshを介したデータのトンネリングを調べてください。

1
Paul

fiddler というプログラムがあります。これはやり過ぎなくてもニーズに合うかもしれません。

0
Malt