web-dev-qa-db-ja.com

tcpdumpを使用したHTTPトラフィックの監視

サーバーとWebサーバー間のHTTPトラフィックを監視するために、現在tcpdumpを使用しています。これは正常に機能しますが、出力から余分なデータを削除したいと思います(tcpflowwiresharkについては知っていますが、私の環境では簡単に利用できません)。

tcpdump manページから:

ポート80との間のすべてのIPv4 HTTPパケットを印刷するには、つまり、SYNおよびFINパケットやACK専用パケットなどではなく、データを含むパケットのみを印刷します。

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

このコマンド

Sudo tcpdump -A 'src example.com and tcp port 80 and(((ip [2:2](ip [0]&0xf)<< 2))-((tcp [12]&0xf0)>> 2) )!= 0) '

次の出力を提供します。

19:44:03.529413 IP 192.0.32.10.http> 10.0.1.6.52369:フラグ[P.]、シーケンス918827135:918827862、ack 351213824、win 4316、オプション[nop、nop、TS val 4093273405 ecr 869959372]、長さ727

---(E ..... @ ........... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP/1.1 200 OK Server:Apache/2.2.3(Red Hat)Content-Type:text/html; charset = UTF-8日付:2009年11月14日土曜日18:35:22 GMT年齢:7149
コンテンツの長さ:438

<HTML> <HEAD> <TITLE>サンプルWebページ</ TITLE> </ HEAD> <body>
<p>このWebページにアクセスしました... </ p> </ BODY> </ HTML>

ハイライトされた部分を除いて、これはほぼ完璧です。これは何ですか、最後に-より重要なこととして-どうすればそれを取り除くことができますか?コマンドの最後の表現を少し微調整しただけなのでしょうか。

42
otto.poellath

tcpdumpは完全なパケットを出力します。あなたが見る「ごみ」は、実際にはTCPパッケージヘッダーです。

あなたは確かにPerlスクリプトで出力をマッサージすることができますが、代わりにwiresharkのテキストバージョンであるtsharkを使用しないのですか?

tshark 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

tcpdump(同じライブラリ)と同じ引数を取りますが、アナライザーであるため、詳細なパケット検査を実行できるため、フィルターをさらに洗練させることができます。

tshark 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -R'http.request.method == "GET" || http.request.method == "HEAD"'

39

ngrep を見てください-それはあなたのために役立つでしょう。

他の参考として httpry [サーバーは現在ダウンしているようですが、一時的なものであることを願っています]と tshark は、パッシブプロトコル分析にも役立ちます。はるかに。

18
pQd

httpry または justniffer を試してください

Justnifferは、再送信とIPフラグメンテーションを並べ替えるTCPパケットでうまく機能します

5
Mole24

私は、後処理のためにすべてをpcapファイルに格納する、だまされたtcpdumpコマンドラインを使用することをお勧めします。正確に何を見ているかに応じて、tcpflowの診断は、分析のために首尾一貫した方法で通信を元に戻すのに最適です。

Httpryのいくつかの使用法を含む他のいくつかの優れた情報は、次の場所にあります。 http://taosecurity.blogspot.com/2008/06/logging-web-traffic-with-httpry.html

1
ScottZ

HTTPトラフィックを監視するために特別に設計された、市場で入手可能ないくつかのツールがあります。 Fiddler2( http://www.fiddler2.org )および HTTP Debugger Pro は、このようなツールの例です。

0
Web developer

使用しているウェブサーバーはログを生成しませんか?確かに、これはHTTPトラフィックを監視するためのはるかに優れた方法です。データを分析するためのツールは多数あり、有能なWebサーバーは信頼できるログを生成するはずです。

0
JamesHannah

TCPDUMPを使用する際の「問題」は、パッケージのヘッダーの内容が表示されることです。

それでもTCPDUMPを使用したい場合は、-Aを削除してください。これを行うと、出力から削除されます。

Sudo tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
0
BANJOSA