以下资料搜集于网络:
路由宝系统用openwrt,sshd或者dropbear已被直接删除,telnet还在。opkg的地址被指向本地IP。系统是openwrt,用的LUCI,那就有机会注入脚本。果然
允许设备联网这个接口,没有对MAC这个参数做过滤,可以构造命令,做任何想做的事情。telnet连不上,是因为openwrt只会在root账户没有密码的情况下才允许telnet连接。
首先在地址栏输入192.168.11.1。
进入自己的路由宝后台。然后点击路由设置,然后把地址栏上面的连接复制下来。把底下的连接
stok=6162fd66813c8381229b2fe99993d61e(红色部分)替换成你的,每个人都会不一样,而且会变动。然后把新的链接输
入你的地址栏。打开的网页会出现提示“Bad Gateway The process did not produce any
response”。貌似这样就是成功了。
构造请求;passwd -d root;http://192.168.11.1/cgi-bin/luci/;stok=6162fd66813c8381229b2fe99993d61e/api/devices/allowConnect?mac=%3Bpasswd%20-d%20root%3B
删除root密码 telnet连接 成功
路由宝1.5.0327.xxx 及以后版本此方法不行,需先手动在路由器升级界面降级到1.5.0211.xxx版本后才可以。
修改/etc/opkg.conf,更换openwrt源
src/gz youku http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base
dest root /
dest ram /tmp/youku/tmp
dest bin /tmp/youku/pkg
dest iku /tmp/youku/pkg
dest pkg /tmp/youku/pkg
lists_dir ext /tmp/youku/pkg/opkg-lists
option overlay_root /tmp/youku/pkg/overlay
更新opkg opkg update安装dropbear opkg install dropbear设置dropbear自启动 修改/etc/rc.local添加一行/usr/sbin/dropbear执行/etc/init.d/dropbear start
查看一下iptables,确认22端口开放;
SSH# 1.允许接收远程主机的SSH请求
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# 2.允许发送本地主机的SSH响应
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT-m state: 启用状态匹配模块(state matching module)
–-state: 状态匹配模块的参数。当SSH客户端第一个数据包到达服务器时,状态字段为NEW;建立连接后数据包的状态字段都是ESTABLISHED
–sport 22: sshd监听22端口,同时也通过该端口和客户端建立连接、传送数据。因此对于SSH服务器而言,源端口就是22
–dport 22: ssh客户端程序可以从本机的随机端口与SSH服务器的22端口建立连接。因此对于SSH客户端而言,目的端口就是22
如果服务器也需要使用SSH连接其他远程主机,则还需要增加以下配置:# 1.送出的数据包目的端口为22
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# 2.接收的数据包源端口为22
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
重启,发现ssh可以连了。那就再telnet上去,设置root密码。
备份原固件 在telnet 输入:dd if=/dev/mtd0 of=/tmp/youku/mnt/tf2/fullflash.bin
生成的fullflash.bin应该是32M的,就是你固件所有的信息
复制fullflash.bin到你的本地电脑。先把文件做软连接到你的路由宝html目录
在telnet 输入:ln -s /tmp/youku/mnt/tf2/fullflash.bin /www/fullflash.bin
然后你通过你的浏览器直接下载文件 http://192.168.11.1/fullflash.bin
妥善保存你的固件fullflash.bin。
刷Breed,也就是我们常说的引导区 恩山论坛有其他uboot,个人建议你刷这个,功能多又好用。
在telnet 输入:cd /tmp breed-mt7620-youku-yk1.bin到你的/tmp目录下,确保/tmp有 breed-mt7620-youku-yk1.bin文件后。
先使用
cat /proc/mtd
看一下带有BootLoader的是哪一个mtd
如果BootLoader是mtd1 输入下面的命令
在telnet 输入: mtd -r write /tmp/breed-mt7620-youku-yk1.bin mtd1
注意:mtd1这个1是带有Bootloader的那一行,很多人都是这个 不过还是看一下自己的保险一点
成功之后路由自动重启,重新连接后,按住reset键,断电,插电,自己的电脑IP设置为DHCP自动获取,在浏览器登陆 http://192.168.1.1就可以不死的刷机了。
针对想升级的的人,保留telnet
路由宝421之后的版本默认关掉telnet和dropbear,所以要在升级之前设下陷阱。
cp /usr/sbin/telnetd /etc/config/
在rc.local中加入
[ -x /usr/sbin/dropbear ] || passwd -d root
[ -x /usr/sbin/dropbear ] || chmod +x /etc/config/telnetd
[ -x /usr/sbin/dropbear ] || /etc/config/telnetd -p 7777
然后
wget
禁止路由宝自动升级
下面给大家一个阻止自动升级的方法。
1.先降级到1.5.0211.47252版本。
2.获取telnet或ssh权限。
3.登陆到控制台。
4.运行如下命令
cd /usr/bin &&mv updater updater.bak;ls updater*
这条命令和运行多次没有影响,正确的话只会出现一个 updater.bak5.啊,清净了,路由宝永远也不会自动升级了。
6.还原自动及手工升级的方法
cd /usr/bin &&mv updater.bak updater;ls updater*
这条命令和运行多次没有影响,正确的话只会出现一个 updater
原理:updater这个程序是下载官网升级文件,并进行升级的。
后期211以后的版本使用如下命令
禁止自动升级
cd /usr/sbin &&mv updater updater.bak;ls updater*
恢复自动升级
cd /usr/sbin &&mv updater.bak updater;ls updater*
路由宝如果是做二级路由的话
如果一级路由上可以设置DMZ的话,就设置DMZ,如果不可以的话就设置端口映射,UDP和TCP这两种都要映射,端口号范围是4440-4480