zoukankan      html  css  js  c++  java
  • 使用 tcpdump 工具抓包

      tcpdump 是一款 Linux 平台的网络数据包截获和分析工具,支持针对协议、主机、网口、端口等进行过滤。并且可以使用 and、or、not 等逻辑语句对过滤器进行组合,实现针对性截获。

    1. 监听指定网口

      使用 -i 参数指定监听的网口。不指定默认监听第一个(所以通常来讲,这个参数都需要指定,因为不指定很可能抓不到,而不是抓到多余的数据)。

    tcpdump -i ens192

      其中,ens192 是网口名称,可以使用 ifconfig 查看,如下:

        

      可以使用 any 指定抓取所有网口的数据:

    tcpdump -i ens192

     2. 监听指定主机

      使用 host 参数指定监听本机与指定的主机之间(双向)的通信包。不指定默认监听与所有主机的通信。

    tcpdump -i ens192 host 172.16.160.215

      其中,172.16.160.215 是目标主机。这里我指定的是我本机,因为我使用 Xshell 连接了服务器,所以一直有 ssh 包数据。

        

      2.1. 监听指定源主机

        使用 src host 参数监听指定主机到本机(单向,入)的通信包

    tcpdump -i ens192 src host 172.16.160.215

      2.2. 监听指定目标主机

        使用 dst host 参数监听本机到指定主机(单向,出)的通信包

    tcpdump -i ens192 dst host www.baidu.com

        使用 wget www.baidu.com 访问一下百度首页,结果:

          

       不使用 src 或者 dst,单独使用 host,则表示监听双向通信包。

     3. 监听指定端口

      使用 port 参数指定监听的端口。不指定默认监听所有端口的数据。

    tcpdump -i ens192 port 3306

      上述语句监听本机 ens192 网口与所有主机之间(双向)使用 3306 端口的通信包

      3.1. 监听指定源端口

    tcpdump -i ens192 src port 3306

        上述语句监听所有经过本机 ens192 网口并且发出方端口为 3306 的通信包。

      3.2. 监听指定目标端口

    tcpdump -i ens192 dst port 3306

        上述语句监听所有经过本机 ens192 网口并且接收方端口为 3306 的通信包。

    4. 监听指定协议(TCP/UDP)

      只监听 TCP 通信包。不指定默认监听所有协议。

    tcpdump -i ens192 tcp

      只监听 UDP 通信包

    tcpdump -i ens192 udp

    5. 组合条件(逻辑与或非)

      5.1. 使用 and (逻辑与)组合条件,只监听满足所有 and 条件的通信包

    tcpdump -i ens192 src host www.baidu.com and dst 172.16.163.36

        上述语句监听所有从 www.baidu.com 到 172.16.163.36 的数据包(单向),针对  src host www.baidu.com and dst 172.16.163.36 ,当命令运行在 172.16.163.36 上时,效果等同于  src host www.baidu.com ,当命令运行在 www.baidu.com 上时,效果等同于 dst 172.16.163.36 。

    tcpdump -i ens192 host www.baidu.com and 172.16.163.36

        上述语句监听所有 www.baidu.com 和 172.16.163.36 之间的通信包(双向),这种写法,如果两个 host 中不包含本机 host,则通常抓取不到数据。

      5.2. 使用 or(逻辑或)组合条件,监听满足任意一项 or 条件的通信包

    tcpdump -i ens192 host www.baidu.com or 172.16.160.215

        上述语句监听与 www.baidu.com 和 172.16.160.215 任意主机的通信包,不论出入方向。

    tcpdump -i ens192 src host www.baidu.com or 172.16.160.217

        上述语句监听来自 www.baidu.com 的通信包和与 172.16.160.217 来往的通信包。

      5.3. 使用 !(逻辑非)反选条件,监听不满足条件的通信包

    6. 指定抓取数据包的长度

      使用 -s 0 抓取完整数据包

    7. 指定抓取数据包个数

      使用 -c 100 指定抓取 100 个数据包后自动退出。

    8. 抓取数据包到指定文件

      使用 -w 指定输出文件

    tcpdump -i ens192 -w data.cap

      上述语句讲抓取的数据输出到当前目录下的 data.cap 文件(没有则创建文件)。

    9. 常见示例

      抓取

  • 相关阅读:
    hosts 文件妙用
    asp.net 各种路径
    正则表达式
    int.Parse()、int.TryParse()和Convert.ToInt32()的区别
    总结.NET 中什么时候用 Static
    利用.net的内部机制在asp.net中实现身份验证
    server.transfer 用法
    sql server Datetime格式转换
    如果在代码中使用JS
    js 添加广告
  • 原文地址:https://www.cnblogs.com/coding-one/p/14144068.html
Copyright © 2011-2022 走看看