zoukankan      html  css  js  c++  java
  • tcpdump教程入门

    tcpdump是一个最基本重要的网络分析工具, 掌握好这, 对于学习tcp/ip协议也是很有帮助的. 理解了tcp/ip协议栈的知识, 分析调优网络的能力才会更高. 所以使用tcpdump相比其它的工具, 更能帮我们理解协议.

    tcpdump的一些命令选项

    1. -n不要转换一些数值, 比如把80端口转换成http显示.
    2. -i需要监控的网卡. 如果不指定, 则监控所有有效的网卡数据.
    3. -c抓取多少个包后自动停止抓取
    4. -s默认是只抓取96bytes的数据, 如果想要抓取更多的数据, 则要通过这指定更大的数值. 比如-s 1500抓取1500byte
    5. -S默认每个包的sequence是显示相对的值, 如果想显示绝对值, 通过此选项打开.

    过滤表达式

    我们抓包时, 一般是有针对性的去关注感兴趣的东西, 不然太多的信息会对我们分析数据造成干扰, tcpdump支持过滤语法.

    基本用法

    host

    host指定主机, 可以是ip或者域名.

    tcpdump -s0  -i wlan0 host www.baidu.com
    

    上面的功能是抓取本机网卡wlan0上和www.baidu.com这个主机打交道的数据. 其中-s0指定抓取所有数据, 查考前面选项介绍.

    dst, src

    有时候我们只关心数据流其中一个方向上的数据, 可以通过src: 源端, dst:目的端来指定过滤.

    tcpdump  -i wlan0 dst  www.baidu.com
    

    port

    指定端口

    tcpdump -i wlan0  port 6379
    

    抓取redis的数据.

    协议

    指定协议数据, 比如: tcp, udp, icmp

    tcpdump -i wlan0  tcp and udp
    

    抓取所有的tcp和udp数据包.

    高级用法

    tcpdump表达式可以支持逻辑组合运算, 提供更强大的功能.

    • and
    • or
    • not

    这些和所有开发语言中的语义是一样的. 下面看一些例子:

    # 源主机是192.168.1.34, 并且目标端口是80
    tcpdump -i eth0 src 192.168.1.34 and dst port 80
    
    # 所有tcp协议并且端口不是22
    tcpdump -i eth0 tcp and not port 22
    

    有时候表达式太复杂了, 我们要进行分组, 即用()把一些表达式组合在一起.

    # 源主机是192.168.1.34并且目标端口是22或者3389
    tcpdump -i eth0 'src 192.168.1.34 and (dst port 22 or 3389)'
    

    我们还可以通过分析数据包其中的部分数据计算过滤:

    # 抓取带有SYN标志的数据, tcp[13]的意思是从tcp数据包头中取第14个byte数据, 详细参考tcp协议头
    sudo tcpdump -i wlan0 'host www.baidu.com and tcp[13]&2!=0'
    

    数据保存和读取分析

    一般在服务器上截取到数据包后, 用于之后的分析, 比如传到本地机器后用wireshark分析. 可以通过-w选项保存:

    tcpdump -i eth0 src www.baidu.com -w file.cap
    

    上面把数据保存到了file.cap文件中

    参考: https://danielmiessler.com/study/tcpdump/

  • 相关阅读:
    OD: Kernel Vulnerabilities
    newInstance()和new的区别
    原型模式
    工厂模式
    代理模式
    策略模式
    简单工厂模式
    C#操作符的重载
    旅行之舌尖上的中国
    模式和原则[转载]
  • 原文地址:https://www.cnblogs.com/jcli/p/4248145.html
Copyright © 2011-2022 走看看