目的:

根据所给的RFC参考文档熟悉CHAP协议流程以及加解密算法的细节,提取所捕获数据包中相应字段

开始抓包:

 

抓包镜像端口 抓包continuation_字段

 

 

抓包镜像端口 抓包continuation_TCP_02

 

 

抓包镜像端口 抓包continuation_抓包镜像端口_03

 

 

分析:

建立TCP连接

 

   PPTP控制层协议是建立在TCP协议的基础上,所以刚开始即使普通的TCP三次握手

 

抓包镜像端口 抓包continuation_字段_04

 

 

抓包镜像端口 抓包continuation_抓包镜像端口_05

 

 

1、  Client端向Server的1723端口发TCPSYN包,请求建立TCP连接。

 2、  Server接收TCP连接请求,回SYN ACK。

3、  Client端向Server发送确认包ACK

 PPTP控制连接和隧道的建立

在此过程,完成PPTP控制层连接和Gre隧道建立的工作

 

抓包镜像端口 抓包continuation_Server_06

 

 

抓包镜像端口 抓包continuation_Server_07

 

 

1、  Client向Server发送Start-Control-Connection-Request,请求建立控制连接

2、  Server向Client发送Start-Control-Connecton-Reply,应答客户端的请求

3、  Client向Server发送Outgoing-Call-Request,请求建立PPTP隧道,该消息包含GRE报头中的Callid,该id可唯一地标识一条隧道

4、  Server向Client发送Outgoing-Call-Reply,应答客户端的建立PPTP隧道请求

有Client或者Server任意一方发出Set-Link-info,设置PPP协商的选项

PPP协议的LCP协商

是PPP协议的链路控制协议,负责建立、拆除和监控数据链路。协商链路参数,如认证方法,压缩方法,是否回叫等。

抓包镜像端口 抓包continuation_TCP_08

1、  Client发送一个Configuration Request,把自己的配置参数发送给Server

2、Server发送一个Configuration Request,把自己的配置参数发送给Client,并向客户端发送ACK表示所有配置参数全部认识且可以接受

3、  Client发送一个Configuration Reject,将自己不能识别的参数告知Server,让Server进行修正

4、Server修改配置项后再次发送Configuration Request

5.Client发送一个Configuration Nak 表示所有LCP选项都可识别,但有些选项的值不可接受

6、Server修改配置项后再次发送Configuration Request

7、Client发送一个Configuration Ack,标示所有配置参数全部认识且可以接受

PPP协议的身份认证

LCP协商完成后,PPP协议的Server端会对Client端进行身份验证,在LCP协商中已经协商好身份验证协议,本文以MS-CHAP-2为例说明

 

抓包镜像端口 抓包continuation_字段_09

 

 

抓包镜像端口 抓包continuation_Server_10

、  Server向Client发送Challenge,其中包括一个Challenge string(value字段)和Server Name(pptpd)

、  Client向Server发送Response,其中用户名使用明文发送,密码(syberos)和Challenge字段混合hash后以密文(value字段)形式发送

、  Server读取密码文件,对用户身份进行验证,验证成功,向Client发送Success,表示身份验证成功