- 抓取ARP包
https://blog.csdn.net/u011416247/article/details/80866725
本实验使用的版本是wireshark2.4.7版,打开软件,选择“捕获”-“选项”。
选择当前连的网,一般选择流量“起起伏伏”的那个接口。
此时会有海量的数据包,为了便于分析,我们使用过滤器输入“arp”以筛选出arp报文。
选取以下的发送和接收的报文进行分析,arp一次请求由广播的请求报文和单播的应答报文组成,所以这一组报文的源MAC地址和目的MAC地址是对调的。可以看一下Info的信息很有意思,请求报文广播说“谁有192.168.1.1的mac地址?告诉192.168.1.12吧!”,响应的报文对请求的地址单播说“192.168.1.1的mac地址是98:13:33:69:ca:cd”。
下面的Address ResolutionProtocol就是arp协议,这个报文是请求包,因为目标的MAC地址是全0。
具体的字段解释如下,源IP是192.168.1.12,目的IP是192.168.1.1,但是不知道具体的目的地的mac地址。
以下是响应包的内容
它在响应包里面把mac地址补全,单播发给了源地址192.168.1.1。
ARP协议是工作在OSI模型里面的第二层数据链路层的协议,它的过程相对比较简单,但是确实一个很重要的协议,并且和网络层协议IP协议紧密配合一起工作。
- 抓取IP包
https://blog.csdn.net/u011416247/article/details/80867789
(首先声明一下我也是一名小白,初学wireshark没多久,我也很愿意和大家一起讨论wireshark的具体应用。)
本实验使用的版本是wireshark2.4.7版,选择“捕获”-“选项”。
选择当前连的网,一般选择流量“起起伏伏”的那个接口。
此时会有海量的数据包,为了便于分析,我们使用过滤器输入“ip.src==192.168.1.1”以筛选出源地址为192.168.1.1的报文。
双击点击一条tcp报文进入详细信息,为什么不选Protocol类型为IP的协议呢?答案是没有,tcp报文正是基于ip协议的,tcp是传输层协议,而ip是它底下的网络层协议。
如下图,框起来的部分是一个完整IPV4报文。
图A
具体字段含义如下图
图B
重点关注几个字段:
Version:4 这里指的是IPv4,两张图都是一样的。
Header Length:20 bytes:IPv4的首部是固定的,就是20字节。
Total Length:图A的是895图B的是60,代表IP报文总长度,报文总长度不能超过1500字节,否则需要分片。1500字节的限制是以太网在数据链路层带来的。IP数据部分最大长度1480,头部20字节。
Don’t fragment:图A为1表示不能被分割,图B为0表示可以。
More fragments:图A和图B 均为0,表示没有后一个分片。
Time to live:代表还剩余多少跳被丢弃,即还可以经过多少个路由器,两边都是64。设置该字段的目的在于防止网络环路。
Protocol:上层的协议,比如tcp,udp。
Source,Destination:源地址,目的地址。家里的网络一般是192.168开头的,这是一个典型的本地地址。
这里有一个有趣的现象,很多的包都是源地址是192.168.1.1目的地址是192.168.1.12,这是为什么呢?我们可以先进入cmd输入一个熟悉的指令ipconfig。
发现源地址192.168.1.1的含义为本地默认网关,也就是路由器在内网的地址,而目的地址192.168.1.12为本地计算机在内网的ip。说明这个包是路由器发到本机上的,这是我们访问互联网时时路由器从互联网上获得IP报文再发到本机上的过程。
- 抓取UDP包
https://blog.csdn.net/u011416247/article/details/80868133
(首先声明一下我也是一名小白,初学wireshark没多久,我也很愿意和大家一起讨论wireshark的具体应用。)
本实验使用的版本是wireshark2.4.7版,选择“捕获”-“选项”。
选择当前连的网,一般选择流量“起起伏伏”的那个接口。
此时会有海量的数据包,为了便于分析,我们使用过滤器输入“udp”以筛选出udp报文。但是为什么输入udp之后出现那么多种协议呢?原因就是oicq以及dns都是基于udp的传输层之上的协议。
双击上图中选中的报文,展看详细信息如下图。
各个字段的详细信息如下图。
UDP有着很广泛的应用场景。它的特点就像上面看到的很简单,没有流量控制以及差错重传等特点,作为传输层的协议常常被拿来和tcp协议比较。所以广泛应用于qq聊天,视频,网络电视,迅雷等场景。缺点就是容易丢包。
- 抓取FTP包
https://blog.csdn.net/u011416247/article/details/80872735
(首先声明一下我也是一名小白,初学wireshark没多久,我也很愿意和大家一起讨论wireshark的具体应用。)
本实验使用的版本是wireshark2.4.7版,选择“捕获”-“选项”。
选择当前连的网,一般选择流量“起起伏伏”的那个接口。
做ftp实验的第一个问题就是去哪里找一个ftp服务器,我在百度上找遍了所有的ftp服务器都不能用,没办法,只能自己动手搭一个了。
1.在win7上先开启ftp服务:这里Internet信息服务底下的三个包括子项全部需要勾选。点击确定后,可能会要等一会儿,完成后就可以使用FTP服务了。
2.打开 计算机--》管理--》 在这里我们可以看见刚刚添加的服务 (IIS)
3.创建一个ftp站点
4.点击添加FTP站点后,就是要继续的添加必要的站点信息,这里是:站点名称以及登录ftp后的站点指定目录(文件夹),点击下一步。
5.站点的地址就写自己的IP就好,端口21,是ftp控制信号的默认端口,(端口随意,尽量不要用已经被占用了的端口号)。SSL证书选无,有证书配置起来就很麻烦了。IP尽量配一个,用它推荐的那个吧,我的是192.168.1.4,不能自己随便设一个,这样会无法访问。
6.身份验证和授权勾选“基本“和”匿名“,匿名即采用用户名anonymous。允许所有用户访问。到这步一个ftp服务器就搭好了。
7.测试访问ftp服务器,在“计算机”里输入“ftp://192.168.1.4”由于有勾选匿名,访问的时候无需输入用户名密码,当然也可以在浏览器里面访问。然后可以测试读写。
8.要让别的机子访问ftp服务器,需要关闭防火墙,或者针对ftp相关端口设置允许通过的规则(默认为20,21)。
之后我在本地访问自己搭的ftp,出乎意料的是wireshark根本没有捕获到FTP数据包,这是为什么呢?查阅资料之后发现wireshark是捕获网卡的数据包,本地访问本地必然没有经过无线网卡。所以我找了一台本局域网上的机子访问该ftp,终于捕获到了ftp报文。
从上往下分析一个ftp访问的过程。下图是第一个包,表示ftp服务被访问。(220代表服务就绪)
下图表示用户登录的用户名和密码,使用匿名访问的。
下图表示匿名访问需要输入email,但是实际上刷新一下就进去了。
(331代表要求密码)
用IE代理访问ftp
用户登录了(230代表登录因特网)
CWD指令为更改访问目录,比如说点进去一个文件等。
CWD访问成功。(250代表文件行为完成)
访问文件的格式是ASCII(200代表成功)
FTP采用被动模式。
主动模式(PORT)
如下图所示,用户主机直接暴露在互联网中,用户连接FTP SERVER使用主动模式遵循以下一个过程:
用户主机一个随机端口连接FTP SERVER的TCP21端口进行协商;
用户主机告诉FTP SERVER,我的XXXX端口已经打开,你可以放心大胆的连过来;
然后FTP SERVER就用TCP20端口连接用户主机的XXXX端口,数据传输开始。
被动模式(PASV)
当用户主机前端多了一道防火墙(客户机使用地址转换接入互联网),事情就变的复杂了,首先,主动模式是FTP SERVER连接客户机,防火墙肯定不干;即便乐意干客户机与服务器协商的XXXX端口也是随机端口,你让迷茫的防火墙情何以堪,这时就需要客户端软件使用被动模式主动连接防火墙,这么一来正合防火墙的胃口。
客户端使用被动模式遵循以下过程:
首先用户使用随机端口连接FTP SERVER的TCP 21端口进行协商;
FTP SERVER告诉客户机:我的XXXX端口开放了,你连过来吧;
客户机使用一个随机端口连接FTPSERVER的XXXX端口传输数据。
(227代表进入被动模式)
列举该目录下的文件
开始传输文件,比如下载到本地。(125代表打开数据连接,开始传输)
传输完成。(226代表结束数据连接)
FTP协议概述
默认端口数据连接用20号端口,控制连接用21号端口。FTP协议的底层协议是TCP协议。此外它还需要安装dns服务。
FTP 命令:
1)访问控制命令:
用户名:USER
密码: PASS
账户: ACCT
改变工作目录: CWD
返回上层目录: CDUP
结构装备: SMNT
重新初始化: REIN
注销: QUIT
2)传输参数命令:
数据端口:PORT
被动: PASV
表示类型:TYPE
文件结构:STRU
F- 文件
R- 记录结构
P-页结构
传输模式:MODE
S-流
B-块
C-压缩
3)FTP服务命令:
获得:RETR
保存:STOR
唯一保存:STOU
追加:APPE
分配:ALLO
重新开始:REST
重命名开始:RNFR
重命名为:RNTO
放弃:ABOR
删除:DELE
删除目录:RMD
新建目录:MKD
打印工作目录:PWD
列表:LIST
名字列表:NLST
站点参数:SITE
系统:SYST
状态:STAT
帮助:HELP
空操作:NOOP
FTP响应:
FTP 响应由3 位数字组成(以3 个数字字符传递)后面跟着一些文本。3 位数字的每一位都有特定的意义。允许用户进程将复杂的响应简化。
第一位数字标识了响应是好,坏或者未完成。
1)响应的第一位数字可能有以下五个值:
1yz,预备状态
2yz,完成状态
3yz,中间状态
4yz,暂时拒绝状态
5yz,永久拒绝状态
2)下面为第二位数字的功能:
x0z 语法- 这种响应指出了语法错误。给出的命令不存在、没有被实现、或多余。
x1z 信息- 对于请求信息的响应,比如对状态或帮助的请求。
x2z 连接- 关于控制连接和数据连接的响应。
x3z 身份验证和帐户- 对登陆过程和帐户处理的响应。
x4z 目前还未使用。
x5z 文件系统- 请求传输时服务器文件系统的状态或其他文件系统动作状态。
3)第三位数字为第二位数字指定的状态提供了更详细的意义。
最小实现:
为了让FTP 能够不出错误的工作,服务器必需具备以下最小实现:
类型- ASCII 非打印
模式- 流模式
结构- 文件结构,记录结构
命令- USER, QUIT, PORT,TYPE, MODE, STRU,相应的默认值,RETR, STOR,NOOP.
传输参数的默认值为:
类型- ASCII 非打印
模式- 流模式
结构- 文件结构
所有主机必需接受上面这些标准的默认值。