PPPOE验证缺陷所带来的危害
作者:黑侠(Black Mask)
来源:Black Mask'blog
文章已表在黑客X档案2007年第一期,转载请注明!
随着网络技术的高速发展,不同接入方式也因此步入我们的生活当时,从中最为普遍的两种接入方式为ADSL接入和FTTx+LAN接入方式,ADSL即非对称数字用户线路,是一种通过普通电话线和ADSL MODEM虚拟拨号到远程ISP的PPPOE服务器,从PPPOE服务器上获取一个动态的IP地址来上网的,而另一种FTTx+LAN接入方式是通过光纤到一个小区的中心交换机,小区里的用户是不需要通过ADSL MODEM,而是直接连接到楼层的交换机上,进行虚拟拨号到远程ISP的PPPOE服务器,进行上网,这也就是人们常说的小区宽带了。在小区宽带里我们可以利用PPPOE验证的缺陷来盗获别人的帐号和密码。
首先,我们先来简单了解一下PPPOE验证的大概过程(详细的大家可以上网搜索)。假如在小区宽带(相当于一个局域网里)某一客户端要与远程的 PPPOE服务进行身份验证,PPPOE会话由发现阶段和PPP阶段这两种阶段组成,当一个客户端想开始一个PPPoE会话时,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPoE会话ID。在发现阶段,是基于网络的拓扑,客户端可以发现多个PPPoE服务器。并且在发现阶段允许客户端找到所有的PPPoE服务器,然后可以从中选择一个,不过通常都是选择反应最快的一个,这与DHCP发现过程是不是很类似?当发现阶段成功完成,客户端和它选择的PPPoE服务器都有了它们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的状态。一旦PPP会话建立,客户端和PPPoE服务器都必须为PPP虚拟接口分配IP资源。
由于PPPOE验证并不是一定要验证到电信或网通的PPPOE服务器上的,而是通过广播方式寻找最近的PPPOE服务器进行身份验证,这正因为这一点,我们可以在本地架设一个PPPOE服务器,那么我们这个小区里,只要在同一个交换机上的用户,恐怕都要验证到我的电脑上来了,我就不是可以轻松地获取到他们帐号和密码了,哈哈哈。下面我通过 RASPPPOE_099和windows server 2003的路由与远程访问功能可以实现一台真正的PPPOE服务器。
架设PPPOE服务器
首先,我们需要一款叫 RASPPPOE_99的软件,事先要解压缩到桌面,(无论解压缩到那里都没有关系)这是一款能将本机设置成一台PPPOE 服务器的软件,先将软件安装好,打开“本地连接”的属性,点击“安装”,再选择“协议”,然后再点击“添加”,再单击“从磁盘安装”,如图1
选择好 RASPPPOE_99所在目录,点击“确定”,会自动弹出一个选择网络协议的对话框,将里面的 “ppp over Ethernet protocol”选中,如图2
最后点击“确定”,待安装完成后,在“本地连接”的属性里会多出一个 ppp over Ethernet protocol的选项,确定。如图3
然后自己先拨号上网,再选择TCP/IP属性,给本机设置一个IP地址: 192.168.0.4 255.255.255.0,DNS一定要设置,(DNS根据自己当前拨号上网的电信或网通的DNS,可以在CMD中用 IPCONFIG/ALL查询)其他为空!
到这里我们的电脑已经是一台PPPOE的服务器了,但是我们还需要另外一个功能,也就是Windows server 2003路由与远程访问功能的辅助。
打开“管理工具”中运行“路由与远程访问”管理单元,然后在窗口中右击XTAFLF-KYJX17IB(本地)图标(注:XTAFLF- KYJX17IB是计算机名)选择“配置并启用路由与远程访问”,在安装向导里点击“下一步”选中“远程访问(拨号或VPN)”,再“下一步”,选中“拨号”如图4,再“下一步”,选中“来自一个指定的地址范围”,
“下一步”,新建一个IP地址的范围:192.168.0.5-192.168.0.253,确定,再“下一步”选中“否,使用路由和远程访问来对连接进行身份验证”,再“下一步”
最后点击“完成”,会弹出一个远程路由访问的对话框,你再点击“确定”,好,这里路由和远程访问就开始启用了。
再右击XTAFLF-KYJX17IB(本地)图标选“属性”,点击“安全”再单击“身份验证方法”在“不加密的密码(PAP)”前打“勾”,将其他的勾全部去掉,确定。如图6
再点击“远程访问策略”,右击右面的“到Microsoft路由选择和远程访问服务器的连接”选“属性”再选中“授予远程访问权限”,然后再点击“编辑配置文件”,切换到“身价验证”,只要在“未加密的身份验证”,前打“勾”,其他全部为空。确定,再切换到加密,在里面选中无加密,如图7,
会弹出一个帮助主题,大家点“否”就可以了,再回到“远程访问策略”,再右击“到其他访问服务器的连接”的属性,设置和刚才“到Microsoft路由选择和远程访问服务器的连接”是一样的。再点击“远程访问记录”右击“本地文件”选属性,将设置里面的三个记录选项全部打上勾,这样系统会自动记录当前在拨号的用户,记录下来的文件会保存在c:\windows\system32\ LogFiles\以IN时间命名.log的文件中,(注:如果此时没有人在拨号的话,是不会生成IN时间命名.log,文件里记录的内容只有拨号的帐号,要想得以密码要进一步地去监听),看,文件生成了,打开它,如图8,有一个用户已经拨号了,那么赶快开始监听。
经过上面的一系列设置,现在我们可以开始监听人家的宽带帐号和密码,好,跟我来。打开监听软件ethereal(先要安装.双击WinPcap驱动,再安装 ethereal),点击“Capture”选“start”,里面的设置都默认好了,不用去更改它,再点OK。如图9
接下来的工作就交给ethereal,我们就等着鱼儿上钩好了。不一会,就监听到好多数据包了,点“Stop”,来看看抓到帐号、密码没,如图10
(注:图中的帐号是jxlan222996,中间那个空格不算的)。
一共监听到4个帐号:jxlan224990 202196*
jxl.206095112 33209*
jxlan229198 202631*
jxlan222996 2296
(可能今天大伙都去上班了,没几个人在家里上网吧)
此时人家的电脑拨号是成功不了的,总会提示是691错误,也就是用户名或密码不正常。时间一长,很容易被人发现,如果他们打电话到电信去,电信里的人来查的话,那么就完蛋了,所以这里我们应该想办法能使他能够拨号成功,以进一步地去入侵、监听他电脑上其他密码等。那么继续往下看吧。
局域网大入侵
首先,右击“我的电脑”选“管理”再到“本地用户”,新建一个用户名为:jxlan 229198,密码:202631的帐号,再设置 jxlan229198用户的属性,在“拨入”选中“通过远程策略控制访问”然后确定。陆续将其它的三个帐号都添加进去,也做相同的设置。那么此时,对方的电脑就能成功拨号了,也是可以上网,只是我和对方在一个局域网里,并且对方的电脑是通过我的电脑做网关在上网的。然后我们再回到路由和远程访问中,点击一下“远程访问客户端”已经有一台名jxlan229198主机了哦,双击这台主机,我们就可以看到DHCP所分给它的IP地址为 192.168.0.7,如图11,再来PING一下,如图12。
嘿嘿,此时再来开个Sniffer来监听对方其他的一些帐号和密码,如图13、14看,192.168.0.7正在进入126.com的邮箱呢。用户名: xtaflf88可惜密码是加密的!192.168.0.8这台正登录QQ呢,不过QQ的传输是加密的,我们监听不到明文。
不过没关系大家可以继续监听,一定能拿到有用的密码的,至于入侵对方的话,相对来说是已经容易多了,因为已经在一个局域网了(入侵局域网的方法,先用扫描工具扫描一下,以得到的信息做进一步的入侵,也可以参考第10期里的《利用DNS欺骗在局域网中挂马》的文章)。
这个方法的危害性太大,希望大家在测试的时候,小心慎重,切记!
楼主你太厉害了!!