受信および送信されたネットワーク要求をダンプする方法は?

受信および送信されたネットワーク要求をダンプする方法は?

リバースアプリケーションを学びたいのですが、アプリケーションのネットワークをダンプする方法が混乱しています。 tcpflow、ngrepなどを試しました。動作しますが、出力データは人間が読み取ることができません。アプリケーション/ホストからネットワークの受信/転送データを取得するLinuxコマンドを教えてください。私はこれを試してみます

sudo ngrep -W byline port 80

出力

interface: wlp1s0 (192.168.230.0/255.255.255.0)
filter: ( port 80 ) and ((ip || ip6) || (vlan && (ip || ip6)))
####
T 192.168.230.135:29464 -> 91.108.56.124:80 [AP] #4
POST /api HTTP/1.1.
Host: 91.108.56.124:80.
Content-Length: 148.
Content-Type: application/x-www-form-urlencoded.
Connection: Keep-Alive.
Accept-Encoding: gzip, deflate.
Accept-Language: en-US,*.
User-Agent: Mozilla/5.0.
.
.............g[c....x.F`$..>o-...O:2..3ib.W.q.._.,.)1.....k.........!..z...M^.g^...I.p...5.yx.Ys...Y*.m.. ....w...uK.%..0`....~.f.&...Q..br..W...3..

プレーンテキスト文字列と同じくらい読みやすいですか?

答え1

試してみましたか?ラインシャーク?これはtcpdump、またはなどのパケットキャプチャプログラムだけでなく、ngrepネットワークプロトコルデコーダ/アナライザでもあります。つまり、ネットワークトラフィックを解釈しやすくなります。

ちなみに、Wiresharkは実行中のディストリビューション(Debianなど)に対してほぼ確実にパッケージ化されていますapt-get install wireshark

注目すべき点:wiresharkGUIプログラム自体(現在のバージョンはQtを使用し、以前のバージョンはGTKを使用)ですが、tsharksshセッションを介してリモートで実行する必要がある場合に便利なコンソールバージョンもあります。また、リアルタイムネットワークキャプチャだけでなく、wiresharkパケットキャプチャファイル(たとえば、tcpdump -w filename -s 0またはで生成されたファイル)も分析できます。tshark -w filename

ディストリビューションによっては、tshark同じパッケージにあってもwireshark別々のパッケージにあってもかまいません。たとえば、Debianはパッケージにありますtshark


また、ネットワークトラフィックに最も興味がある場合libwww-perl(Webボットと同様のツールを作成するためのPerlライブラリであるLWPとも呼ばれます)、リクエストとレスポンスのヘッダチェーンと、次の呼び出しを含むURLからヘッダおよび/またはデータを抽出するための(エイリアス、およびlwp-requestHEADというGETコマンドPOSTラインツール付属していますlwp-dump「URLがどのヘッダーとコンテンツを返すかを確認してください」

LWPは展開用のパッケージとしても提供できます。例えば ​​Debian ではapt-get install libwww-perl

関連情報