现在需要知道一台路由器中保存的拨号账号密码,但是不知道路由器的管理密码,显然也不能重置路由器来重置管理密码。因此,尝试使用抓包的方式来抓取路由器拨号时使用的账号密码。
Reference: PPPoE密码嗅探 (zhufan.net)
安装一台Ubuntu虚拟机。我之前使用VirtualBox,但开启了Hyper-V之后的VirtualBox性能极其低下,因此改用VMware。
在Ubuntu虚拟机里安装一个虚假的PPPoE服务器,配置pap明文登录模式,让路由器对这个虚假服务器进行拨号,方便我们进行抓包。
1234567891011sudo su#以下命令使用root用户执行## 安装pppoe并创建用户apt updateapt install -y pppoe tsharktouch /etc/ppp/pppoe-server-optionsecho "require-pap" > /etc/ppp/pppoe-server-optionsecho "lcp-echo-interval 10" >> /etc/ppp/pppoe-server-optionsecho "lcp-echo-failure 2" >> /etc/ppp/pppoe-server-optionsecho "* * * *" > /etc/ppp/pap-secrets
将虚拟机的网卡桥接物理机有线网卡。
将物理机有线网卡连接网线,另一头插入目标路由器的wan口。
启动目标路由器,等待路由器进行拨号。
执行以下命令启动抓包。
1234567## 启动服务与抓包,需要配置$iface为真实网卡#iface="eth0" iface="ens33"#如果tshark报错link is not ready 需要执行一次#if link dev $iface up/usr/sbin/pppoe-server -L 10.5.5.1 -R 10.5.5.10 -I $iface -S yyftshark -i $iface -Y "pap.password" -l -T fields -e pap.peer_id -e pap.password
profit。执行tshark的终端会显示出不同验证方式的密码数据(因为路由器会尝试多种方式拨号),找其中共同的部分就是拨号账号密码。
123456789101112# 输出结果范例,用户名和密码用USERNAME和PASSWORD替代。2:2u9xv5mogc7 w PASSWORD^^USERNAME E196D0A59DAAB28B\r0#.\_.A3dUSERNAME PASSWORD\r\n#.\_.Aa9USERNAME PASSWORDUSERNAME PASSWORDd471eff555fbbc0~lUSERNAME @w PASSWORDa:5s5uAvTJfA9BIUuBgzs6DJ48vbSg0HX::USERNAME PASSWORDUSERNAME PASSWORD2:2u9xv5mogc7 w PASSWORD^C^^USERNAME E196D0A59DAAB28B
12# 如果运行完以后虚拟机的网络功能不见了,无法联网,可以尝试:sudo nmcli network on