File 打开文件
Open 打开文件
Open Recent 打开近期访问过的文件
Merge… 将几个文件合并为一个文件
Close 关闭此文件
Save As… 保存为…
File Set 文件属性
Export 文件输出
Print… 打印输出
Quit 关闭
Edit 编辑
Find Packet… 搜索数据包
Find Next 搜索下一个
Find Previous 搜索前一个
Mark Packet (toggle) 对数据包做标记(标定)
Find Next Mark 搜索下一个标记的包
Find Previous Mark 搜索前一个标记的包
Mark All Packets 对所有包做标记
Unmark All Packets 去除所有包的标记
Set Time Reference (toggle) 设置参考时间 (标定)
Find Next Reference 搜索下一个参考点
Find Previous Reference 搜索前一个参考点
Preferences 参数选择
View 视图
Main Toolbar 主工具栏
Filter Toolbar 过滤器工具栏
Wireless Toolbar 无线工具栏
Statusbar 运行状况工具栏
Packet List 数据包列表
Packet Details 数据包细节
Packet Bytes 数据包字节
Time Display Format 时间显示格式
Name resolution 名字解析(转换:域名/IP地址,厂商名/MAC地址,端口号/端口名)
Colorize Packet List 颜色标识的数据包列表
Auto Scroll in Live Capture 现场捕获时实时滚动
Zoom In 放大显示
Zoom Out 缩小显示
Normal Size 正常大小
Resize All Columns 改变所有列大小
Expand Sub trees 扩展开数据包内封装协议的子树结构
Expand All 全部扩展开
Collapse All 全部折叠收缩
Coloring Rules… 对不同类型的数据包用不同颜色标识的规则
Show Packet in New Window 将数据包显示在一个新的窗口
Reload 将数据文件重新加
Go 运行
Back 向后运行
Forward 向前运行
Go to packet… 转移到某数据包
Go to Corresponding Packet 转到相应的数据包
Previous Packet 前一个数据包
Next Packet 下一个数据包
First Packet 第一个数据包
Last Packet 最后一个数据包
Capture 捕获网络数据
Interfaces… 选择本机的网络接口进行数据捕获
Options… 捕获参数选择
Start 开始捕获网络数据
Stop 停止捕获网络数据
Restart 重新开始捕获
Capture Filters… 选择捕获过滤器
Analyze 对已捕获的网络数据进行分析
Display Filters… 选择显示过滤器
Apply as Filter 将其应用为过滤器
Prepare a Filter 设计一个过滤器
Firewall ACL Rules 防火墙ACL规则
Enabled Protocols… 已可以分析的协议列表
Decode As… 将网络数据按某协议规则解码
User Specified Decodes… 用户自定义的解码规则
Follow TCP Stream 跟踪TCP传输控制协议的通信数据段,将分散传输的数据组装还原
Follow SSL stream 跟踪SSL 安全套接层协议的通信数据流
Expert Info 专家分析信息
Expert Info Composite 构造专家分析信息
Statistics对已捕获的网络数据进行统计分析
Summary 已捕获数据文件的总统计概况
Protocol Hierarchy 数据中的协议类型和层次结构
Conversations 会话
Endpoints 定义统计分析的结束点
IO Graphs 输入/输出数据流量图
Conversation List 会话列表
Endpoint List 统计分析结束点的列表
Service Response Time 从客户端发出请求至收到服务器响应的时间间隔
ANSI 按照美国国家标准协会的ANSI协议分析
Fax T38 Analysis... 按照T38传真规范进行分析
GSM 全球移动通信系统GSM的数据
H.225 H.225协议的数据
MTP3 MTP3协议的数据
RTP 实时传输协议RTP的数据
SCTP 数据流控制传输协议SCTP的数据
SIP... 会话初始化协议SIP的数据
VoIP Calls 互联网IP电话的数据
WAP-WSP 无线应用协议WAP和WSP的数据
BOOTP-DHCP 引导协议和动态主机配置协议的数据
Destinations… 通信目的端
Flow Graph… 网络通信流向图
HTTP 超文本传输协议的数据
IP address… 互联网IP地址
ISUP Messages… ISUP协议的报文
Multicast Streams 多播数据流
ONC-RPC Programs
Packet Length 数据包的长度
Port Type… 传输层通信端口类型
TCP Stream Graph 传输控制协议TCP数据流波形图
Help 帮助
Contents Wireshark 使用手册
Supported Protocols Wireshark支持的协议清单
Manual Pages 使用手册(HTML网页)
Wireshark Online Wireshark 在线
About Wireshark 关于Wireshark
打开Wireshark的界面如下图:
单击工具栏中左边第一个按钮,弹出如下图的窗口:
选择NDIS5.0 driver,点击Start起动Wireshark,界面如下图所示:
现在我们就可以捕获网络上的数据帧了。现在我们可以做如下操作:
(一)运行->cmd->ping swfc.edu.cn
(二)用IE打开网页:http://cs2.swfc.edu.cn
(三)登录一个FTP服务器
至此,可以点Stop按钮停止Wireshark的抓捕工作。得到如下图所示的结束,刚才被捕获的数据帧全部在这了。。
以下来分析数据帧和数据包
捕 获的数据含义如下:第一列是捕获数据的编号;第二列是捕获数据的相对时间,从开始捕获算为0.000秒;第三列是源地址,第四列是目的地址;第五列是协议 信息;第六列是数据包的信息。为了避免因操作失误导致数据丢失,我们可以先将捕获的数据保存起来(选择file->save命令)。
以太网的帧格式:
ARP协议封装在以太网中的格式:
分析ARP封装在以太网数据帧中
在下图中Filter后面的编辑框中输入:arp(注意是小写),然后回车或者点击“Apply”按钮。如下图:
现在只有ARP协议了。其他的协议数据包都被过滤掉了。选中一个数据帧,然后从整体上Wireshark的窗口,主要被分成三部分:上面部分是所有数据帧的列表;中间部分是数据帧的描述信息;下面部分是帧里面的数据。
中间部分的三行前面都有一个“+”,点击它,这一行就会被展开。现在展开第一行。看到的结果如下:
在上图中我们看到这个帧的一些基本信息:
帧的编号:336(捕获时的编号)
帧的大小:60字节。(以太网的帧最小个字节,而这里只有60个字节,应该是没有把四个字节的CRC计算在里面,加上它就刚好。)
帧被捕获的日期和时间:NOV 30,2006……
帧距离前一个帧的捕获时间差:0.13469……
帧距离第一个帧的捕获时间差:79.8821……
帧装载的协议:ARP
下面看第二行:
在上图中,我们在上面一栏每选到一部分,在下面一栏就会显示对应的数据部分。我们可以看到:
目的地址(Destination):ff:ff:ff:ff:ff:ff (这是个MAC地址,这个MAC地址是一个广播地址,就是局域网中的所有计算机都会接收这个数据帧)
源地址(Source):Draytek_31:54:ab (00:50:7f:31:54:ab),那么我们知道,00:50:7f是以太网网卡厂商Draytek拥有的一个以太网地址块。
帧中封装的协议类型:0x0806,(这个是ARP协议的类型编号。)
Trailer:是协议中填充的数据,为了保证帧最少有字节。
接下来展开第三行,结果如下:
在上图中,我们可以看到如下信息:
硬件类型(Hardware type):Ethernet(0X0001)
协议类型(Protocol type): IP(0X0800)
硬件信息在帧中占的字节数(Hardware size):6
协议信息在帧中占的字节数(Protocol size):4
操作码(opcode):requset(0X0001)
发送方的MAC地址(Sender MAC address):Draytek_31:54:ab (00:50:7f:31:54:ab)
发送方的IP地址(Sender IP address):192.168.128.1(192.168.128.1)
目标的MAC地址(Sender MAC address):Draytek_31:54:ab (00:50:7f:31:54:ab)
目标的IP地址(Sender IP address):192.168.128.1(192.168.128.1)
类似的,我们也可以看FTP及HTTP封装在以太网数据帧中。(见下面的图示)仔细看一看,居然能在数据帧里看到你登录FTP服务器的用户名和密码(jkxjxxz swfcxs)。原来,这个也是窃取密码的一个途径!(现在你知道你的QQ密码为什么会丢失了吧?!)。
图: FTP封装在以太网数据帧中
2008-07-15 22:51
结构e t h e r _ h e a d e r定义了以太网帧首部;结构a r p h d r定义了其后的5个字段,其信息
用于在任何类型的介质上传送A R P请求和回答; e t h e r _ a r p结构除了包含a r p h d r结构外,
还包含源主机和目的主机的地址。
定义常量
#define EPT_IP 0x0800 /* type: IP */
#define EPT_ARP 0x0806 /* type: ARP */
#define EPT_RARP 0x8035 /* type: RARP */
#define ARP_HARDWARE 0x0001 /* Dummy type for 802.3 frames */
#define ARP_REQUEST 0x0001 /* ARP request */
#define ARP_REPLY 0x0002 /* ARP reply */
定义以太网首部
typedef struct ehhdr
{
unsigned char eh_dst[6]; /* destination ethernet addrress */
unsigned char eh_src[6]; /* source ethernet addresss */
unsigned short eh_type; /* ethernet pachet type */
}EHHDR, *PEHHDR;
定义以太网arp字段
typedef struct arphdr
{
//arp首部
unsigned short arp_hrd; /* format of hardware address */
unsigned short arp_pro; /* format of protocol address */
unsigned char arp_hln; /* length of hardware address */
unsigned char arp_pln; /* length of protocol address */
unsigned short arp_op; /* ARP/RARP operation */
unsigned char arp_sha[6]; /* sender hardware address */
unsigned long arp_spa; /* sender protocol address */
unsigned char arp_tha[6]; /* target hardware address */
unsigned long arp_tpa; /* target protocol address */
}ARPHDR, *PARPHDR;
定义整个arp报文包,总长度42字节
typedef struct arpPacket
{
EHHDR ehhdr;
ARPHDR arphdr;
} ARPPACKET, *PARPPACKET;
实例分析下,先看一个请求包
我把原始数据考了过来
0000 ff ff ff ff ff ff 00 0c f1 d4 d9 60 08 06 00 01 ...........`....
0010 08 00 06 04 00 01 00 0c f1 d4 d9 60 c0 a8 01 0f ...........`....
0020 00 00 00 00 00 00 c0 a8 01 02 ..........
根据定义
头6个字节是以太网目的地址 ff ff ff ff ff ff 这是一个广播地址,全网下的所有终端都能接受到
紧跟着的6个字节是以太网源地址就是发送者的mac地址 00 0c f1 d4 d9 60 是我的mac地址
真类型占两个字节 所以是 08 06 到这里以太网头就完了,08 06指的是后面的数据是属于arp包的
接着分析arp包。头两个字节是硬件类型 00 01 接着两个字节是协议类型arp使用的是ip协议代号08 00
硬件地址长度协议地址长度分别是6和4.这与arp报文格式是对应的(更详细信息可以参考TCP-IP详解卷1)
后面的2个字节op指的是这是一个请求包还是应答包,分别对应的值是0x0001和0x0002,原始数据里是
00 01 所以这是一个请求包,然后6个字节又是发送者mac地址00 0c f1 d4 d9 60 ,后面4个字节是发送者ip
地址c0 a8 01 0f ,换成比较容易理解的10进制格式就是192 168 1 15,这是我的ip,然后的6个字节留空00
00 00 00 00 00 在arp请求包里也可以是其他数据 因为等会 ip地址为c0 a8 01 02 (192.168.1.2)会把自己的mac地址填充那6个字节,
填充完后,arp包里的 发送者硬件地址|目标硬件地址 和 以太网首部的
以太网目的地址|以太网源地址 对调(我把他们对齐了就是上下两个地址对调)
然后在把这个包发送出去,这样一次来回就可以让两台终端互相知道对方的ip和mac。
接着在看下应答数据包
头6个字节是本地的mac地址(00 0c f1 d4 d9 60)。
接着的6个字节就是对方的mac地址(00 40 d0 92 7c 1f),这样就知道了对方地址。加进缓存表
仔细看可以发现应答包比请求包对了18个字节,应答包有60个字节,后面的18个字节是填充字节,构造应答包是不用管,只是把arp包的op(操作类型选择)填充0x0002就可以了
未完待续......
......
继续分析下arp欺骗,这几天的研究成果。
先构造下网络环境 网关:192.168.1.1 mac: aa aa aa aa aa
主机B:192.168.1.2 mac:bb bb bb bb bb 主机c:192.168.1.15 cc cc cc cc cc(破坏者)
arp欺骗有3种基本方式 1. 主机C冒充网关欺骗主机B,
2. 主机c冒充主机B欺骗网关。
3.主机C同时欺骗主机B和网关,实现数据中转,并监听到所有主机B的数据)
详细信息参考收藏的另几篇文章,有详细说明。
在 |