使用tshark捕获apache服务器上传入的RESTAPI流量

使用tshark捕获apache服务器上传入的RESTAPI流量,rest,tcp,wireshark,tshark,Rest,Tcp,Wireshark,Tshark,是否可以捕获传入到tomcat服务器的RESTAPI请求,以验证外部客户端是否使用了正确的凭据。401个响应已经生成,但我们需要证明RESTAPI不是问题所在,而是请求 我成功安装了wireshark,并根据建议使用tshark尝试捕获传入的数据包 tshark -D 1. usbmon1 (USB bus number 1) 2. eth2 3. any (Pseudo-device that captures on all interfaces) 4. lo 我假设http请求是“tcp”

是否可以捕获传入到tomcat服务器的RESTAPI请求,以验证外部客户端是否使用了正确的凭据。401个响应已经生成,但我们需要证明RESTAPI不是问题所在,而是请求

我成功安装了wireshark,并根据建议使用tshark尝试捕获传入的数据包

tshark -D
1. usbmon1 (USB bus number 1)
2. eth2
3. any (Pseudo-device that captures on all interfaces)
4. lo
我假设http请求是“tcp”?对的那为什么不在这里显示呢?我尝试了联机找到的以下命令:

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"'
我知道我期望的特定传入请求url,并认为我可以使用该url进行筛选 真的很感谢你的帮助

编辑:

尝试并测试了以下各项:

tshark -i 2 -f 'port 80'
然后运行一个示例API请求并捕获以下内容:

Capturing on eth2
0.000000000 192.1xx.xxx -> 192.168.cc.xxxx TCP 66 49330 > http [SYN] 
Seq=0   Win=8192 Len=0 MSS=1400 WS=4 SACK_PERM=1
0.000146849 192.168.cc.xxxx -> 192.1xx.xxx TCP 66 http > 49330 [SYN, ACK] 
Seq=0 Ack=1 Win=14100 Len=0 MSS=1410 SACK_PERM=1 WS=128
0.005808528 192.1xx.xxx -> 192.168.cc.xxxx TCP 54 49330 > http [ACK] 
Seq=1 Ack=1 Win=65800 Len=0
0.031745954 192.1xx.xxx -> 192.168.cc.xxxx HTTP 220 
GET  /termsapi/google/search/main/rules/active HTTP/1.1
0.031845414 192.168.cc.xxxx -> 192.1xx.xxx TCP 54 http > 49330 [ACK] Seq=1 
Ack=167 Win=15232 Len=0
0.063554179 192.168.cc.xxxx -> 192.1xx.xxx TCP 2854 [TCP segment of a 
reassembled  PDU]
0.063568626 192.168.cc.xxxx -> 192.1xx.xxx TCP 2854 [TCP segment of a 
reassembled PDU]
0.063572832 192.168.cc.xxxx -> 192.1xx.xxx HTTP 695 HTTP/1.1 200 
OK     (application/json)
0.064066260 192.168.cc.xxxx -> 192.1xx.xxx TCP 54 http > 49330 [FIN, ACK] 
Seq=6242 Ack=167 Win=15232 Len=0
0.075055934 192.1xx.xxx -> 192.168.cc.xxxx TCP 54 49330 > http [ACK] 
Seq=167 Ack=2801 Win=65800 Len=0
0.075067927 192.1xx.xxx -> 192.168.cc.xxxx TCP 54 49330 > http [ACK] 
Seq=167 Ack=6243 Win=65800 Len=0
0.075095146 192.1xx.xxx -> 192.168.cc.xxxx TCP 54 49330 > http [FIN, ACK] 
Seq=167 Ack=6243 Win=65800 Len=0
0.075098758 192.168.cc.xxxx -> 192.1xx.xxx TCP 54 http > 49330 [ACK] 
Seq=6243 Ack=168 Win=15232 Len=0

但是根据手册页,我看不到凭据

打印TShark可以捕获并退出的接口列表

然后你必须选择一个。对于您的情况,您可能需要听eth2

您可以通过以下方式收听eth2上的所有流量:

tshark -ieth2
如果只想捕获GET请求,可以使用:

然后,您将看到所有GET请求都到达您的服务器

==编辑


如果您想查看数据包的所有详细信息(凭据,…),您可以通过添加
-T pdml
选项,让tshark以数据包详细信息标记语言输出数据包。

很抱歉,我添加了其他信息后才看到这一点。感谢您的回复。你知道我们是否可以看到get请求中使用的实际凭证吗?太好了。你太棒了。非常感谢!如果你认为,我回答你的问题,你可以接受。嘿,很抱歉在这里造成麻烦,但你认为你是否帮助我正确地包括一个过滤器,只捕获该url的特定请求:“…google/search/main”你可以使用
。。。和http.host==“google.com”
按主机筛选,但我不确定url路径。问,也许,一个新问题。
tshark -ieth2
tshark -ieth2 "port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420"