家里有一个TP-Link TL-WR842N的路由器。想知道里面配置的PPPoE的密码。用了以下方案仍然没有成功获得密码。
- 查看网页源代码。有的路由器管理页面使用密码的,只是隐藏了。这时可以右击查看源代码的方式,然后搜索“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的用户名。
OK,自此成功抓取了PPPoE的密码。
再插一句,如果你发现wireshark没有类"No. Time Source Destination Protoco Length Info"这一行及它一下的数据行时。请将鼠标移动到Frame那个窗格的上面,等鼠标变成双箭头形状在往下拖动,就可以看到这些信息了。这害了我费了好半天劲。