tcpdump指令

tcpdump(libpcap)
    tcpdump --help
    tcpdump [option][proto][dir][type]
    option:
        [ -B size ] 
        [ -c count ]
        [ -C file_size ] 
        [ -E algo:secret ] 
        [ -F file ] 
        [ -G seconds ]
        [ -i interface ] 
        [ -j tstamptype ] 
        [ -M secret ] 
        [ --number ]
        [ -Q in|out|inout ]
        [ -r file ]
        [ -s snaplen ]
        [ --time-stamp-precision precision ]
        [ --immediate-mode ]
        [ -T type ] 
        [ --version ]
        [ -V file ]
        [ -w file ]
        [ -W filecount ]
        [ -y datalinktype ] 
        [ -z postrotate-command ]
        [ -Z user ] [ expression ]
        -t 显示时间戳
        -X 实现十六进制
        -v 显示详细的报文信息
    proto : ether、ip、ip6、arp、icmp、tcp、udp
    dir : src 、dst
    type : host、net、port、portrange,默认是host
    条件组合:or、and、not
    
    运行范围:用户态
    工作原理:网卡数据 -> BPF-数据包过滤器(工作在协议栈之前) -> tcpdump程序
    
    Q:1、iptables工作在什么层?
        Linux系统中的netfilter工作在协议栈阶段,
       2、那么其他的嵌入式系统的netfilter也是工作在协议栈的吗,其他抓包工具又可以抓到那个位置的数据呢?
    
    使用示例指令:
        不带参数:
            tcpdump
                抓取第一个非lo网卡的所有数据包
        指定网卡:
            tcpdump -i eth0
        -n 不解析主机和端口号:
            tcpdump -n -i eth0 
        指定type:    
            tcpdump -ni eth0 host 192.168.1.1
                host 为指定IP的所有数据包
        指定dir:
            tcpdump -ni eth0 src host 192.168.1.1
                src host 指定源IP的数据包
            tcpdump -ni eth0 dst host 192.168.1.1
                dst host 指定目的IP的数据包
        指定数据包个数:
            tcpdump -ni eth0 -c 10 host 192.168.1.1
            tcpdump -ni eth0 -c 10 dst host 192.168.1.1
                -c 指定源IP的数据个数
        指定端口:
            tcpdump -ni eth0 dst port 22
                port 指定网卡端口数据包
            tcpdump -ni eth0 portrange 80-8089
                eth0上过80-8089端口的数据包
        指定协议:
            sudo tcpdump -ni eth0 -c 5 icmp 
                指定5个ICMP数据包
            tcpdump -ni eth0 ip6
            tcpdump ip proto 6  //ip数据报中的tcp数据包
        指定网段:
            sudo tcpdump -ni eth0 net 192.168.1.2/24
        
        条件组合:or、and、not
            sudo tcpdump -ni eth0 src 192.168.10.210 and dst port 8080
            sudo tcpdump -ni eth0 src 192.168.10.210 and not dst port 8080
            sudo tcpdump -ni eth0 src net 192.168.1.0/16 and dst net 192.168.10.210 
            抓取特殊标志的数据包:
                抓取某主机发送的RST包:
                sudo tcpdump -ni eth0 src host 192.168.1.100 and 'tcp[tcpflags] & (tcp-rst) != 0'
                sudo tcpdump -ni eth0 src host 192.168.1.100 and 'tcp[tcpflags] & (tcp-syn) != 0'
                sudo tcpdump -ni eth0 src host 192.168.1.100 and 'tcp[tcpflags] & (tcp-fin) != 0'
                sudo tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'
                sudo tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply' //抓取所有ping的ICMP数据包
                sudo tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' //过滤还有数据的网络包
                sudo tcpdump  -ni eth0 'tcp[20:2]=0x4745 or tcp[20:2]=0x4854' //0x4745 get前两个字符, 0x4854 http 前两个字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值