• TCPDUMP抓包方法


    命令行参数
    tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
              [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
              [ -T 类型 ] [ -w 文件名 ] [表达式 ]

    -n: 不把网络地址转换成名字
    -a: 将网络地址和广播地址转变成名字;
     -e: 在输出行打印出数据链路层的头部信息;
     -t: 在输出的每一行不打印时间戳;
     -v: 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
     -vv:输出详细的报文信息;
     -c: 在收到指定的包的数目后,tcpdump就会停止;
     -F: 从指定的文件中读取表达式,忽略其它的表达式;
     -i: 指定监听的网络接口;
     -r: 从指定的文件中读取包(这些包一般通过-w选项产生);
     -w: 直接将包写入文件中,并不分析和打印出来;
    -s: 指定数据报的大小(默认68个byte)##########################抓包时每次都要设置这个参数,-s 65500 不然wireshark解析的包会太小


    表达式
    tcpdump利用它作为过滤报文的条件,如果一个报文满足表
    达式的条件,则这个报文将会被捕获。如果没有给出任何条件,
    则网络上所有的信息包将会被截获。

    1. 类型关键字

    host: 指定主机
    net: 指定网络地址
    port: 指定端口号
    默认类型为host

    2. 方向关键字

    src: 指定源
    dst: 指定目的
    src or dst
    src and dst
    默认为src or dst

    3. 协议关键字

    包括fddi,ip ,arp,rarp,tcp,udp等类型

    4. 逻辑运算

    取非运算是 'not ' '!'
    与运算是'and','&&'
    或运算 是'or' ,'||';


    示例
    1. 截获所有135.252.142.150 的主机收到的和发出的所有的数据包
    tcpdump host 135.252.142.150 -i eth0

    2. 获取主机135.252.33.186除了和主机135.252.142.150之外所有
    主机通信的ip包,使用命令
    tcpdump ip host 210.27.48.1 and ! 210.27.48.2

    3. 获取主机135.252.33.186接收或发出的telnet包
    tcpdump tcp port 23 host 135.252.142.150

    4. 获取主机135.252.142.121端口5060上的所有数据报
    tcpdump port 5060 and host 135.252.142.121

    5. 获取主机135.252.142.150所有udp数据报
    tcpdump udp and host 135.252.142.150
    or:
    tcpdump ip proto \\udp and host 135.252.142.150

    6. 获取主机和135.252.142.150的源端口为5060, 目的端口为
    45413的数据报
    tcpdump src port 5060 and dst port 45413 and host 135.252.142.150

    7. 打印所有包含数据的数据报, 就是说除了SYN, ACk和Fin的数据报
    tcpdump 'tcp port 80 and
    (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

    8. 打印所有经过网关135.252.33.1长度大于576的数据报
    tcpdump 'gateway snup and ip[2:2] > 576'

    ip[2:2]: 从第二个byte开始的两个byte.


    实现
    tcpdump |------------------------------------------ | | | +-------+ | |tcp/udp| | +-------+ | | | +--------+ | |IP stack|+------------+ +--------+| Filter | |+------------+ +------------+ | BPF driver |-------------| eth driver | +------------+ packet recv +------------+
    -----------------------------------------------------
    note: 如果linux(或unix)没装xwindow, 可以考虑用tcpdump, 如果这个协议tcpdump不支持, 可以使用tcpdump抓包, 使用wireshare(或者ethereal)来看所抓的数据包

  • 相关阅读:
    运维常用python库&模块
    find&正则表达式
    博客园背景粒子连线代码
    xshell几款绝佳配色方案
    解决ssh连接超时(ssh timeout)的方法
    Java-计划存储
    @Repository、@Service、@Controller 和 @Component
    帮助对@Repository注解的理解
    Struts 2学习笔记——拦截器相关
    JAVA UUID 生成
  • 原文地址:https://www.cnblogs.com/jeasonrun/p/4206313.html
Copyright © 2020-2023  润新知