联通光猫型号:HG220GS-U
软件版本:E00L3.03
运营商⼀直在做光猫防破解,对抗升级还是⽐较快的,所有的分析结论都和版本绑定的,因为运营商或者路由器的开发商看到后可能⽴马就改了。
我⾃⼰主要是要改为桥接,这个需求其实打联通的保修电话让局端改⼀下应该就能搞定。不过之前看过⼀两个⽼版本的教程,也照葫芦画瓢破解成功了,但我⼿上的这个版本有点⿇烦,现有的教程基本都失效了。有点好奇,这次花点时间仔细看了⼀下,不过这次被某些⼈打击得⽐较厉害,说果然是IT狗云云,只知道和代码过不去。都云作者痴,谁解其中味!
既然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, 256, &aesContext);
元旦祝福语2022outLen = 0;
for (size_t k = 0; 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[] = "112233445566";
constexpr size_t insize = sizeof(mac) - 1;
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 = 0;
Encrypt(mac, sizeof(mac) - 1, out, outlen);
CString passwd;
for (size_t k = 0; k < outlen; ++k)
{
CString t;
t.Format(L"%02X", out[k]);逯恣祯
passwd += t;
}
_tprintf(_T("password for CUAdmin: %s\n"), (LPCTSTR)passwd); }粉底液哪个牌子好用推荐
发布评论