用ubuntu抓取PPPoE帐号和密码

家里有一个TP-Link TL-WR842N的路由器。想知道里面配置的PPPoE的密码。用了以下方案仍然没有成功获得密码。

  1. 查看网页源代码。有的路由器管理页面使用密码的,只是隐藏了。这时可以右击查看源代码的方式,然后搜索“Password”关键字,查看源代码。但我这里是失败的,页面里没有密码。

2.将配置备份出来,然后用软件解密配置。比如“routerpassview”,可以解密很多路由器的配置。这也失败了,当前还不支持这个路由器。

这两种方法都不可行,只能通过抓包的方式获得密码了。

首先参考了这个方式:http://bbs.ednchina.com/BLOG_ARTICLE_833303.HTM

数据包虽然抓到了,但是由于XP里面的PPPoE不是通过PAP认证的,所以没办法看出密码。关于PPPoE的认证方式可以参考:http://baike.baidu.com/view/3246.htm

我就考虑在Linux下面搭一个PPPoE Server,让它只支持PAP认证方式。

下面是详细过程。

 

1.安装PPPoE软件。

sudo apt-get install pppoe -y

为了分析抓到的数据包,再安装wireshark。

sudo apt-get install wireshark

2.编辑配置文件:/etc/ppp/pppoe-server-options。没有这个文件,就新建一个。从网上找了配置文件。

PPP options for the PPPoE server

LIC: GPL

require-pap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 10.0.0.5
ms-dns 10.0.0.6
plugin radius.so

然后编辑 :/etc/ppp/pap-secrets。由于我们只是测试,随便添一个帐号就可以了。可以在文件最后加一行。

pppoetest testpassword

另外修改:/etc/ppp/options。将 -pap改成 +pap。将 +chap 改成 -chap。

这样配置后,PPPoE验证就会通过PAP的方式,就可以抓密码了。

3.最后启动PPPoE server。

/usr/sbin/pppoe-server -I eth0 -L 10.0.0.1 -R 10.0.0.150

PPPoE的参数介绍可以运行查看: pppoe-server --help

这时PPoE server会转到后台监听。

4.抓包分析。

这时,就可以把路由器的WAN口连结到电脑上抓PPPoE的数据包了。(PS:如果你的路由器还在用着,建议现在虚拟机里用PPPoE拨一下试试,看看是不是出现了PAP的数据包,等测试通过后在把路由器的WAN口连接到电脑上。)

先运行:

tcpdump -i eth0 -w /tmp/pppoe.cap

然后在把路由器的WAN口接到电脑上来。(如果用虚拟机测试的话,就再虚拟机里拨号)。等几十秒。然后按 Ctr+C结束tcpdump。

然后打开wireshark。单击“File”-“Open”,选择dump出来的数据包文件:/tmp/pppoe.cap。找到Protoco列中是 PPP PAP的。那一行,就可以看到帐号和密码了。其中Peer-ID是PPPoE的用户名。

选区_001

 

OK,自此成功抓取了PPPoE的密码。

再插一句,如果你发现wireshark没有类"No. Time Source Destination Protoco Length Info"这一行及它一下的数据行时。请将鼠标移动到Frame那个窗格的上面,等鼠标变成双箭头形状在往下拖动,就可以看到这些信息了。这害了我费了好半天劲。