menu DizzyK
Wireshark使用(从0开始的入门)
63 浏览 | 2020-04-28 | 分类:MISC_Notez,CTF_Notez | 标签:

Wireshark使用(看心情持续更新)

DizzyK

  1. 简介

    • Wireshark(前称Ethereal)是一~个网络封包分析软件网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
  2. 过滤器

    1. WinPCAP作为接口,直接与网卡进行数据报文交换。捕捉数据的数量,以避免产生过大的日志文件。用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。
    2. 显示过滤器:在捕捉结果中进行详细查找。它允许您在日志文件中迅速准确地找到所需要的记录。他们可以在得到捕捉结果后随意修改。
  3. 基本语法

    1. 筛选

      1. IP筛选
        1. 源IP筛选ip.src == IP地址
        2. 目的IP筛选ip.dst == IP地址
      2. MAC筛选
        1. MAC地址筛选eth.addr == MAC地址
        2. 目的MAC筛选ehh.dst == MAC地址
      3. 端口筛选
        1. 目标tcp端口筛选tcp.dstport == 端口号
        2. 源tcp端口筛选tcp.scrport == 端口号
        3. 源udp端口筛选udp.srcport == 端口号
      4. 协议筛选
        1. tcp协议tcp
        2. udp协议udp
        3. 类似的还有arp/icmp/http/ftp/dns/ip
      5. 长度筛选
        1. 长度为20的udp包udp.length == 20
        2. 长度大于20的tcp包tcp.len >= 20
        3. 长度为20的IP包ip.len == 20
        4. 长度为20的整个流量包frame.len == 20
      6. http请求筛选
        1. 指定方法
          1. GET http.request.method=="GET"
          2. POST http.request.method=="POST"
        2. 指定URL http.request.url=="目标URL"
        3. 包含特定内容flag http contains "flag"
      7. 内容筛选
        1. contains检测协议中是否包含某字符串
        2. matches用正则表达式检测字符串
    2. 搜索(Ctrl + F)

      1. Wireshark的搜索功能支持正则表达式、字符串、十六进制等方式进行搜索,通常情况下直接使用字符串方式进行搜索。(图1)
      2. 搜索栏的左边下拉,有分组列表、分组详情、分组字节流三个选项,分别对应wireshark界面的三个部分,搜索时选择不同的选项以指定搜索区域(图2)
      3. 图3
    3. 还原(追踪流)

      1. 追踪流功能:将HTTP或TCP流量集合在一起并还原成原始数据
      2. 使用:选中想要还原的流量包,右键选中,选择追踪流 – TCP流/UPD流/SSL流/HTTP流,就可在弹出的窗口中看到被还原的流量信息
    4. 数据提取

      1. Wireshark支持提取通过http传输(上传/下载)的文件内容

      2. 方法:

        1. 文件->导出对象->HTTP(全自动提取)
        2. 选中http文件传输流量包,在分组详情中找到data,Line-based text, JPEG File Interchange Format, data:text/html层,鼠标右键点击 – 选中 导出分组字节流(手动提取)
        注:如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。鼠标右键点击 – 选中 显示分组字如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。鼠标右键点击 – 选中 显示分组字节,在弹出的窗口中设置开始和结束的字节(原字节数开头加3,结尾减3)最后点击Save as按钮导出。
  4. Tshark

    1. 抓包接口
      1. -i 设置抓包的网络接口,不设置则默认为第一个非自环接口
      2. -D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用tshark -D查看网络接口的编号以供-i参数使用
      3. -f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达式的写法雷同于tcpdump,可参考tcpdump man page的有关部分
      4. -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
      5. -p 设置网络接口以非混合模式工作,即只关心和本机有关的流量
      6. -B 设置内核缓冲区大小,仅对windows有效
      7. -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等
      8. -L 列出本机支持的数据链路层协议,供-y参数使用
    2. 停止抓包
      1. -c 抓取的packet数,在处理一定数量的packet后,停止抓取,程序退出
      2. -a 设置tshark抓包停止向文件书写的条件,事实上是tshark在正常启动之后停止工作并返回的条件。条件写为test:value的形式,如-a duration:5表示tshark启动后在5秒内抓包然后停止;-a filesize:10表示tshark在输出文件达到10kB后停止;-a files:n表示tshark在写满n个文件后停止。(windows版的tshark0.99.3用参数-a files:n不起作用——会有无数多个文件生成。由于-b参数有自己的files参数,所谓和-b的其它参数结合使用无从说起。这也许是一个bug,或tshark的man page的书写有误)
    3. 文件输出控制
      • -b 设置ring buffer文件参数。ring buffer的文件名由-w参数决定。-b参数采用test:value的形式书写。-b duration:5表示每5秒写下一个ring buffer文件;-b filesize:5表示每达到5kB写下一个ring buffer文件;-b files:7表示ring buffer文件最多7个,周而复始地使用,如果这个参数不设定,tshark会将磁盘写满为止
    4. 文件输入
      • -r 设置tshark分析的输入文件。tshark既可以抓取分析即时的网络流量,又可以分析dump在文件中的数据。-r不能是命名管道和标准输入
    5. 文件处理
      1. -R 设置读取(显示)过滤表达式(read filter expression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,具体请参考这个这个,类似于抓包过滤表达式,在命令行使用时最好将它们quote起来
      2. -n 禁止所有地址名字解析(默认为允许所有)
      3. -N 启用某一层的地址名字解析。m代表MAC层,n代表网络层,t代表传输层,C代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析
      4. -d 将指定的数据按有关协议解包输出。如要将tcp 8888端口的流量按http解包,应该写为-d tcp.port==8888,http。注意选择子和解包协议之间不能留空格
    6. 文件输出
      1. -w设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout。-w表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向>而不要-w参数
      2. -F 设置输出raw数据的格式,默认为libpcap。tshark -F会列出所有支持的raw格式
      3. -V 设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary
      4. -x 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据
      5. -T 设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text
      6. -t 设置解码结果的时间格式。ad表示带日期的绝对时间,a表示不带日期的绝对时间,r表示从第一个包到现在的相对时间,d表示两个相邻包之间的增量时间(delta)
      7. -S 在向raw文件输出的同时,将解码结果打印到控制台
      8. -l 在处理每个包时即时刷新输出
      9. -X 扩展项
      10. -q 设置安静的stdout输出(例如做统计时)
      11. -z 设置统计参数
    7. 其他
      1. -h 显示命令行帮助
      2. -v 显示tshark的版本信息
      3. -o 重载选项
    8. exp
      1. tshark -r 1.pcap –y tcp -T fields –e ** | **** > data,打开1.pcap文件,用tcp协议分析,用fields输出,
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!