zoukankan      html  css  js  c++  java
  • Tcpdump非常实用的抓包12实例

    1.过滤主机
    ----------------------------------------------------------------

    - 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据
    # tcpdump -i eth1 host 192.168.1.1
    - 源地址
    # tcpdump -i eth1 src host 192.168.1.1
    - 目的地址
    # tcpdump -i eth1 dst host 192.168.1.1

    2.过滤端口
    ----------------------------------------------------------------

    - 抓取所有经过 eth1,目的或源端口是 25 的网络数据
    # tcpdump -i eth1 port 25
    - 源端口
    # tcpdump -i eth1 src port 25
    - 目的端口
    # tcpdump -i eth1 dst port 25

    3,网络过滤
    ----------------------------------------------------------------

    # tcpdump -i eth1 net 192.168
    # tcpdump -i eth1 src net 192.168
    # tcpdump -i eth1 dst net 192.168  

    4.协议过滤
    ----------------------------------------------------------------

    # tcpdump -i eth1 arp
    # tcpdump -i eth1 ip
    # tcpdump -i eth1 tcp
    # tcpdump -i eth1 udp
    # tcpdump -i eth1 icmp  

    5.常用表达式
    ----------------------------------------------------------------

    非 : ! or "not" (去掉双引号)
    且 : && or "and"
    或 : || or "or"
    
    - 抓取所有经过 eth1,目的地址是 192.168.1.254 或 192.168.1.200 端口是 80 的 TCP 数据
    # tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host
    192.168.1.200)))'
    - 抓取所有经过 eth1,目标 MAC 地址是 00:01:02:03:04:05 的 ICMP 数据
    # tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'
    - 抓取所有经过 eth1,目的网络是 192.168,但目的主机不是 192.168.1.200 的 TCP 数据
    # tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'

    6.只抓 SYN 包
    ----------------------------------------------------------------

    # tcpdump -i eth1 'tcp[tcpflags] = tcp-syn'

    7.抓 SYN, ACK
    ----------------------------------------------------------------

    # tcpdump -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'  

    8.抓 SMTP 数据

    ----------------------------------------------------------------

    # tcpdump -i eth1 '((port 25) and (tcp[(tcp[12]>>2):4] = 0x4d41494c))'
    抓取数据区开始为"MAIL"的包,"MAIL"的十六进制为 0x4d41494c。

    9.抓 HTTP GET 数据
    ----------------------------------------------------------------

    # tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x47455420'
    "GET "的十六进制是 47455420

    10.抓 SSH 返回
    ----------------------------------------------------------------

    # tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D'
    "SSH-"的十六进制是 0x5353482D
    
    # tcpdump -i eth1 '(tcp[(tcp[12]>>2):4] = 0x5353482D) and (tcp[((tcp[12]>>2)+4):2]
    = 0x312E)'抓老版本的 SSH 返回信息,如"SSH-1.99.."

    11.抓 DNS 请求数据
    ----------------------------------------------------------------

    # tcpdump -i eth1 udp dst port 53

    12.实时抓取端口号8000的GET包,然后写入GET.log
    ----------------------------------------------------------------

    tcpdump -i eth0 '((port 8000) and (tcp[(tcp[12]>>2):4]=0x47455420))' -nnAl -w /tmp/GET.log

    其他
    ----------------------------------------------------------------
    -c 参数对于运维人员来说也比较常用,因为流量比较大的服务器,靠人工 CTRL+C 还是
    抓的太多,于是可以用-c 参数指定抓多少个包。

    # time tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10000 > /dev/null
    上面的命令计算抓 10000 个 SYN 包花费多少时间,可以判断访问量大概是多少。
  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/oskb/p/5667874.html
Copyright © 2011-2022 走看看