リバースアプリケーションを学びたいのですが、アプリケーションのネットワークをダンプする方法が混乱しています。 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
。
注目すべき点:wireshark
GUIプログラム自体(現在のバージョンはQtを使用し、以前のバージョンはGTKを使用)ですが、tshark
sshセッションを介してリモートで実行する必要がある場合に便利なコンソールバージョンもあります。また、リアルタイムネットワークキャプチャだけでなく、wireshark
パケットキャプチャファイル(たとえば、tcpdump -w filename -s 0
またはで生成されたファイル)も分析できます。tshark -w filename
ディストリビューションによっては、tshark
同じパッケージにあってもwireshark
別々のパッケージにあってもかまいません。たとえば、Debianはパッケージにありますtshark
。
また、ネットワークトラフィックに最も興味がある場合libwww-perl(Webボットと同様のツールを作成するためのPerlライブラリであるLWPとも呼ばれます)、リクエストとレスポンスのヘッダチェーンと、次の呼び出しを含むURLからヘッダおよび/またはデータを抽出するための(エイリアス、およびlwp-request
)HEAD
というGET
コマンドPOST
ラインツール付属していますlwp-dump
。「URLがどのヘッダーとコンテンツを返すかを確認してください」。
LWPは展開用のパッケージとしても提供できます。例えば Debian ではapt-get install libwww-perl