如何转储接收和发送的网络请求?

如何转储接收和发送的网络请求?

我想学习反向应用程序,我很困惑如何转储应用程序的网络,我尝试了 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(又名 LWP,一个用于编写网络机器人和类似工具的 Perl 库)附带一个名为lwp-request(别名为HEADGETPOST)的命令行工具,用于从 URL 中提取标头和/或数据,包括请求和响应标头链,以及另一个打电话lwp-dump“查看 URL 返回哪些标头和内容”

LWP 也很可能作为您的发行版的软件包提供。例如,在 debian 上,apt-get install libwww-perl

相关内容