shell脚本入门与Netkeeper破解路由
2017-06-10 20:14
585 查看
其实写这篇博客本来是想记录一些shell脚本的知识, 因为写这个脚本的初衷就是为了破解netkeeper, 所以就写写破解的事吧. NetKeeper这个无耻流氓令人深恶痛疾. 鉴于我不懂汇编, 一直以来都是等着各高手大佬破解出新版的NetKeeper的拨号算法后再苦苦找一个路由器能用的pppd_plugin来用. 偶然从GitHub上看到一个”破解”NetKeeper流氓的新思路, 我便动手自己弄了一个. 可谓”自己动手,丰衣足食”啊
这样子确实不错, 诚然不能应对心跳, 但是即使是使用plugin也得重写应对心跳的脚本, 其实都一样. 而且以后还不用担心算法升级了.
这个脚本已经由huipengly完成并已在GitHub开源, 所以可以直接点击这个链接到GitHub查看.
注意:如果使用opkg不能安装的话, 修改软件源或者手动下载rp-pppoe-server.ipk文件进行安装.mt7620的潘多拉固件可用的pppoe-server.ipk
配置pppoe-server以抓取拨号账号
因为我个人对正则表达式的使用不算熟练(没错, 我都是手动修改的这些文件), 这里使用了github上huipengly的代码
在这里记录一个bash shell快速入门的链接, 以备查阅需要
使用
脚本如下:
完整的脚本在我的Github. 在shell脚本之外, 我还使用luci框架为这个拨号脚本写了个”gui界面”, 不完美的地方是没有将这些文件打包成ipk, 所以需要手动复制文件到对应目录了.
我的脚本自行测试是可以用的, 我没有写配置脚本, 如果是想”开箱即用”的话, 还是这个好huipengly/Openwrt-NetKeeper
思路简要
思路是 在openwrt上面搭一个pppoe server 当电脑端netkeeper拨号时候会向路由器发送用户名和密码的请求 这个时候路由器用拦截到的用户名密码去拨号就行了 这样无论netkeeper怎么变算法应该都能实现路由器拨号吧这样子确实不错, 诚然不能应对心跳, 但是即使是使用plugin也得重写应对心跳的脚本, 其实都一样. 而且以后还不用担心算法升级了.
这个脚本已经由huipengly完成并已在GitHub开源, 所以可以直接点击这个链接到GitHub查看.
实操过程
1. 首先需要搭建openwrt上的pppoe-server环境.
使用opkg安装rp-pppoe-sever软件包
opkg install rp-pppoe-server
注意:如果使用opkg不能安装的话, 修改软件源或者手动下载rp-pppoe-server.ipk文件进行安装.mt7620的潘多拉固件可用的pppoe-server.ipk
配置pppoe-server以抓取拨号账号
因为我个人对正则表达式的使用不算熟练(没错, 我都是手动修改的这些文件), 这里使用了github上huipengly的代码
#开启log sed -i "s/\/dev\/null/\/tmp\/pppoe.log/" /etc/ppp/options #允许log记录密码 sed -i "s/#debug/debug/" /etc/ppp/options echo "show-password" >> /etc/ppp/options #处理 \r 字符 cp /lib/netifd/proto/ppp.sh /lib/netifd/proto/ppp.sh_bak sed -i '/proto_run_command/i username=`echo -e "$username"`' /lib/netifd/proto/ppp.sh
2. 写抓号脚本
因为开启了日志选项, pppoe-server会将日志打印到指定的log文件里, 所以需要写一个脚本将用户名和密码从日志中取出, 并用此用户名与密码进行拨号.在这里记录一个bash shell快速入门的链接, 以备查阅需要
使用
grep命令可以在文本或流中查找字符串,
tail命令能够过滤文本中指定数目的”尾行”, cut命令则可以用来切割字符串. 另外, 对于shell中形形色色的括号, 这里有很好说明.
while : do #读取log最后一个账号 username=$(grep "Peer" /tmp/pppoe-server.log | tail -n 1 | cut -c 8-) # echo "username is ${username}" username=${username%% fail*} #开始进行拨号 #在这里使用uci指定接口进行拨号即可 sleep 10 done
3. 制作rc脚本
为了使抓号脚本在开机后自动运行, 可以制作一个开机自启动脚本并放置于/etc/init.d/目录下
脚本如下:
#!/bin/sh /etc/rc.common #优先级: START=99 STOP=15 start() { #后台运行& sh /usr/share/nk4/nk4.sh & } stop() { pid=$(ps | grep "nk4.sh" | grep -v "grep" | cut -c 1-5 ) if [ ${pid} ] then kill $pid fi } restart() { pid=$(ps | grep "nk4.sh" | grep -v "grep" | cut -c 1-5 ) if [ ${pid} ] then kill $pid fi sh /usr/share/nk4/nk4.sh & }
完整的脚本在我的Github. 在shell脚本之外, 我还使用luci框架为这个拨号脚本写了个”gui界面”, 不完美的地方是没有将这些文件打包成ipk, 所以需要手动复制文件到对应目录了.
我的脚本自行测试是可以用的, 我没有写配置脚本, 如果是想”开箱即用”的话, 还是这个好huipengly/Openwrt-NetKeeper
相关文章推荐
- (原创)Shell脚本,调用Aircrack-ng破解WEP加密的无线路由密码
- 一个比较好的shell脚本编程入门文章
- shell脚本入门
- shell防ssh破解脚本
- Linux bash shell脚本语法入门
- Unix/Linux Shell脚本入门实例[00原创]
- Linux脚本(shell)编程(一) 简单入门HelloWorld
- shell脚本入门
- shell脚本批量追踪ip路由走向
- Linux脚本(shell)编程(一) 简单入门HelloWorld
- Linux脚本(shell)编程(一) 简单入门HelloWorld
- shell脚本入门
- Shell循环的那些事儿—从循环开始入门shell脚本语言
- SHELL 编程入门与提高(四)SHELL脚本中函数的应用
- Shell_BeanShell快速入门---Java应用程序脚本引擎
- Shell脚本学习指南-入门
- shell脚本快速入门
- 用SHELL脚本来防止SSH和vsftpd暴力破解
- shell-脚本入门
- 用shell 脚本来防ssh ftp 暴力破解