F420-F460光猫的TTL串口线连接方法及其应用
- 格式:pdf
- 大小:3.53 MB
- 文档页数:16
F420-F460光猫的TTL串口线连接方法及其应用
家庭宽带网关为家庭用户提供了宽带上网、IPTV和电话业务。
然而,在使用中用户会遇到各种问题,需要使用管理账号和密码进行设置。
虽然,现在的安装过程很简单,全部是通过下发配置即可完成,但是,下发的配置不一定满足具体特定用户的需要。
如果需要自己定制或维修工上门检测,都需要使用管理账号和密码。
但是电信的策略是:在安装完成后,管理平台会通过远程控制改变密码,以防用户随意改变配置。
这样做实际上对产品的返修也会带来一些问题。
对于生产厂家,在加强安全性的同时,也必须考虑到返修问题。
因此必须有一条途径可以进入系统,从而实现维修和测试。
光猫本身都有一个嵌入式操作系统,进入这个嵌入式操作系统就可以解决所有的配置问题。
当然,进入嵌入式操作系统本身需要账号和密码,但是这一账号和密码不是电信管理平台可以远程随意更改的。
如果随意更改了每个光猫的root账号的密码,那么,厂家根本就不能做维修了。
譬如:F420/F460的嵌入式操作系统的超级用户root的密码就是root。
这也是为了维修方便。
那么,我们如何进入嵌入式操作系统?如何修改配置?如何查出管理账号密码?如何修改上网数量限制?如何去除远程操控?如何修改桥接或路由的配置?如何创建定制的WAN连接?只要能进入嵌入式操作系统,一切都迎刃而解了。
本人曾在百度文库写过一篇文章,文中提到的针对F420的方法在当时是完全可行的。
但是,自2012年8月份中兴光猫F420版本升级后就被更改了系统数据,原来的方法全部失效了。
²光猫的telnet服务被关闭了。
²WEB超级账户admin 和密码gpon 已被清除。
²http://192.168.1.1/web_shell_cmd.gch直接打开命令页面的方法也失效。
更可悲的是本人原来已经获得的管理员密码,在一次点击了“结束维护”之后,就再也无法进入了。
“结束维护”就意味着要电信管理平台更新管理密码。
这就是TR069的功能。
真悔恨当时没有立即删除TR069!
痛苦之余,想起了拆机破解(这不是破坏,而是用TTL串口线接入)。
虽然用TTL串口接入是最有效的方法,但这需要专用的TTL线(不是RS232串口线,电平不一样的)。
而且用TTL线需要十分小心,电路板上有一个5针的接口,但只需要用中间的3个针脚,特别需要注意的是接地线千万不能错。
本人在反复试验中曾烧毁了2根USB转TTL连线(每根8元)。
我的原则是最好不要拆机,万不得已才拆机。
这里本人提供两种破解方法:
一、简单的方法:
如果只需要知道管理员账号和密码,然后自行关闭TR069,并改为桥接方式。
只需要在浏览器地址栏输入http://192.168.1.1/manager_dev_config_t.gch。
(注意这和以前的路径不一样了,厂家更改了方法)
在以下画面,点击“导出配置“,导出的文件是config.bin。
面对config.bin这个文件,需要一个小工具软件才能解开。
可在这里下载这个小工具:
/forum.php?mod=viewthread&tid=1385497&reltid=1418670&pre_p os=2&ext=CB
解压后运行OffzipPackzip UI.exe (只能在xp上运行,我的64位Win7不能运行)导入bin后会分解出6个.dat文件:
可以用专业的文本编辑工具打开这些文件。
用专业工具只是便于编辑,看起来整齐。
我们的目的只是找出telecomadmin对应的密码。
最简单的方法是直接用记事本逐个打开找(我是打开了第一个文件),自动寻找telecomadmin,看到有一条是telecomadminxxxxxxxx。
这就是管理员密码了。
后面再要做改桥接和去除TR069之类的事就由自己做主了。
二、专业的方法:
拆开F420的上盖,找到TTL接口(为了便于描述,桌面放置电路板,使TTL接口在右侧),右上角大电容旁的5个针脚从上至下分别是:Vcc+3.3,TxD,RxD,GND,BL(切记千万不要接Vcc,否则肯定烧毁TTL线芯片)
USB转TTL接线板或封闭连线,需要安装好驱动程序。
有4个接头,只用3个接头。
记住规则:地—地,收—发,发—收
接地GND一定要正确,接受和发送可以互换试验。
千万不要接错!!!
在此画面输入账号root,输入密码也是root,即可登入。
TTL连接上后可用sendcmd命令修改限制连接数,关闭tr069,开启telnet服务等等。
登入后输入sendcmd 1 DB p UserInfo可获得管理密码(注意大小写),看以下实录:root@F420:~ # sendcmd 1 DB p UserInfo
<Tbl name="UserInfo" RowCount="4">
<Row No="0">
<DM name="ViewName" val="erInfo1"/>
<DM name="Type" val="1"/>
<DM name="Enable" val="1"/>
<DM name="Username" val="telecomadmin"/>
<DM name="Password" val="telecomadmin64127403"/> (这是管理密码)
<DM name="Right" val="1"/>
</Row>
<Row No="1">
<DM name="ViewName" val="erInfo2"/>
<DM name="Type" val="1"/>
<DM name="Enable" val="1"/>
<DM name="Username" val="useradmin"/>
<DM name="Password" val="js74y"/> (这是用户密码)
<DM name="Right" val="2"/>
</Row>
<Row No="2">
<DM name="ViewName" val=""/>
<DM name="Type" val="1"/>
<DM name="Enable" val="0"/>
<DM name="Username" val=""/>
<DM name="Password" val=""/>
<DM name="Right" val="1"/>
</Row>
<Row No="3">
<DM name="ViewName" val=""/>
<DM name="Type" val="0"/>
<DM name="Enable" val="0"/>
<DM name="Username" val=""/>
<DM name="Password" val=""/>
<DM name="Right" val="0"/>
</Row>
</Tbl>
查看端口开启情况:
root@F420:~ # sendcmd 1 DB p PortControl
<Tbl name="PortControl" RowCount="8">
<Row No="0">
<DM name="ViewName" val="IGD.PortControl1"/>
<DM name="PortValue" val="80"/>
<DM name="PortEnable" val="0"/>
</Row>
<Row No="1">
<DM name="ViewName" val="IGD.PortControl2"/>
<DM name="PortValue" val="21"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="2">
<DM name="ViewName" val="IGD.PortControl3"/>
<DM name="PortValue" val="22"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="3">
<DM name="ViewName" val="IGD.PortControl4"/>
<DM name="PortValue" val="23"/>
<DM name="PortEnable" val="0"/> (发现Telnet所用端口被关闭) </Row>
<Row No="4">
<DM name="ViewName" val="IGD.PortControl5"/>
<DM name="PortValue" val="443"/>
<DM name="PortEnable" val="0"/>
</Row>
<Row No="5">
<DM name="ViewName" val="IGD.PortControl6"/>
<DM name="PortValue" val="161"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="6">
<DM name="ViewName" val="IGD.PortControl7"/>
<DM name="PortValue" val="58000"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="7">
<DM name="ViewName" val="0"/>
<DM name="PortValue" val="0"/>
<DM name="PortEnable" val="0"/>
</Row>
</Tbl>
输入sendcmd 1 DB set PortControl 3 PortEnable 1可启用telnet端口root@F420:~ # sendcmd 1 DB set PortControl 3 PortEnable 1
<Tbl name="PortControl" RowCount="8">
<Row No="0">
<DM name="ViewName" val="IGD.PortControl1"/>
<DM name="PortValue" val="80"/>
<DM name="PortEnable" val="0"/>
</Row>
<Row No="1">
<DM name="ViewName" val="IGD.PortControl2"/>
<DM name="PortValue" val="21"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="2">
<DM name="ViewName" val="IGD.PortControl3"/>
<DM name="PortValue" val="22"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="3">
<DM name="ViewName" val="IGD.PortControl4"/>
<DM name="PortValue" val="23"/>
<DM name="PortEnable" val="1"/> (这里的值改变了)</Row>
<Row No="4">
<DM name="ViewName" val="IGD.PortControl5"/>
<DM name="PortValue" val="443"/>
<DM name="PortEnable" val="0"/>
</Row>
<Row No="5">
<DM name="ViewName" val="IGD.PortControl6"/>
<DM name="PortValue" val="161"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="6">
<DM name="ViewName" val="IGD.PortControl7"/>
<DM name="PortValue" val="58000"/>
<DM name="PortEnable" val="1"/>
</Row>
<Row No="7">
<DM name="ViewName" val="0"/>
<DM name="PortValue" val="0"/>
<DM name="PortEnable" val="0"/>
</Row>
</Tbl>
查出使用telnet的权限
root@F420:~ # sendcmd 1 DB p TelnetCfg
<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="TS_Enable" val="0"/>
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="0"/> (发现不能通过LAN使用telnet)
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="root"/> (找到telnet的用户名是root)
<DM name="TS_UPwd" val="Zte521"/> (telnet的密码是Zte521)
<DM name="Max_Con_Num" val="2"/> (同时telnet连接数是2个)
<DM name="ProcType" val="0"/>
<DM name="ProcPonLinkUp" val="1"/>
<DM name="ProcFlag" val="0"/>
</Row>
</Tbl>
为了改变上面的telnet设置,进行以下操作即可满足要求:
root@F420:~ # sendcmd 1 DB set TelnetCfg 0 TS_Enable 1
<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="TS_Enable" val="1"/> (改变了这一条数据)
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="0"/>
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="root"/>
<DM name="TS_UPwd" val="Zte521"/>
<DM name="Max_Con_Num" val="2"/>
<DM name="ProcType" val="0"/>
<DM name="ProcPonLinkUp" val="1"/>
<DM name="ProcFlag" val="0"/>
</Row>
</Tbl>
root@F420:~ # sendcmd 1 DB set TelnetCfg 0 Lan_Enable 1
<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="TS_Enable" val="1"/>
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="1"/> (改变了这一条数据)
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="root"/>
<DM name="TS_UPwd" val="Zte521"/>
<DM name="Max_Con_Num" val="2"/>
<DM name="ProcType" val="0"/>
<DM name="ProcPonLinkUp" val="1"/>
<DM name="ProcFlag" val="0"/>
</Row>
</Tbl>
root@F420:~ # sendcmd 1 DB set TelnetCfg 0 Max_Con_Num 5
<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="1"/>
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="root"/>
<DM name="TS_UPwd" val="Zte521"/>
<DM name="Max_Con_Num" val="5"/> (改变了这一条数据)
<DM name="ProcType" val="0"/>
<DM name="ProcPonLinkUp" val="1"/>
<DM name="ProcFlag" val="1"/>
</Row>
</Tbl>
root@F420:~ # sendcmd 1 DB set TelnetCfg 0 TS_UPwd abcd1234
<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="TS_Enable" val="1"/>
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="1"/>
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="root"/>
<DM name="TS_UPwd" val="abcd1234"/> (改变了这一条数据)
<DM name="Max_Con_Num" val="5"/>
<DM name="ProcPonLinkUp" val="1"/>
<DM name="ProcFlag" val="0"/>
</Row>
</Tbl>
root@F420:~ # sendcmd 1 DB set TelnetCfg 0 ProcFlag 1
<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="TS_Enable" val="1"/>
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="1"/>
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="root"/>
<DM name="TS_UPwd" val="abcd1234"/>
<DM name="Max_Con_Num" val="2"/>
<DM name="ProcType" val="0"/>
<DM name="ProcPonLinkUp" val="1"/>
<DM name="ProcFlag" val="1"/> (改变了这一条数据)</Row>
</Tbl>
root@F420:~ # sendcmd 1 DB save (千万不能忘了保存数据)
root@F420:~ # reboot (重启生效)
现在你可以通过telenet登入了。
不需要TTL串口线了。
Login: root
Password: abcd1234
BusyBox v1.01 (2012.09.06-08:34+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ #
现在可以输入各种命令啦!
修改telecomadmin对应的密码:
sendcmd 1 DB set UserInfo 1 Password 123456
禁用TR069远程控制:
sendcmd 1 DB set MgtServer 0 Tr069Enable 0(注意空格和大小写)修改电脑上网的数量限制:
sendcmd 1 DB set CltLmt 8 Max 99
sendcmd 1 DB set CltLmt 8 Enable 0
修改完毕一定要保存:
sendcmd 1 DB save
以上是本人的实践经验。
这对目前的最新版F420是有效的,本人没有在F460上测试,估计应该也是一样的。
F460只是增加了无线网络而已。
你可以试试。