找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 93566|回复: 237

唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT

 火.. [复制链接]
本帖最后由 achaoge 于 2019-9-11 08:40 编辑

本文先发于 chinadsl, 链接:http://www.chinadsl.net/forum.php?mod=viewthread&tid=158737


言:
    手头有一个华为的光猫 HS8145V,在补全Shell 的路上跌跌撞撞,终于在chinadsl论坛翻楼找到了适合的方法。在此感谢各路神仙的探索和无私的分享。在摸索的过程中,发现光猫本身的系统没有提供自启动应用的入口,如果想在光猫上玩些花样也无能为力。但发现光猫除了本身的系统外,为了实现运营商的需 求,还隐藏了一个openwrt 系统,我们倒是可以在这个系统里面,自由的做我们想做的事情。

使用前提:
  • 要有运营商定制文件的华为光猫,比如说天翼智能网关(其它家没有试过)。
  • 要有telnet,需要补全shell。

原理:
    为了满足运营商的需求,除了光猫自己的管理界面外,华为的光猫还有一个系统,配合运营商的管理需求。而这个系统,是运行在容器中的 openwrt 系统,在我手头的 HS8145v 光猫里面,就在 mtd17、mtd18、mtd19 分区上,分别挂载在 /opt/upt/framework 和 /opt/upt/apps 下面。其中 framework 分区为只读,映射为 openwrt 的 rootfs分区, apps 分区为可读写,映射为openwrt 的overlayer,可用容量为90多M。在启动过程中,华为的 saf-huawei 程序会在容器内完整的启动这个 openwrt 系统。
所以,只要我们把需要的文件放入这个内嵌的openwrt 系统,就可以像操普通的 openwrt 系统一样了,比如说启动 dropbear,asterisk 等等。
在我的光猫里面,内嵌的openwrt 是 CC,所以我找的软件源是 openwrt cc for omap,源:

操作过程:
  • 要操openwrt 系统,当然首先是准备好 dropbear
    1.1 首先禁用光猫自带的 dropbear,并开启防火墙的22端口,这一步编辑的文件是 /mnt/jffs2/hw_ctree.xml 文件,因为文件有加密,所以需要解密编辑之后,再加密放回去,注意先备份 hw_ctree.xml !。
    1.1.1 先telnet 连接到光猫,在 wap > 界面下操作 ssh 配置,命令如下(这一步是保证在光猫的配置文件中,确认有关于 X_HW_CLISSHControl 的命令行):
    1. ssh authentication-type mode 1
    2. save data
    复制代码

    1.1.2 然后在 wap> 界面下,连续输入 su 命令提权、shell 命令入 linux 命令行界面,之后在Linux命令行界面下依次输入以下命令:
    1. cd /tmp && rm hw_ctree*
    2. cp /mnt/jffs2/hw_ctree.xml hw_ctree.xml.gz
    3. aescrypt2 1 hw_ctree.xml.gz tmp
    4. gunzip hw_ctree.xml.gz
    5. sed -i 's/\(X_HW_CLISSHControl Enable="\)./\10/;s/\(AclServices.*SSHLanEnable="\)./\11/' hw_ctree.xml
    6. gzip hw_ctree.xml
    7. aescrypt2 0 hw_ctree.xml.gz tmp
    8. cp hw_ctree.xml.gz /mnt/jffs2/hw_ctree.xml
    复制代码

    1.2 下载dropbear的包,解压,放入正确的位置。
    1. cd /tmp
    2. wget http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/dropbear_2015.67-1_omap.ipk
    3. tar xzf dropbear_2015.67-1_omap.ipk
    4. cd /opt/upt/apps/apps/
    5. tar xzf /tmp/data.tar.gz
    6. mkdir etc/rc.d && cd etc/rc.d
    7. ln -s ../init.d/dropbear S50dropbear
    8. rootpw=$(grep root /etc/shadow|cut -d: -f2)
    9. sed -i "s/root:/root:$rootpw/" ../shadow
    复制代码

    1.3 这个系统里面root 密码在上一步已经设置为跟光猫的系统密码一致(我的机器上密码是 admin)。如果要免密登录openwrt 系统,需要自己创建ssh密钥对,将自己的公钥放到 /opt/upt/apps/apps/etc/dropbear 下面,并命名为 authorized_keys。 OK,基本的系统操作完成,现在可以重启光猫了。

  • 重启光猫后,现在应该可以ssh 远程登录系统了,登录进去之后,我们得到一个 openwrt 系统的界面。 2.1 系统默认的软件源是不存在的,需要我们修改一下,指向一个arm架构的 openwrt cc 源,我的系统修改如下:
    1. root@SAF:~# cat /etc/opkg/distfeeds.conf
    2. src/gz chaos_calmer_base http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base
    3. src/gz chaos_calmer_luci http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci
    4. src/gz chaos_calmer_management http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management
    5. src/gz chaos_calmer_packages http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages
    6. src/gz chaos_calmer_routing http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing
    7. src/gz chaos_calmer_telephony http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/telephony
    复制代码

    2.2 修改之后,要让系统能够接受omap 源的包,需要修改 /etc/opkg.conf 文件,请加入 arch omap 10 这一行,根据自己的情况编辑。我的文件内容如下:
    1. root@SAF:~# cat /etc/opkg.conf
    2. dest root / dest
    3. ram /tmp
    4. lists_dir ext /var/opkg-lists
    5. option overlay_root /overlay
    6. option check_signature 1
    7. arch all 1
    8. arch noarch 1
    9. arch omap 10
    10. arch sd5116v1 12
    复制代码

    2.3 现在可以运行 opkg 命令更新源,并查看软件信息了。但是奇怪的是,华为似乎阉割了 opkg 的安装功能,所以我们还需要替换掉系统的opkg命令,具体操作命令如下:
    1. wget http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_omap.ipk
    2. tar xzf opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_omap.ipk ./data.tar.gz
    3. tar xzf data.tar.gz ./bin/opkg
    4. cp bin/opkg /bin/
    复制代码

    现在应该就可以愉快的操 openwrt 系统了。

  • 完善 OpenWRT 的一些功能
    3.1 把 aescrypt2 的功能放到OpenWRT 里面来,免得每次修改文件都要 telnet 到原生系统里面去。 telnet 进原生系统后,操作命令:
    1. cd /tmp
    2. tar czf aescrypt2.tgz /lib/libubacktrace* /lib/libhw_ssp_basic.so /bin/aescrypt2 /etc/wap/aes_string
    复制代码

    然后在OpenWRT 里面运行命令:
    1. tar xzf /e8ctmp/aescrypt2.tgz -C /
    复制代码

    3.2 把 iptables 防火墙配置命令放到OpenWRT 里面来。 还是telnet进原生系统,打包相关文件:
    1. cd /tmp
    2. tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-multi /lib/pkgconfig/*
    复制代码

    然后在OpenWRT 里面运行命令:
    1. tar xzf /e8ctmp/iptables.tgz -C /
    复制代码



评分

参与人数 2恩山币 +2 收起 理由
chen*** + 1 你好,久仰卧龙大名,在下凤雏!.
9875*** + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
留名,支持一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

安装了插件,没界面也不好操作,不折腾
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

意思是在定制界面下才能玩吧,恢复成原厂系统无效/??

点评

原厂其实也可以,在hw_ctree 配置文件下有saf的服务,可以配置默认开启,且开启supervisor。理论上这东西可以移植到移动或者联通的猫和原生华为猫去玩。  详情 回复 发表于 2023-5-10 20:28
有网友的光猫运行的是华为的界面,但是在查看进程的时候发现有 saf-huawei 这个进程。 理论上讲, saf-huawei 就是用来启动 OpenWRT 子系统的,所以应该也是可以的。但手头没有华为界面的猫,没有测试。  详情 回复 发表于 2018-11-8 09:57
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主厉害了啊,同HS8145V,一直在想这猫性能也可以,要是有个固件就好了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习学习!感谢楼主分享!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这个很叼。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
邪恶海盗 发表于 2018-11-7 18:54
意思是在定制界面下才能玩吧,恢复成原厂系统无效/??

有网友的光猫运行的是华为的界面,但是在查看进程的时候发现有 saf-huawei 这个进程。
理论上讲, saf-huawei 就是用来启动 OpenWRT 子系统的,所以应该也是可以的。但手头没有华为界面的猫,没有测试。

点评

恢复成原厂系统无效的 cd /tmp && rm hw_ctree* rm: can't remove 'hw_ctree*': No such file or directory  详情 回复 发表于 2022-12-28 22:28
实测华为界面的也是可以的  详情 回复 发表于 2019-9-26 09:07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
    有同学问是不是必须要运营商界面才可以,手头没有华为界面的猫,所以并没有测试,如果哪位同学有条件的话,也可以按这个方法走一遍。
    华为光猫里面的OpenWRT 子系统是通过 saf-huawei 这个进程来启动的,而有同学反应说在华为界面的光猫里面,有这个进程运行,所以理论上讲,应该也是可以的。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

记号 谢谢 记号 谢谢 记号 谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这个厉害了,大雕,lintel这些大神赶紧研究下就好了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

真是大佬级别的骚操作啊,一直想给8145v加插件,但官方没有插件,但看起来折腾起来还真需要一定功底,有空了试试吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

厉害了,先留贴备用!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

第一步wget http://archive.openwrt.org/chaos ... _2015.67-1_omap.ipk 这里提示错误,提示无法链接到网站,但我用浏览器可以打开,我光猫已经关闭路由功能,改桥接了,是不是跟这有关呢????

点评

是的,这一步需要光猫能上网,这个有多种方式实现。 1 如果运营商允许多拨,在光猫上建一个拨号链接就可以了 2 如果不能多拨,那建立到拨号路由器的连接,建立静态路由到下载网址,或者路由上跑个代理。 3 预先把  详情 回复 发表于 2018-11-25 13:00
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 来自手机 | 显示全部楼层
aini50563 发表于 2018-11-25 00:07
第一步wget http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/dropbear_2015. ...

是的,这一步需要光猫能上网,这个有多种方式实现。
1 如果运营商允许多拨,在光猫上建一个拨号链接就可以了
2 如果不能多拨,那建立到拨号路由器的连接,建立静态路由到下载网址,或者路由上跑个代理。
3 预先把要下载的东西丢到光猫上。

点评

这个我昨天已经试过了,确实是改桥接后光猫不能联网导致的。但cd /tmp && rm hw_ctree* 我这一步就开始卡壳了,提示没有文件。可以跳过,我估计这个命令只是谨慎作用,然后到mkdir etc/rc.d && cd etc/rc.d这里又报  详情 回复 发表于 2018-11-25 20:53
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 07:41

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表