本帖最后由 xukaiming 于 2015-3-20 10:41 编辑
转载于乌云
首先背景是,一年多前开始家里一直没移动的信号,找移动投诉一年多都是敷衍,后来我突然发现可以在工信部的网站上投诉,结果投诉之后没过两天移动就给我打电话了,马上派人来家里免费装了个京信的Femto基站(基站型号HNB-10,A01L,产品类别GSM_N2,硬件版本HNB-10,A01LV2,软件HNB10L_A0AV01.00.1110_0)。(工信部这效率堪比12306)
Femto基站就是个最大功率30dBm的微型GSM基站,通过家里的宽带连接移动网络,提供GSM信号,同时还具有WLAN功能。为防止出乱子,普通用户只能通过192.168.197.1与admin/123456修改WLAN部分的设置,厂家人员通过隐藏地址与特殊用户名和密码才能修改GSM部分的设置(当时来安装的厂家人员不让我仔细看,只知道有个复杂的界面)。
不知道隐藏地址,我就从0试到255,结果地址是192.168.197.241,早知道我从上往下试了……
看源码,与登录有关的全在/js/USER.js里面,用户身份有三种定义,familyUser、marketUser和root,通过/C/userProcessFunction.asp?reqType=4&role=marketUser可以查到marketUser对应的用户名是debug(root那个有点问题我就没弄),USER.js验证密码正确后会SetCookie,但cookie中只包含用户名、用户身份与登录成功标志,登录后也只验证用户名与用户身份是否对应,而不会验证密码,所以在登录界面直接运行SetCookie就能绕过登录。
进去之后再无二次验证,可以修改所有GSM参数,如果乱改可能对GSM网络造成干扰
又翻了翻进去之后的一堆源码,找到一个/business/config/fileManager.asp,是个隐藏的自带的文件管理器(而且不登录也能用),可以上传与下载基站的所有程序与数据文件,包括主程序包(/tffs0/user2/OAM.zip)与密码数据(/ram0/OAM/software/web/web_page/web.xml)
中间那两个密码是123456,上下两个在各个md5网都查不出来,不过可以替换掉之后上传文件然后再用修改密码功能修改并保存(因为是在ram里替换,所以必须用修改密码功能修改并保存,rom里保存的位置我没找到)。
我不想改默认密码,但是又不甘心都找到md5了还不知道密码,最后百度了一下竟然在豆丁找到一个内部的Femto设备安装手册,里面直接写了密码是2342@WAS_ap,看了下md5是对的,要是早知道这个我就不用这么绕来绕去了……不过好像就debug这个用户名好使,其他几个都不行
主程序包没有加密,里面有基站本身运行的一些程序和web管理界面所有的东西,里面的/OAM/software/web/web_page/xml/manTree.xml是选项菜单列表,里面欢迎短信和文件管理两行被注释掉了,修改之后上传
群发短信和文件管理在左侧的列表里出现了(虽然文件管理不出现也能用)
另外还有个问题,使用备份设置功能生成的param.xml,其中就有群发短信的选项,修改后再载入设置,可以不使用文件管理等隐藏功能就达到群发短信的目的(我最开始就是这么干的)
然后就是效果,要是再把CRO改大点,把RXLEV-ACCESS-MIN改小点,都能比得上一些伪基站了,测试时刚一开家里一堆手机同时响起短信铃声,趁还没发到别人家去赶紧关掉。不过伪基站一个也得上万,这个可是只要去工信部网站投诉就能免费领取的……
漏洞证明:上面已经写得比较详细了,不再赘述 修复方案:要改的很多,可以参照上面的说明一条条修改,多做一些验证工作和加密工作,不要把那些重要的东西放在容易被发现的地方。
不过用Femto基站的人还不是很多,所以影响应该还没那么严重,慢慢改就好
|