后浪笔记一零二四

tcpdump -i <网卡名称> tcp and port <端口号> -n -nn -v -vv -w cache -W 1000:1000个文件 -C 50:文件大小50M -s 80 -Z <用户名称如root>

tcpdump -i en0 tcp and port 6379 -n -nn -v -vv -w cache -W 1000 -C 50 -Z root

tcpdump -i eth0 port 80 and host nghtt2.org -w h2c.pcap

tcpdump -iany tcp and “port 8888 or port 8088”

如何使用tcpdump分析网络报文

这节课我们将介绍,如何在服务器端使用tcpdump进行抓包。

BPF过滤器:Wireshark捕获过滤器

  • Berkeley Packet Filter, 在设备驱动级别提供抓包过滤接口,多数抓包工具都支持此语法
  • expression表达式: 由多个原语组成。

Expression表达式

  • primitives原语: 由名称或数字(红色),以及描述它的多个限定词组成
    • qualifiers限定词
      • Type(蓝色): 设置数字或者名称所指示类型,例如 host(蓝色) www.baidu.com(红色)
      • Dir(绿色): 设置网络出入方向,例如 dst(绿色) port(蓝色) 80
      • Proto(黄色): 指定协议类型,例如 udp(黄色)
      • 其他
    • 原语运算符(紫色)
      • 与: &&或者and
      • 或: ||或者or
      • 非: !或者not
    • 例如: src(绿色) or(绿色) dst(绿色) portrange(蓝色) 6000-8000(红色) &&(紫色) tcp(黄色) or(紫色) ip6(黄色)

限定词

  • Type: 设置数字或者名称所指示类型

    • host、 port
    • net,设定子网,net 192.168.0.0 mask 255.255.255.0 等价于 net 192.168.0.0/24
    • portrange, 设置端口范围,例如portrange 6000-8000
  • Dir: 设置网络出入方向

    • src, dst, src or dst, src and dst
    • ra, ta, addr1, addr2, addr3, addr4 (仅对 IEEE 802.11 Wireless LAN有效)
  • Proto: 指定协议类型

    • ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp, icmp, igmp, igrp, pim, ah, esp, vrrp
  • 其他

    • gateway: 指明网关IP地址,等价于ether host ehost and not host host
    • broadcast: 广播报文,例如ether broadcast 或者 ip broadcast
    • multicast: 多播报文,例如ip multicast 或者 ip6 multicast
    • less, greater: 小于或者大于

基于协议域过滤

  • 捕获所有TCP中的RST报文(不是正常的关闭tcp连接,而是直接关闭了连接)
    • tcp[13]&4 == 4
  • 抓取HTTP GET报文
    • port 80 and tcp[((tcp[12:1] & 0xf0) » 2):4] = 0x47455420
Byte   |0                      |1                      |2                      |3                      |
Offset +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|-----
      0|                                               |                                               | ^  ^
       |               Source Port                     |              Destination Port                 | |  |
       +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| |  |
      4|                                                                                               | |  |
       |                                     Sequence Number                                           | 20 |
       +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| |  |
      8|                                                                                               | |  |
       |                                   Acknowledgment Number(If ACK set)                           | | Offset
       +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| |  |
     12|           |           |       TCP Flags       |                                               | |  |
       | Offset    | Reserved  | C  E  U  A  P  R  S  F|                 Window                        | |  |
       +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| |  |
     16|                                               |                                               | |  |
       |                Checksum                       |                Urgent Pointer                 | V  |
       +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--  |
     20|                                                                                               |    |
       |                            TCP Option(variable length, optional)                              |    V
       +--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|-----
       |0  1  2  3  4  5  6  7  8  9  10 1  2  3  4  5  6  7  8  9  20 1  2  3  4  5  6  7  8  9  30 1

捕获及停止条件

  • -D 列举所有网卡设备
  • -i 选择网卡设备
  • -c 抓取多少条报文
  • –time-stamp-precision指定捕获时的时间精度,默认毫秒micro,可选纳秒nano
  • -s 指定每条报文的最大字节数,默认262144字节

文件操作

  • -w 输出结果至文件
  • -C 限制输入文件的大小,超出后,以后缀加1等数字的形式递增。 注意单位是1,000,000字节 tcpdump -C 1 -W 3 -w abc
  • -W 指定输出文件的最大数量,到达后会重新覆写第1个文件
  • -G 指定每隔N秒就重新输出至新文件,注意w参数应基于strftime参数指定文件名,(strftime是一个格式化时间的命令行参数) tcpdump -G 3 -w def%M-%S
  • -r 读取一个抓包文件
  • -V 将待读取的多个文件名写入一个文件中,通过读取该文件同时读取多个文件
说明符 替换为
%a 缩写的星期几名称
%A 完整的星期几名称
%b 缩写的月份名称
%B 完整的月份名称
%c 日期和时间表示法
%d 一月中的第几天(01-31)
%H 24小时格式的小时(00-23)
%I 12小时格式的小时(01-12)
%j 一年中的第几天(001-366)
%m 十进制数表示的月份(01-12)
%M 分 (00-59)
%p AM或PM名称
%S 秒 (00-61)
%U 一年中第几周,以第一个星期日作为第一周的第一天(00-53)
%w 十进制数表示的星期几,星期日表示为0 (0-6)
%W 一年中的第几周,以第一个星期一作为第一周的第一天(00-53)
%x 日期表示法
%X 时间表示法
%y 年份,最后两个数字(00-99)
%Y 年份
%Z 时区的名称或缩写
%% 一个%符号

输出时间戳格式(输出到屏幕中的时间戳格式)

  • -t 不显示时间戳
  • -tt 自1970年1月1日0点至今的秒数
  • -ttt 显示邻近两行报文间经过的秒数
  • -tttt 带日期的完整时间
  • -ttttt 自第一个抓取的报文起经历的秒数

分析信息详情

  • -e 显示数据链路层头部
  • -q 不显示传输层信息
  • -v 显示网络层头部更多的信息,如TTL、id等
  • -n 显示IP地址、数字端口代替hostname等
  • -S TCP 信息以绝对序列号替代相对序列号
  • -A 以ASCII方式显示报文内容,适用HTTP分析
  • -x 以16进制方式显示报文内容,不显示数据链路层
  • -xx 以16进制方式显示报文内容,显示数据链路层
  • -X 同时以16进制及ASCII方式显示报文内容,不显示数据链路层
  • -XX 同时以16进制及ASCII方式显示报文内容,显示数据链路层

本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image