当前位置 主页 > 服务器问题 > Linux/apache问题 >

    linux系统下使用tcpdump进行抓包方法

    栏目:Linux/apache问题 时间:2019-11-21 20:44

    我先看下实例代码:

    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