zoukankan      html  css  js  c++  java
  • Linux抓包工具tcpdump使用总结,WireShark的过滤用法

    tcpdump与WireShark是Linux下的两个常用,功能强大的抓包工具,下面列出这两个工具的简单用法。

    tcpdump用法

    tcpdump用法:

    sudo tcpdump -i ens33 src 192.168.0.19 port 80 -xx -Xs 0 -w test.cap
    sudo tcpdump -i ens33 src port 80 -xx -Xs 0 -w test.cap

    参数说明:
    -i: 指定网卡
    src: 指明包的来源
    port: 指明端口号
    -xx: 指抓到的包以16进制显示
    -X: 指以ASCII码显示
    -s 0: 指明抓整个包
    -w: 写到文件中

    WireShark过虑用法

    【WireShark中的逻辑运算】
    与: and 或 &&
    或: or 或 ||
    非: not 或!

    WireShark中的判断语句
    等于: eq 或 ==
    大于: gt 或 >
    小于: lt 或 <
    大于等于: ge 或 >=
    小于等于: le 或 <=
    不等于: ne 或 !=

    组合符(小括号)
    ()

    包含与正由表达式匹配运算符
    contains
    matches
    注意:matches 后的关键字是不区分大小写的,contains后面的关键字区分大小写。

    【协议过滤】
    在表达式输入框中输入协议名称即可。
    注意:协议名称为小写,大写会报错
    http
    udp
    tcp
    arp
    icmp
    smtp
    pop
    dns
    ip
    ssl
    ftp
    telnet
    ssh
    rdp
    rip
    ospf

    捕获多种协议,只需要对协议进行逻辑组合
    http or udp

    排除某种协议的数据包
    not arp not tcp

    【http域名与url过滤】
    按内容长度过滤
    http.content_length <= 100
    http.content_length_header <= 100

    针对数据包内容的过滤
    匹配http请求中含有/api/member/health/check 的请求信息
    http.request.uri matches "/api/member/health/check"

    查询url中包含/api/member/home/test.html? 字符串的信息

    http.request.uri contains "/api/member/home/test.html?"

    按域名过滤

    http.host == "jd.com" #精确过滤
    http.host contains "jd.com" #模糊过虑

    过滤请求的uri,取值是域名后的部分
    http.request.uri=="/online/setpoint"

    过滤完整的url
    http.request.full_uri=="https://passport.jd.com/uc/login"

    按http响应的状态过虑
    http.response.code==302
    http.response.code==401

    过滤所有的http响应包
    http.request==1
    http.response==1


    过滤所有请求方式为POST或GET的http请求包,注意POST或GET为大写
    http.request.method==GET
    http.request.method==POST

    过滤含有指定cookie的http数据包
    http.cookie contains userid

    过滤http头中server字段含有nginx字符的数据包
    http.server contains "nginx"

    过滤content_type是text/html的http响应
    http.content_type == "text/html"

    过滤content_type是application/json的http响应

    http.content_type == "application/json"


    过滤content_encoding是gzip的http包
    http.content_encoding == "gzip"

    过滤所有含有http头中含有server字段的数据包
    http.server


    过滤HTTP/1.1版本的http包,包括请求和响应
    http.request.version == "HTTP/1.1"

    过滤http响应中的phrase
    http.response.phrase == "OK"

    【ip与端口过滤】
    按目标地址过滤
    ip.dst==192.168.0.19

    按源地址过滤
    ip.src==192.168.0.26

    按目标地址或源地址过滤
    ip.addr==192.168.0.19

    按目标端口或源端口过滤
    tcp.port==1935
    udp.port==2365

    按源端口过滤
    tcp.srcport==2365
    udp.srcport==2365

    按目标端口过滤
    tcp.dstport==1935
    udp.dstport==1935

    【数据过滤】
    按包长度过滤
    tcp.length < 300
    udp.length < 300

    过滤指定长度的udp数据包
    udp.length == 20


    过滤指定长度的tcp数据包
    tcp.length == 20

    过滤data部分长度为8的数据包
    data.len==8

    过滤指定内容的数据包
    data.data == 00:08:30:03:00:00:00:00


    【捕获经过指定ip的数据包】

    抓取192.168.0.1 收到和发出的所有数据包
    host 192.168.0.9

    源地址192.168.0.1发出的所有数据包
    src host 192.168.0.9

    目标地址192.168.0.1收到的所有数据包
    dst host 192.168.0.9

    根据主机名过滤
    src host hostnam

    根据MAC地址过滤
    ether host 80:05:09:03:E4:35

    网络过滤,过滤整个网段
    net 192.168.0
    src net 192.168
    dst net 192

    【MAC地址过滤】

    过滤目标或源地址是00:11:22:33:44:55的数据包
    eth.addr== 00:11:22:33:44:55

    过滤源地址是00:11:22:33:44:55的数据包
    eth.src== 00:11:22:33:44:55

    过滤目标地址是00:11:22:33:44:55的数据包
    eth.dst== 00:11:22:33:44:55

    【组合过滤】

    捕获udp源端口等于3457,源ip等于3457,或者udp目标端口等于1091,目标ip等于192.168.0.10的数据包
    (upd.srcport==3457 and ip.src=192.168.0.9) or (upd.dstport==1091 and ip.dst=192.168.0.10)

    抓取所有目的网络是192.168,但目的主机不是192.168.0.2 的TCP数据
    (tcp) and ((dst net 192.168) and (not dst host 192.168.0.2))

    抓取所有目标MAC 地址是80:05:09:03:E4:35 的ICMP 数据
    (icmp) and ((ether dst host 70:03:09:15:F4:12))
    icmp && eth.dst==70:03:09:15:F4:12

  • 相关阅读:
    代码解析&Filter用户授权例子
    session
    软件工程结对作业2
    软件工程结对作业1
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    KMP算法
    哈希表
    Mysql事物隔离级别
  • 原文地址:https://www.cnblogs.com/yyee/p/13458299.html
Copyright © 2011-2022 走看看