[linux] tcpdump抓包案例

Posted 陶士涵的菜地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[linux] tcpdump抓包案例相关的知识,希望对你有一定的参考价值。

1.常见参数
tcpdump -i eth0 -nn -s0 -v port 80

-i  选择监控的网卡
-nn 不解析主机名和端口号,捕获大量数据,名称解析会降低解析速度
-s0  捕获长度无限制
-v  增加输出中显示的详细信息量
port 80 端口过滤器,只捕获80端口的流量,通常是HTTP


2.
tcpdump -A -s0 port 80
-A 输出ASCII数据
-X 输出十六进制数据和ASCII数据

3.
tcpdump -i eth0 udp
udp 过滤器,只捕获udp数据
proto 17 协议17等效于udp
proto 6  等效于tcp

4.
tcpdump -i eth0 host 10.10.1.1
host 过滤器,基于IP地址过滤

5.
tcpdump -i eth0 dst 10.105.38.204
dst 过滤器,根据目的IP过滤
src 过滤器,根据来源IP过滤

6.
tcpdump -i eth0 -s0 -w test.pcap
-w 写入一个文件,可以在Wireshark中分析

7.
tcpdump -i eth0 -s0 -l port 80 | grep \'Server:\'
-l 配合一些管道命令的时候例如grep

8.
组合过滤
and or &&
or or ||
not or !

9.
快速提取HTTP UA
tcpdump -nn -A -s1500 -l | grep "User-Agent:"

使用egrep 匹配 UA和Host
tcpdump -nn -A -s1500 -l | egrep -i \'User-Agent:|Host:\'

10.
匹配GET的数据包
tcpdump -s 0 -A -vv \'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420\'

匹配POST包,POST的数据可能不在包里
tcpdump -s 0 -A -vv \'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354\'

11.
匹配HTTP请求头
tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"
匹配一些POST的数据
tcpdump -s 0 -A -n -l | egrep -i "POST /|pwd=|passwd=|password=|Host:"
匹配一些cookie信息
tcpdump -nn -A -s0 -l | egrep -i \'Set-Cookie|Host:|Cookie:\'

12.
捕获DNS请求和响应
tcpdump -i eth0 -s0 port 53

13.
使用tcpdump捕获并在Wireshark中查看

使用ssh远程连接服务器执行tcpdump命令,并在本地的wireshark分析
ssh root@remotesystem \'tcpdump -s0 -c 1000 -nn -w - not port 22\' | wireshark -k -i -

ssh ubuntu@115.159.28.111 \'sudo tcpdump -s0 -c 1000 -nn -w - not port 22\' | wireshark -k -i -

14.
配合shell获取最高的IP数
tcpdump -nnn -t -c 200 | cut -f 1,2,3,4 -d \'.\' | sort | uniq -c | sort -nr | head -n 20

15.捕获DHCP的请求和响应

tcpdump -v -n port 67 or 68

 

 

 

 

以上是关于[linux] tcpdump抓包案例的主要内容,如果未能解决你的问题,请参考以下文章

tcpdump抓包分析详解

Linux 抓包工具 tcpdump

Linux命令tcpdump抓包工具

Linux 平台 tcpdump 抓包

TCPdump抓包命令详解

在linux中使用tcpdump抓包的方法: