我正在尝试解决设备上只有tcpdump可用的问题。我想使用tcpdump过滤Web流量,仅显示包含某些字符串的流量。
我执行以下操作:
tcpdump -nei eth0 -X | grep "something interesting"
输出是具有16字节pr行的hexview。由于数据显示在多行中,因此我无法grep此数据。
tcpdump是否可以在一行上显示捕获的数据?这将使使用grep查找有趣的数据包成为可能。
1
好,我现在无法测试,但是如果您有多行,则可以| tr -d'\ n'或grep -C 3前后可获得一些代码
—
barlop 2014年
@barlop,grep -C可以正常工作,但是不可靠,因为我永远不知道标题的行数,而且看不到匹配项下方的行。tr命令将所有输出转换为1行,因此它有点过多。
—
狗吃猫世界
以下不是grep,但tcpdump可以通过十六进制匹配字符串,而十六进制本质上是grep,无需任何正则表达式。您可以指定一个偏移量。我将其记入文件中(用windump完成,但我只是tcpdump的Windows版本,所以假定tcpdump)tcpdump -nXr zfile“ tcp [32:4] = 0x47455420”
—
barlop 2014年
tcpdump -nei eth0 -X | grep --line-buffered "something interesting"
出于不加区分的原因,我的有效工作答案已被删除。
—
bain