找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 27264|回复: 70

烽火HG5143F 电信光猫开telnet整理(烽火新型号应该通用)

[复制链接]
发表于 2023-4-20 11:14:39 | 显示全部楼层 |阅读模式
本帖最后由 anysoft 于 2023-6-25 10:05 编辑

固件不断地更新,厂商和运营商也不断的修补漏洞和后门一些以前的方法已经失效了。

该帖中修正一种方法中key,新增一个开telnet脚本。

闲话不多说直接上东西。


开telnet
默认其实telnet服务是开启的,只是防火墙策略禁止外部访问,而所谓开telnet其实是让防火墙放行23端口。

1. 管理后门
利用 telnetenable.cgi  传入 key 和 telnetenable 参数值开启telnet,这个属于管理后门性质接口。几乎所有版本都有,通用性高,但是key在各个版本之间可能存在差异。具体可以捅菊花后获取固件内程序后文件分析。

老版本:key=FH-nE7jA%5m光猫MAC后6位全大写
新版本:参考附件




附上  telnetenable.cgi  代码
  1. #!/bin/sh
  2. echo Content-type: text/html
  3. echo

  4. BR_MAC=`cat /sys/class/net/br0/address | sed 's/://g' | awk '{print toupper($0)}'`
  5. if [ -n "$QUERY_STRING" ]; then
  6.         for paramIndex in 1 2
  7.         do
  8.                 CGIParam=`echo "$QUERY_STRING&" | cut -d '&' -f ${paramIndex}`
  9.                 par=`echo "$CGIParam" | cut -d '=' -f 1`
  10.                 val=`echo "$CGIParam" | cut -d '=' -f 2`
  11.                 if [ "$val" != "" ]; then
  12.                         case $par
  13.                         in
  14.                         "telnetenable")
  15.                         TELNETENABLE=$val
  16.                         ;;
  17.                         "key")
  18.                         KEY=$val
  19.                         ;;
  20.                         esac
  21.                 fi
  22.         done
  23. fi

  24. if [ "$BR_MAC" == "$KEY" ]; then
  25.         if [ "$TELNETENABLE" == "1" ]; then
  26.                 iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
  27.                 iptables -I CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
  28.                 /fhrom/bin/telnetd -p 23 >/dev/null 2>&1
  29.         elif [ "$TELNETENABLE" == "0" ]; then
  30.                 killall telnetd >/dev/null 2>&1
  31.                 iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
  32.         fi
  33. else
  34.         echo "<html>
  35.                 <head><title>404 Not Found</title></head>
  36.                 <body>
  37.                 <center><h1>404 Not Found</h1></center>
  38.                 </body>
  39.                 </html>"
  40.         exit 0
  41. fi


  42. echo "<html><head>
  43. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  44. </head>
  45. <body>
  46. <script type='text/javascript'>
  47. if ( '$TELNETENABLE' == '1' )
  48. {
  49.         document.writeln('telnet开启');
  50. }
  51. else if ( '$TELNETENABLE' == '0' )
  52. {
  53.         document.writeln('telnet关闭');
  54. }
  55. else
  56. {
  57.         document.writeln('无操作');
  58. }
  59. </script>
  60. </body>
  61. </html>
复制代码






2. 接口越权


此处利用光猫接口未做权限及操作分离的设计,在登录超级账号后脚本调用接口开启telnet

脚本参考附件






脚本实现了  上述1,2 两种方案。
被坑了几千猫粮下载的固件无法刷入,所以写个教程和脚本赚点猫粮{:7_198:}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-7-22 00:06:12 | 显示全部楼层
上海电信最近用的是HG-5143F V2,这个方法似乎不行,192.168.1.1/cgi-bin/telnetenable.cgi 会被TCP reset,如何解?
 楼主| 发表于 2023-4-20 11:16:59 | 显示全部楼层
脚本采用python编写,安装python3之后直接执行脚本就行
python3 opentelnet.py
发表于 2023-4-25 11:14:28 | 显示全部楼层
不懂,学习学习
发表于 2023-4-25 15:52:22 | 显示全部楼层
牛皮,学习学习
 楼主| 发表于 2023-4-26 09:07:39 | 显示全部楼层
245668 发表于 2023-4-25 15:52
牛皮,学习学习

总的来说就是利用固件本身的一些未开放接口来打开开关而已。
发表于 2023-4-26 11:27:17 | 显示全部楼层
有没有改SN码命令,开了telnet 不知道输命令
发表于 2023-4-26 16:47:33 | 显示全部楼层
anysoft 发表于 2023-4-26 09:07
总的来说就是利用固件本身的一些未开放接口来打开开关而已。

四川移动版本的烽火光猫可以开启telnet吗?
发表于 2023-4-26 18:08:30 | 显示全部楼层
anysoft 发表于 2023-4-26 09:07
总的来说就是利用固件本身的一些未开放接口来打开开关而已。

四川移动烽火光猫可以这样开telnet吗?
发表于 2023-5-6 09:46:18 | 显示全部楼层
我的光猫被限制不能用FIWI,怎么办,我不想多挂一个FIWI设备
发表于 2023-5-6 16:41:09 | 显示全部楼层
"$BR_MAC" == "$KEY"
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-8-16 04:27 , Processed in 0.037635 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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