xChar
·10 months ago

## 写在前边

可能有很多朋友,是很忌讳写这类指名道姓的文章的,这很可能也是这类文章比较少的原因。往上讲,这个技术的使用存在灰色性,虽然中国地区的法律没有什么用,但是按照它的说法,确实有未经授权入侵计算机系统的嫌疑和帮信的口袋罪;往下讲,至少暴露了你的时空位置,被开盒也是不好的。

我其实并没有很在意,因为我向来都是实名上网。而且在当前的环境下,如果你树敌足够多,足够强,那实名上网可以保护你无法被开盒,因为你已经实现了无盒化。前者呢,那就得看你跑的有多快了。

前因

很早之前,这个光猫我已经日过一次了。但是联通来偷偷摸摸给楼里换了光交换机,所以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

恰好引用

  1. https://www.jarvisw.com/?p=1517
    https://archive.ph/8HSFV
  2. 偶然发现的神奇文件!
    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)

Pasted image 20240123171309

引用

  1. https://www.right.com.cn/forum/thread-8216015-1-1.html
    https://archive.md/wip/1r7IM

注入新的正能量

插入光纤!

使用用户space进行注册,烟台联通不需要密码,仅loid。

或者是在管理员space下的高级配置里,有loid设置。

Pasted image 20240123173449

Pasted image 20240123171530

卡在这里是正常的,因为我们把tr删掉了,他这辈子不会有管理ip的。

新建一个互联网连接,桥接模式,绑定的lan口需要手动指定。vlan为tag id是之前用户态里看到的。

如果家里有iptv,那么去找联通取消这个付费洗脑业务(。如果需要继续使用,同理配置lan口和vlan id

Pasted image 20240123173401

在macos下拨号验证,成功。

路由器上进行拨号(这个主路由是padavan

Pasted image 20240123173027

我习惯手动设置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的密码不会被修改,可以一直使用。

Loading comments...