0x01 wireshare简介
wireshark是一款网络流量抓取分析工具,也是安全工具使用排行中排名第一的工具。使用wireshark必须要能正确使用一些常用的数据包过滤规则,对于寻找一些特定的包会事半功倍。它的基本原理是通过程序将网卡的工作模式设置为“混杂模式”,这时网卡将接受所有流经它的数据帧,这实际上就是Sniffer工作的基本原理:让网卡接收一切他所能接收的数据。Sniffer就是一种能将本地网卡状态设成混杂状态的软件,当网卡处于这种”混杂”方式时,该网卡具备”广播地址”,它对所有遇到的每一个数据帧都 产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
0x2 过滤器分类
Wireshark提供了两种过滤器:捕获过滤器、显示过滤器
-
捕获过滤器:在抓包之前设定好过滤条件,只抓取符合条件的数据包。如在企业出口通过端口镜像抓包流量太大会导致wireshark卡死或者笔记本电脑直接死机,这时就可以使用捕获过滤器只抓取指定ip地址或者端口的流量。
-
显示过滤器:在捕获到数据包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包。
ps:这两种过滤器所使用的语法是完全不同的,捕捉网卡数据的其实并不是Wireshark而是WinPcap,当然要按WinPcap的规则来,显示过滤器就是Wireshark对已捕捉的数据进行筛选。
0x03 捕获过滤器简单使用
捕获过滤器语法:
<Protocol> <Direction> <Host(s)> < Value> < Logical Operations> <Other expression>
Protocol(协议): ether,fddi, ip,arp,rarp,decnet,lat, sca,moprc,mopdl, tcp , udp 等,如果没指明协议类型,则默认为捕捉所有支持的协议;
Direction(方向):src, dst,src and dst, src or dst等,如果没指明方向,则默认使用 “src or dst” 作为关键字;
Host(s): net, port, host, portrange等,默认使用”host”关键字,”src 10.1.1.1″与”src host 10.1.1.1″等价;
Logical Operations(逻辑运算):not, and, or 等,否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行;
指定源目的地址
host 10.255.4.148
指定目标地址的数据包
dst host 10.255.4.148
指定源地址的数据包
src host 10.255.4.148
指定源、目地址
src host 192.168.1.1 and dst host 10.255.4.148
获取主机192.168.1.1除了和主机192.168.1.2之外所有主机通信的数据包
host 192.168.1.1 and ! 192.168.1.2
获取主机192.168.1.1接收或发出的telnet包,telnet使用tcp 23端口
tcp port 23 and host 192.168.1.1
tcp.port==23&&ip.addr==192.168.1.1
0x04 显示过滤器简单使用
显示包含指定地址的数据
ip.addr == 192.168.1.1
显示指定源地址
ip.src == 192.168.1.17
显示指定目的地址
ip.dst == 192.168.1.17
显示指定tcp端口
tcp.port == 23
显示指定目的地址和协议
ip.dst == 192.168.1.17 and telnet
显示指定端口间的通信
tcp.port == 23 and tcp.port ==16344
指定源\目的端口
tcp.srcport == 23 and tcp.dstport == 16344
显示GET请求的数据
http.request.method == GET