0#3 wireshark分析应用层协议

第一层:应用层
这层直接和用户及其他的网络协议进行互动。
这一层的重点在于将数据通过用户可以理解的方式呈现给用户。
举例:

  1. HTTP:超文本传输协议
  2. FTP:文件传输协议
  3. SNMP:简单网络管理协议
  4. SMTP:简单邮件传输协议
  5. DNS:域名服务
    我使用的数据包为wireshark官方提供的学习数据包DNS.cap

0x00 DNS 域名协议

1. 简介

DNS 会用站点的IP和站点的域名来创建一个包含各个站点的数据库。
DNS 会使用 TCP 和 UDP ,他们的作用各不相同,但是默认使用的都是53号端口。
术语:
DNS query:客户端发送的请求
DNS reponse:DNS服务器上包含了客户端想要访问的站点所对应

2. DNS数据包的内容

  1. Transaction ID:交易ID,将一个域名ID或者响应消息和对应的响应消息对应起来
  2. Query/response:每个DNS数据包都会被标记为查询消息或者响应消息
  3. Flag bits:标记位置位标识消息为查询
    (1) Response:标识该消息为查询消息还是响应消息
    (2) Opcode:查询消息的类型(范围0~)
Opcode值                                                         描述
   0                                                           标准查询
   1                                                           逆向查询
   2                                                        服务器状态请求
   3                                                            未分配
   4                                                             通告
   5                                                             更新
  6~15                                                          未分配

(3) Truncated:数据包过大(>512B )是否截断
(4) Recursion desired:如果客户端查询的记录不存在
(5) Recursion available:这个比特位置位,表示客户端请求的递归是可用的。
(6) Reserved:RFC 1035中为了留给将来使用,这位必须是0

  1. Response code:这个字段的值决定了响应消息的类型。
code代码                                                          描述
   0                                                            没有错误
   1                                                            格式错误
   2                                                           服务器故障
   3                                                            域名错误
   4                                                             未使用
   5                                                              拒绝
  1. Questions:数据包中包含的查询数量
  2. Answers:表示对查询消息所作响应的数量
  3. Authority RRs:响应消息中授权资源记录的数量
  4. Additional RRs:响应消息中额外资源记录的数量
  5. Query section:发送给 DNS 服务器的查询消息,这个字段在接收到的响应消息中也
    应该是相同的取值。
  6. Answer section:对查询消息所作的响应
  7. Type:查询的类型
  类  型                                                                  描述
    A                                                                   主机记录
    NS                                                                 域名服务器
    MX                                                                  邮件交互
    SOA                                                                起始授权机构
    PTR                                                                  指针记录
    AAAA                                                                 IPv6地址
    AXFR                                                                 全量传输
    IXFR                                                                 增量传输
  1. Additional info:包含资源记录的额外信息


    DNS.png

0x01 FTP 文件传输协议

1. 简介

FTP 使用 TCP 协议通过一条指定信道来发起并传输文件
FTP 一共会创建两条信道:
一条命令信道:21端口
一条专门的数据传输信道:20端口(随机)
数据包来源:FTPv6-1.cap

2. 解析 FTP 的通信方式

客户端会用2类模式来与服务器通信

  1. 主动模式
    a. 利用 TCP 建立连接
    b. TFP连接成功,提示标语
    c. 输入帐号
    d. 输入密码
    。。。。。。
    f. 利用TCP断开连接
  2. 被动模式
    需要关闭被动模式,
    命令: EPRT |1|172.16.136.1|57197
    EPRT 网络协议、网络地址、端口号
    只要客户端尝试连接,连接的目的地址就必须是 EPRT 命令设置的拿个地址。
    而被动模式所有数据链路服务器都会想客户端通告要使用的临时端口。

3. 解析FTP的数据包

FTP.png

0x02 HTTP 超文本传输协议

HTTP 是在浏览器和服务器之间传输数据时,最为常用同时应用最广泛的协议。

1. 工作方式--请求/响应

利用 TCP 进行连接

请求消息

  1. 第一行:
    GET / HTTP/1.1
    GET: 请求
    / :资源所在目录(根目录)
    HTTP/1.1:协议
  2. 第二行:
    Host: www.ethereal.com
    主机地址
  3. 第三行:
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113
    User-Agent: 客户访问Web页面时,所使用的一些与浏览器有关的信息。
  4. 第四行:
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,/;q=0.1
    Accept: 请求方客户端会接受哪些类型的内容
  5. 第五行和第六行:
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Language 和 Accept-Encoding,其目的是为了向服务器通告客户端可以接受哪些类型的内容。
  6. 第七行:
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Accept-Charset:客户端支持的语言编码
  7. 第八行:
    Keep-Alive: 300
    Keep-Alive: 希望浏览器保持连接300秒
  8. 第九行:
    Connection: keep-alive
    Connection:会话保持连接
  9. 第十行:
    Referer: http://www.ethereal.com/development.html
    Referer:浏览器向 WEB 服务器表明自己是从哪个URL点击当前请求中的URL。

响应消息

  1. 第一行:
    HTTP/1.1 200 OK
    协议:HTTP/1.1
    状态编码:200 OK
  2. 第三行
    Server: Apache
    Server: web服务器的名称版本
  3. 第四行和第五行
    Last-Modified: Tue, 20 Apr 2004 13:17:00 GMT
    ETag: "9a01a-4696-7e354b00"
    Last-Modified:WEB 服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等。
    ETag:一个 html 文件,如果被修改了,其 Etag 也会别修改,所以ETag 的作用跟 Last-Modified 的作用差不多。
  4. 第五行
    Accept-Ranges: bytes
    Accept-Ranges:WEB服务器表明自己是否接受获取其某个实体的一部分(比如文件的一部分)的请求。bytes:表示接受,none:表示不接受
  5. 第六行
    Content-Length: 18070
    Content-Length:WEB 服务器告诉浏览器自己响应的对象的长度
  6. 第八和九行
    Keep-Alive: timeout=15, max=100
    Connection: Keep-Alive
    服务器希望保持连接。
    Content-Type: text/html; charset=ISO-8859-1

2. 显示内容

HTTP.png

0x03 SMTP 简单邮件传输协议

发送邮件的协议。(TCP,连接)
注:
大多数数据包是以C或S开头的。
C:从客户端发送的请求消息
S:服务器发送的响应消息,,
过程:

  1. 输入发送方和接收方的电子邮件地址
  2. DATA命令输入电子邮件的内容。

使用的数据包:
smtp.pcap
显示:

SMTP.png

0x04 VoIP 电话通讯服务协议

就是将模拟信号(Voice)数字化,以数据封包在IP Network上做实时传递。

子协议

有两个重要的子协议

  1. SIP 信令协议,他可以在网络中创建、管理并终结VoIP会话。(5060端口)
  2. RTP 实时传输协议,将模拟信号数字化后传输。

常用工具

  1. Statistics 菜单:对数据的数量的统计
  2. Telephony 菜单 :对数据流的重放

协议过程

三方:两个客户端(客户端1和客户端2)和一个电话通讯服务器

  1. (客户端1->服务器)客户端1发送一条Invite(邀请)消息,使用SIP发起会话
  2. (服务器->客户端2)中间的服务器把请求传输给客户端2
  3. (服务器->客户端1)使用 100 TRYING 进行确认
  4. (服务器->客户端1)
    如果客户端2开始响铃,发送给客户端 180RINGING 数据包
    如果客户端2接收呼叫,发送给客户端 200 OK 数据包
  5. (客户端1->服务器)发送一个ACK表示自己确认收到
  6. RTP/RTCP建立信道通信
  7. 完成后,发送一个bye数据包

演示

rtp.png

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容