联通光猫管理员密码分析,不安全的密码方案

联通光猫型号:HG220GS-U
软件版本:E00L3.03

运营商一直在做光猫防破解,对抗升级还是比较快的,所有的分析结论都和版本绑定的,因为运营商或者路由器的开发商看到后可能立马就改了。

我自己主要是要改为桥接,这个需求其实打联通的保修电话让局端改一下应该就能搞定。不过之前看过一两个老版本的教程,也照葫芦画瓢破解成功了,但我手上的这个版本有点麻烦,现有的教程基本都失效了。有点好奇,这次花点时间仔细看了一下,不过这次被某些人打击得比较厉害,说果然是IT狗云云,只知道和代码过不去。都云作者痴,谁解其中味!

这个光猫,先要用普通的user用户和印在光猫背面的密码登录进去,然后改链接为http://192.168.1.1/servmngr.html,在这个页面中把管理员帐号enable,telnet、ftp服务也enable了,注意只针对LAN这一侧开放访问。telnet服务的默认用户名和密码都是admin。进入telnet后运行sh就是普通的shell界面。这些是在网上仔细搜能搜到的。

既然telnet、ftp权限都有了,那就把文件拿出来分析好了。最后要分析的是下面三个文件,关键函数是cgiAuthAdminPassword(),点到为止,有兴趣的可以自己看看。话说Ghidra对MIPS的反编译还是可以看的。新版的IDA 7.5虽然支持MIPS反编译,不过我没有。
/bin/httpd
/lib/public/libcms_util.so
/lib/public/libaes.so

下面是根据光猫MAC地址计算CUAdmin这个用户的密码。EPON的猫需要用其base MAC,也就是“设备基本信息”那个页面中看到的MAC/SN的值,大写。可以看出这个计算很简单,就是用零补齐后AES加密。EPON类型的光猫,这个密码和area code也有关。GPON类型的光猫,则是用其serial number计算的,此处未体现。所以光猫的WEB端口千万不要针对WAN一侧开放,否则被探测出MAC地址的话,有可能随便被人访问。LAN侧如果是很多人能访问的光猫,也得小心。本质上光猫的这个管理员密码设定是不安全的,虽然是一机一码,然而却是确定的,重复一次:这个密码方案是不安全的!

所幸的是,管理员CUAdmin账户默认没开启,需要用一机一码的user帐号登录进去后才能开启。至于user帐号的密码,有待分析。

#include <stdio.h>
#include <atlstr.h> #include <openssl/aes.h>
#pragma comment(lib, "libeay32.lib") static const unsigned char encryptionKey[] = "JmpwfGjcfsjpnfJmpwfGjcfsjpnf0000"; void Encrypt(unsigned char *in, size_t inLen, unsigned char *out, size_t &outLen)
{
AES_KEY aesContext; AES_set_encrypt_key(encryptionKey, , &aesContext); outLen = ;
for (size_t k = ; k < inLen; k += AES_BLOCK_SIZE, outLen += AES_BLOCK_SIZE)
{
unsigned char padded[AES_BLOCK_SIZE] = {};
memcpy(padded, &in[k], (k + AES_BLOCK_SIZE) < inLen ? AES_BLOCK_SIZE : inLen - k);
AES_ecb_encrypt(padded, &out[k], &aesContext, AES_ENCRYPT);
}
} int main(int argc, char** argv)
{
static unsigned char mac[] = ""; constexpr size_t insize = sizeof(mac) - ;
constexpr size_t remain = insize % AES_BLOCK_SIZE;
constexpr size_t outsize = remain ? insize - remain + AES_BLOCK_SIZE : insize; unsigned char out[outsize] = {}; size_t outlen = ;
Encrypt(mac, sizeof(mac) - , out, outlen); CString passwd;
for (size_t k = ; k < outlen; ++k)
{
CString t;
t.Format(L"%02X", out[k]);
passwd += t;
} _tprintf(_T("password for CUAdmin: %s\n"), (LPCTSTR)passwd);
}

联通光猫管理员密码分析(HG220GS-U)的更多相关文章

  1. 搭建自己私有的PKM系统,各家PKM大比拼。。附:构建自己熟悉的基础Docker,破解联通光猫

    Docker这容器真是很好玩!干啥都想上docker了,快疯了. 这不,最近wiz笔记开始收费,很是不爽,需要寻求新的PKM系统了.备选及落选理由如下: wiz笔记 -- 好用,顺手.要开始收费了,不 ...

  2. 北京联通光猫 F427 路由改桥接的方法

    最近安装了一个联通的宽带,赠送的光猫是 中兴 F427,然后联通小哥给安装的时候,直接开启了光猫的路由功能. 不过联通这个光猫实在是太弱了,起码默认的帐号开启的功能实在是太弱了,没法完成以下几个功能: ...

  3. 北京联通光猫WO-36(HG220GS-U)改为桥接模式

    家里弄了个极路由,想在公司里去操作路由器,交换文件.提前下载电影什么的,因此需要光猫改为桥接模式,让路由器拨号 由于WO-36(HG220GS-U)这个型号的光猫固件升级后(我的是3.x)不能用工程账 ...

  4. 华为HG8240光猫-破解-联通-2016-telnet-http

    序 我与大家想法基本一致,拿到联通的光猫后,心想它应该是个路由器吧,如果让它自己拨号上网就好了,即省一台路由器,又省电了.抱着这个想法,在2013年里,我搜罗了不少文章,经过Q群,搜索,询问,阅读,理 ...

  5. 联通光纤上网配置+华为HG8240光猫+TL-WR842N

    最近搬家改用北京联通宽带,光纤入户的那种.联通送的光猫是华为HG8240,没看到天线,应该是不带无线路由.然后自己再买了个TP-Link的TL-WR842N,用来组局域网,也供ipad.kindle. ...

  6. 联通友华通信光纤猫PT952G设置无线路由光猫桥接拨号

    #0x1 登陆后台,点击网络,点击宽带设置.选择第二个接口. 0x2 只修改模式,改成Bridge,其他无需修改.然后直接接路由器拨号就行,或者电脑都行. 0x4  恢复默认拨号,这样修改以后,直接连 ...

  7. 中兴F412光猫超级密码破解、破解用户限制、关闭远程控制、恢复路由器拨号

    不少家庭都改了光纤入户,那肯定少不了光猫的吧.今天以中兴F412光猫为例介绍下此型号光猫超级密码的破解方法.一.F412超级密码破解方法1.运行CMD,输入telnet 192.168.1.1: 2. ...

  8. 成功获取并更改中兴F660光猫的超级用户密码解除四台限制

    上次雷雨后更换的中兴的F660光猫还是很不错的,很稳定,不过超级密码确实记不住,找了些资料,今天成功的更改了密码,简要的写出过程以备下次参考: 第一步:获取超级密码(已知用户名telecomadmin ...

  9. 中国电信中兴F460光猫破解及路由级联设置

    http://blog.csdn.net/pipisorry/article/details/50636541 中国电信中兴F460光猫破解,获取超级密码,修改配置. 之前家里的宽带升级了,换成了光纤 ...

随机推荐

  1. Excel中的clean函数

    纯属note. 之前经常用excel处理数据的时候,对长文本或网站上拉取的值都会用clean函数清除一些我们肉眼看不到的非打印字符. Excel官方介绍:clean 删除文本中的所有非打印字符. 此次 ...

  2. Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件

    前言 写了个类似上篇搜索的封装,但是要考虑的东西更多. 具体业务比展示的代码要复杂,篇幅太长就不引入了. 效果图 2019-04-25 添加了下拉多选的渲染,并搜索默认过滤文本而非值 简化了渲染的子组 ...

  3. Pig设计模式概要以及与SQL的设计模式的对比

    2019独角兽企业重金招聘Python工程师标准>>> 1概要模式 概要模式其实就是数据的全貌信息的获取,主要分为3种: 1.1数值概要 #HSQL SELECT MIN(num), ...

  4. 【阅读笔记】Ranking Relevance in Yahoo Search (一)—— introduction & background

    ABSTRACT: 此文在相关性方面介绍三项关键技术:ranking functions, semantic matching features, query rewriting: 此文内容基于拥有百 ...

  5. docker批量删除本地镜像和容器

    长时间运行docker,每次只用docker kill去停止容器,但是从没删除过本地镜像,导致有上百个镜像在占用内存. 1.批量停止容器 docker container stop $(docker ...

  6. 跟哥一起学Python(1) - python简介

    01—写在前面 我做了十几年的程序猿,码过代码.带过项目.做过产品经理.做过软件架构师.因为我是做通信设备软件的,面向底层操作系统,所以我的工作主要以C语言为主.Python在我的工作中通常用来写一些 ...

  7. golang server示例

    一个简单的web服务器 package main import ( "fmt" "log" "net/http" ) func main() ...

  8. libevent(七)信号事件监听

    libevent通过socketpair实现对信号事件的监听. 还记得event_base吗? struct event_base { struct evsig_info sig; // 略 }; e ...

  9. GCRoots

    JVM面试汇总 JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots 什么是垃圾 简单来说就是内存中已经不再被使用的空间就是垃圾 如何判断一个对象是否可以被回收 引用计数法 Java中,引 ...

  10. W - Doom HDU - 5239 线段树 找取模的规律+求一个很大的数的平方对一个数取模的写法 特别的模数==2^63-2^31

    这个题目一开始感觉还是有点难的,这个模数这么大,根本就不知道怎么写,然后去搜了题解,知道了怎么去求当x很大的时候x的平方对一个数取模怎么样不会爆掉. 然后还顺便发现了一个规律就是当一个数更新一定次数之 ...