pppoe验证失败:黑客攻防的PPPoE验证以及对其的利用

、前言 近年来网络数据业务发展迅速宽带用户呈爆炸式增长运营商在采用xDSLLANHFC无线等多种接入方式同时为了构建个可运营、可管理、可盈利宽带网络十分关心如何有效地完成用户管理PPPoE(PPP over Ethernet)就是随的出现多种认证技术中 1、PPP over Ethernet 1998年后期问世以太网上点对点协议(PPP over Ethernet)技术是由Redback 网络公司、客户端软件Software开发商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETF RFC制基础上联合开发通过把最经济局域网技术——以太网和点对点协议可扩展性及管理控制功能结合在网络服务提供商和电信运营商便可利用可靠和熟悉技术来加速部署高速互联网业务它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式提供支持多用户宽带接入服务时更加简便易行同时该技术亦简化了最终用户在动态地选择这些服务时操作 PPPoE 基于以太网点对点协议当前 PPPOE 主要被 ISP用于 xDSL 和 cable modems 和用户端连接他们几乎和以太网PPPoE 是种标准点对点协议 (PPP) 他们的间只是传输上差异:PPPoE 使用 modem 连接来代替普通以太网般来说 PPPoE 是基于和用户认证和通过分发 IP 地址给客户端个PPPoE连接由客户端和个访问集线服务器组成客户端可以是个安装了 PPPoE 协议windows电脑PPPoE 客户端和服务器能工作在任何以太网等级路由器接口 2、网通宽带接入方式 网通宽带接入方式通常都是LAN方式即所有用户都位于个大局域网中客户端要上网需要先使用相应账号进行PPPoE拨号通过验证的后获得公网IP然后才能上网 2、PPPoE验证过程 1、PPPoE验证过程 首先了解下PPPoE验证过程: 假如客户端要通过个局域网和远程PPPoE服务器进行身份验证这时它们会有两个区别会话阶段Discovery阶段和PPP会话阶段个客户端想开始个PPPoE会话时它必须首先进行发现阶段以识别对端以太网MAC地址并建立个PPPoESESSON_ID在发现阶段基于网络拓扑结构客户端可以发现多个PPPoE服务器然后从中选择不过通常都是选择反应最快Discovery阶段是个无状态阶段该阶段主要是选择接入服务器确定所要建立PPP会话标识符Session ID同时获得对方点到点连接信息;PPP会话阶段执行标准PPP过程当此阶段完成通信两端都知到PPPoESESSON_ID和对端以太网地址它们起定义了个唯PPPoE会话这些步骤包括客户端广播个发起分组(PASI)个或多个PPPoE服务器发送响应分组(PADO)客户端向选中服务器发送请求分组(PADR)选中PPPoE服务器发送个确认分组(PADS)给客户端当客户端接收到确认分组它可以开始进行PPP会话阶段当PPPoE服务器发送出确认分组它可以开始PPP会话当客户端在指定时间内没有接收到PADO它应该重新发送它PADI分组并且加倍等待时间这个过程会被重复期望次数如果客户端正等待接收PADS应该使用具有客户端重新发送PADR相似超时机制在重试指定次数后主机应该重新发送PADI分组PPPOE还有个PADT分组它可以在会话建立后任何时候发送来终止PPPOE会话它可以由客户端或者PPPOE服务器发送当接收到个PADT不再允许使用这个会话来发送PPP业务在发送或接收PADT后即正常PPP不能使用时可以使用PADT旦PPPOE会话开始PPP数据就可以以任何其它PPP封装形式发送所有以太网帧都是单播身份验证是发生在会话阶段PPPoE会话SESSION_ID定不能改变并且必须是发现阶段分配 2、PPP over Ethernet基本帧格式 建立个以太网上点对点协议会话包括两个阶段:1发现(Discovery)阶段在Discovery过程中用户主机以广播方式寻找可以连接所有接入集线器并获得其以太网MAC地址然后选择需要连接主机并确定所要建立PPP会话识别标号2PPP会话阶段用户主机和接入集线器根据在发现阶段所协商PPP会话连接参数进行PPP会话因此对应于这两种过程以太网上点对点协议帧格式(如图2)也包括两种类型:发现阶段以太网帧中类型字段为0x8863;PPP会话阶段以太网帧中类型字段为0x8864它们均已得到IEEE认可PPPoE包中版本(VER) 字段和类型(TYPE)字段长度均为4比特在当前版本PPPoE建议中这两个字段值都固定为0x1代码(CODE)字段长度为8比特根据两阶段中各种数据包区别功能而值区别在PPP会话阶段CODE字段为0x00发现阶段中各种数据包格式将在下面详细介绍发现阶段时给出版本标识号码(SESSION_ID)字段长度为16比特个给定PPP会话过程中它是固定不变值0xffffff为保留值长度(LENGTH)字段为16比特长指示PPPoE净荷长度发现阶段PPPoE载荷可以为空或由多个标记(TAG)组成每个标记都是TLV(类型-长度-值)结构;PPP会话阶段PPPoE载荷为标准点对点协议包 3、发现(Discovery)阶段详细介绍 个典型发现(Discovery)阶段共包括4个步骤: 1、主机发出PPPoE有效发现启动(PADI)包以太网目地址为广播地址0xffffffffffff CODE字段为0x09SESSION_ID为0x0000PADI包必须至少包含个服务名称类型标签(标签类型字段为0x0101)向接入集线器提出所要求提供服务 2、接入集线器收到在服务范围内PADI包后发送PPPoE有效发现提供(PADO)包以响应请求其CODE字段为0x07SESSION_ID仍为0x0000PADO包必须包含个接入集线器名称类型标签(标签类型字段为0x0102)以及个或多个服务名称类型标签表明可向主机提供服务种类 3、主机在可能收到多个PADO包中选择个合适然后向所选择接入集线器发送PPPoE有效发现请求(PADR)包其CODE字段为0x19SESSION_ID仍为0x0000PADR包必须包个服务名称类型标签确定向接入集线器请求服务种类 4、接入集线器收到PADR包后准备开始PPP会话它发送个PPPoE有效发现会话确认(PADS)包其CODE字段为0x65SESSION_ID为接入集线器所产生个唯PPPoE会话标识号码PADS包也必须包含个接入集线器名称类型标签确认向主机提供服务当主机收到PADS包确认后双方就进入PPP会话阶段   3、PPPoE验证利用 从上面过程我们需要注意两点:发现阶段是广播方式进行会话阶段是单播;客户端通常选择反应最PPPOE服务器进行身份验证和接入什么是反应快?我们可以理解成客户端将和最近PPPOE服务器进行身份验证 利用思路:这就是今天要说关键如果我们架设个PPPOE服务器那么和我们同交换机或集线器(通常是个楼层)用户都将会选择这个服务器进行接入和身份验证而不会去寻找远方PPPOE服务器 下面说下利用过程: 1、架设PPPOE服务器架设PPPOE服务器原作者是利用Windows Server2003“路由和远程访问”服务来架设然后安装PPPoE驱动这样使得路由和远程访问服务增加了PPPOE服务当然也可使用Linux系统网上有篇有关Linux+PPPoE服务器文章 2、将PPPOE身份验证设为未加密方式(具体情况还得取决和PPPOE服务器)不用多说这主要是为了方便明文嗅探 3、使用Snfer进行嗅探



  • 篇文章: 利用HTTP指令进行攻击——Cache篇

  • 篇文章: 简析网络安全中人为恶意攻击和漏洞
  • Tags:  黑客攻防技术 黑客攻防 pppoe身份验证失败 pppoe验证失败

    延伸阅读

    最新评论

    发表评论