1.简介
Wireshark(前称Ethereal)是一个免费开源的网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。
2.入门
- 下载wireshark。戳这里,下载可能会有点慢(
原因大家应该知道)。 - 界面简介。wireshark界面主要分为过滤器、包列表(不同的颜色代表不同的协议包)、包详细信息、16进制数据和地址栏等,他们的位置如图所示。
- 在使用wireshark抓包时,我们会一下子得到一堆的包,从而很难找到我们想要的包。这时候过滤器就派上了用场。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。过滤器有两种。一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录;一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。
- 一些过滤表达式的规则(
只列出了我知道的)。- 协议过滤。比如TCP,则只显示TCP的包。如图只显示了TCP协议的包(HTTP使用的是TCP协议)。
- IP过滤。比如 ip.src == 192.168.111.1 显示源地址为 192.168.111.1的包;ip.dst ==192.168.1.112, 目标地址为192.168.1.112。例子如图。
- 端口过滤。tcp.port ==80(源端口或者目的端口是80), 端口为80的包;tcp.srcport ==80, 只显示TCP协议的原端口为80的。例子如图。
- Http模式过滤。http.request.method==“GET”, 只显示HTTP GET方法的。(有关post和get这里就不讲了,大家百度一下吧)。列子图片如下。
- 组合过滤条件(我也不知道该叫什么)。可以用and(&&)、or(||)组合过滤条件。就和C中的差不多。如http.request.method==“GET” && ip.src==192.168.1.112,筛选get和原IP为192.168.1.112的包。例子如图。
- 协议过滤。比如TCP,则只显示TCP的包。如图只显示了TCP协议的包(HTTP使用的是TCP协议)。
3.简单应用
下面通过抓取简单登陆页面的账号和密码来实战一下(以抓取4399小游戏的登陆账号和密码为例)。一下只是个人见解,可能还有更好的方法。
- 开启wireshark抓包。
- 进入登陆界面随便输入账号和密码(我输入的账号和密码都是123456789)。
- 一般账号和密码提交都是POST方法(Get方法会把信息暴露在地址栏中)。然后tcp连接时会有三次握手。
- 找到一个可疑的包,这里源地址和目的地址差不多的意思是源地址就是本机,目的地址在三次握手和发送HTTP报文时没变。
- 查看包内容,正是我们要找的包。
4.总结
- 如有错误恳请指出。
- 抓包得靠自己实战,多摸索。
- 与君共勉。