我想学习反向应用程序,我很困惑如何转储应用程序的网络,我尝试了 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
(别名为HEAD
、GET
和POST
)的命令行工具,用于从 URL 中提取标头和/或数据,包括请求和响应标头链,以及另一个打电话lwp-dump
给“查看 URL 返回哪些标头和内容”。
LWP 也很可能作为您的发行版的软件包提供。例如,在 debian 上,apt-get install libwww-perl