可能有很多朋友,是很忌讳写这类指名道姓的文章的,这很可能也是这类文章比较少的原因。往上讲,这个技术的使用存在灰色性,虽然中国地区的法律没有什么用,但是按照它的说法,确实有未经授权入侵计算机系统的嫌疑和帮信的口袋罪;往下讲,至少暴露了你的时空位置,被开盒也是不好的。
我其实并没有很在意,因为我向来都是实名上网。而且在当前的环境下,如果你树敌足够多,足够强,那实名上网可以保护你无法被开盒,因为你已经实现了无盒化。前者呢,那就得看你跑的有多快了。
前因#
很早之前,这个光猫我已经日过一次了。但是联通来偷偷摸摸给楼里换了光交换机,所以 vlan 变了,所以没网了,所以师傅来摁屁股重启了光猫,所以原来的 bridge 模式没有了。
然后我其实已经很懒的动手了,毕竟是有加刑风险的事情。我就打了几个电话,想 with some connections 解决这个问题算了。山东联通这边已经安排好了,省里直接帮我发了工单给营业厅。但是呢,营业厅的小妹妹很有礼貌给我打电话说搞不了,因为烟台市级,有一个文件限制,不给搞。
众所周知,三大运营商的势力地盘分布,是极其复杂的,堪比铁路系统。移动曾经是有一万个省级单位,联通就是有一万个市级单位。省公司并不能在所有事情上管市公司。
所以就只能自己动手了。
准备#
首先呢,烟台联通的光猫,在正常入网注册之后,都会由TR069
下发一个随机的CUadmin
密码和一个固定的 user 态密码。user 态密码始终与光猫肚子上贴的一致,与设备 id 绑定。
针对F657GV9
,我们可以使用用户态进入阉割版的用户页面,获取我们需要的信息:
- vlan id
- loid
当然,你也需要知道你的 pppoe 账户名和密码。
古早年间,山东联通有各种地级市 / 省级的接口,可以获取 / 修改 pppoe 密码,但是现在好像。。。。没有什么很直观的方法,可以 10010 去问。
重置#
如果你恰巧和我一样,一不小心在F657GV9
开机的状态下,碰掉了光猫的光纤,之后又用小牙签戳进了 reset 屁股坚持了十秒钟,那么光猫就被重置为出场 flash。
这个时候光猫的管理员 space 的密码为CUAdmin
。
如果你恰好通过 http://192.168.1.1/cu.html
登入,你会发现网络连接下,有一个TR069
小可爱,但是,你无法删除它,即使你用是CUAdmin
。
所以我们需要恰好有一个factorymode_crack
工具。这个工具可以偶然在互联网上获得。
在 windows 下,使用命令
./factorymode_crack.exe -l fuck open -i 192.168.1.1
可以得到回显如
version:3.1
Enter 192.168.1.1 FactoryMode Success:FactoryModeAuth.gch?user=PH7g5g7k&pass=Lag3xO3J
这并不是在破解光猫,只是屏幕上出现的PH7g5g7k
恰好为 telnet 用户名。Lag3xO3J
恰好为密码。
BusyBox v1.17.2 (2021-12-25 16:19:26 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ # uname
Linux
/ # uname -a
Linux F657GV9 4.1.25 #1 SMP Sat Dec 25 16:07:46 CST 2021 armv7l GNU/Linux
如果你恰好乱按几下键盘,你会发现它的 Linux 内核还挺新的。
这个地方其实可以恰好碰开光猫的外壳,一不小心接上杜邦线,使用 ttl 获得一个 shell
恰好引用#
- https://www.jarvisw.com/?p=1517
https://archive.ph/8HSFV - 偶然发现的神奇文件!
https://archive.org/details/factorymode_crack
检查身体#
如果你恰好读过引用 1 的这篇文章,你就会发现,
/# sendcmd 1 DB
all:print all table
p [tablename] :print table info
pv:print view info
rreset:remote reset
lreset:local reset
lplreset:long press local reset
reset:local reset
save
debug [0/1]: not reboot to see the file of critical param
set [tablename][rownum][dm][dmvalue] :
addr [tablename]: add ROW to table
delr [tablename][rownum]:delete ROW of table
pti [tablename]: print the detail information of the table
fc [bin-file-name]:compress user config to bin-file-name
fuc [bin-file-name]:uncompress bin-file-name to user config
bckinterval [0]: time of backup 0:syn
bcktype [0/1/2]: backup type 0:no bck 1:all bck 2:part bck
backup : backup now!
partrst [ModName]: part restore now!
prtpdt : print all of product interface.
pcl : print cfg list.
pvf [ViewID]: print View Fun.
aset1 :
aget1 : print View Fun.
aset1w :
aget1w :
aset1wnl :
aget1wnl :
aset1wp :
aget1wp :
addv :
lck1w :
find1w :
pshm : show shmpool infomation
pstate : show state_machine infomation
saveasy : Asy save
dbStati : 0:show Stati info; 1:clean Stati info[0/1]
killdog : kill watchdog
reject :reject db save
unreject: unreject db save
hcget [filepath] [key]
可以窥探光猫的稚嫩的身体。
我们恰好敲入
/ # sendcmd 1 DB p WANC
<Tbl name="WANC" RowCount="2">
<Row No="0">
<DM name="ViewName" val="IGD.WD1.WCD1.WCIP1"/>
<DM name="WANCDViewName" val="IGD.WD1.WCD1"/>
<DM name="Enable" val="1"/>
<DM name="WANCType" val="1"/>
<DM name="ConnType" val="1"/>
<DM name="MediaType" val="0"/>
<DM name="TriggerEnable" val="0"/>
<DM name="LANDViewName" val=""/>
<DM name="WANCName" val="1_TR069_R_VID_50"/>
<DM name="WANCNameExt" val=""/>
<DM name="IPAddr" val="0.0.0.0"/>
<DM name="SubMask" val="0.0.0.0"/>
<DM name="Gateway" val="0.0.0.0"/>
<DM name="StrServList" val="TR069"/>
<DM name="ServList" val="2"/>
<DM name="WorkIFName" val=""/>
<DM name="RealIFName" val=""/>
<DM name="WorkIFMac" val="00:00:00:00:00:00"/>
<DM name="DNS1" val="0.0.0.0"/>
<DM name="DNS2" val="0.0.0.0"/>
<DM name="DNS3" val="0.0.0.0"/>
<DM name="IsNAT" val="1"/>
<DM name="IsForward" val="1"/>
<DM name="IsDefGW" val="0"/>
<DM name="IsNAT6" val="0"/>
<DM name="IsDefGW6" val="0"/>
<DM name="DSCP" val="-1"/>
<DM name="DSCP6" val="-1"/>
<DM name="TC" val="-1"/>
<DM name="VLANID" val="50"/>
<DM name="MCVLANID" val="-1"/>
<DM name="IgmpProxyEnable" val="1"/>
<DM name="UpstreamWAN" val="0"/>
<DM name="MLDProxyEnable" val="1"/>
<DM name="Priority" val="6"/>
<DM name="WBDMode" val="2"/>
<DM name="OnLineTime" val="0"/>
<DM name="Status" val="0"/>
<DM name="HideListView" val="0"/>
<DM name="IPMode" val="1"/>
<DM name="IsDel" val="0"/>
<DM name="DNSEnabled" val="1"/>
<DM name="WancIndex" val="1"/>
</Row>
<Row No="1">
<DM name="ViewName" val="IGD.WD1.WCD2.WCIP1"/>
<DM name="WANCDViewName" val="IGD.WD1.WCD2"/>
<DM name="Enable" val="1"/>
<DM name="WANCType" val="1"/>
<DM name="ConnType" val="2"/>
<DM name="MediaType" val="0"/>
<DM name="TriggerEnable" val="0"/>
<DM name="LANDViewName" val=""/>
<DM name="WANCName" val="2_IPTV_B_VID_43"/>
<DM name="WANCNameExt" val=""/>
<DM name="IPAddr" val="0.0.0.0"/>
<DM name="SubMask" val="0.0.0.0"/>
<DM name="Gateway" val="0.0.0.0"/>
<DM name="StrServList" val="IPTV"/>
<DM name="ServList" val="8"/>
<DM name="WorkIFName" val=""/>
<DM name="RealIFName" val=""/>
<DM name="WorkIFMac" val="00:00:00:00:00:00"/>
<DM name="DNS1" val="0.0.0.0"/>
<DM name="DNS2" val="0.0.0.0"/>
<DM name="DNS3" val="0.0.0.0"/>
<DM name="IsNAT" val="1"/>
<DM name="IsForward" val="1"/>
<DM name="IsDefGW" val="0"/>
<DM name="IsNAT6" val="0"/>
<DM name="IsDefGW6" val="0"/>
<DM name="DSCP" val="-1"/>
<DM name="DSCP6" val="-1"/>
<DM name="TC" val="-1"/>
<DM name="VLANID" val="43"/>
<DM name="MCVLANID" val="80"/>
<DM name="IgmpProxyEnable" val="1"/>
<DM name="UpstreamWAN" val="0"/>
<DM name="MLDProxyEnable" val="1"/>
<DM name="Priority" val="3"/>
<DM name="WBDMode" val="2"/>
<DM name="OnLineTime" val="0"/>
<DM name="Status" val="0"/>
<DM name="HideListView" val="0"/>
<DM name="IPMode" val="1"/>
<DM name="IsDel" val="0"/>
<DM name="DNSEnabled" val="1"/>
<DM name="WancIndex" val="2"/>
</Row>
</Tbl>
可以恰好看到,Row No="0"
,第 0 行,正是1_TR069_R_VID_50
。
你可以恰好使用这个命令,帮她在体内去除正能量。
sendcmd 1 DB delr WANC 0
sendcmd 1 DB save
再次sendcmd 1 DB p WANC
,果然已经不见啦。(可以重启进行验证,是否已经写入 flash)
引用#
注入新的正能量#
插入光纤!
使用用户 space 进行注册,烟台联通不需要密码,仅 loid。
或者是在管理员 space 下的高级配置里,有 loid 设置。
卡在这里是正常的,因为我们把 tr 删掉了,他这辈子不会有管理 ip 的。
新建一个互联网连接,桥接模式,绑定的 lan 口需要手动指定。vlan 为 tag id 是之前用户态里看到的。
如果家里有 iptv,那么去找联通取消这个付费洗脑业务(。如果需要继续使用,同理配置 lan 口和 vlan id
在 macos 下拨号验证,成功。
路由器上进行拨号(这个主路由是 padavan
我习惯手动设置 man ip,其实不设置也可以。
Mar 26 15:58:10 pppd[2864]: Plugin rp-pppoe.so loaded.
Mar 26 15:58:10 pppd[2864]: RP-PPPoE plugin version 3.12 compiled against pppd 2.4.7
Mar 26 15:58:10 pppd[2896]: pppd 2.4.7 started by admin, uid 0
Mar 26 15:58:10 crond[2915]: crond (busybox 1.29.3) started, log level 8
Mar 26 15:58:45 pppd[2896]: Timeout waiting for PADS packets
Mar 26 15:58:50 pppd[2896]: PPP session is 8176 (0x1ff0)
Mar 26 15:58:50 pppd[2896]: Connected to 34:a2:a2:d3:0b:7e via interface eth3
Mar 26 15:58:50 pppd[2896]: Using interface ppp0
Mar 26 15:58:50 pppd[2896]: Connect: ppp0 <--> eth3
Mar 26 15:58:53 pppd[2896]: syncppp not active
Mar 26 15:58:53 pppd[2896]: Remote message: Authentication success,Welcome!
Mar 26 15:58:53 pppd[2896]: PAP authentication succeeded
Mar 26 15:58:53 pppd[2896]: peer from calling number 34:A2:A2:D3:0B:7E authorized
Mar 26 15:58:53 pppd[2896]: local IP address 112.249.999.999
Mar 26 15:58:53 pppd[2896]: remote IP address 112.249.999.1
这样,我们就不小心,实现了桥接。
写在后边#
其实这样就是把这个东西当个猫棒来用了,这就是她素颜最美丽的模样不是吗?
And,这个时候,用户态的密码是不存在的,你可以设置。当然这个用户态是没有用的。CUadmin 的密码不会被修改,可以一直使用。