tenda某路由器信息泄露查找
本文作者:i春秋作家——icqb32d3a26
1: 前期准备:
(1) 路由器固件
一般获取固件的方法有以下几种
- 官方网站根据对应版本下载(√),点击下载
- 在点击更新固件时抓取对应的更新固件链接
- 拆开路由器,找到flash芯片后,通过热风枪取下flash芯片,使用编程器读取
- 通过uart串口进入路由器调试界面,进行flash的备份
(2) binwalk工具
https://github.com/ReFirmLabs/binwalk
2: 固件信息提取
(1) 解压并用binwalk获取固件一些信息解压

binwalk获取信息

(2)从binwalk的结果,我们可以得知tenda这一个固件有trx header和lzma压缩后的数据组成。关于trx header的结构可以参考文章最后的参考链接,
下面使用通过binwalk -e解包
如图所示,解包结果如下

(3)进入到对应提取后的目录查看提取后的文件,对lzma压缩后的数据解压后得到1C这一个文件,再对1C进行binwalk操作。
如图所示,这一次binwalk返回足够多的信息,我们可以了解到这一个tenda路由器使用eCos小端的嵌入系统,在binwalk的结果中我们,我们看到还有一些html文件。

3: 对解压后的固件镜像再次进行提取(1)解压后的固件再次提取
如图所示,提取结果如下

但是我们可以发现,提取后的每一个文件都是data,并不是我们已知的类型,这到底是肿么回事?
我们查看具体的一个xml文件看一下,可以看到这并不是一个正常的xml文件,其中还混杂这其它二进制数据,应该是binwalk在处理xml或者html这类文件时,无法像其它文件一样通过文件头来确定整个文件的大小,github上也有对应的issue在讨论。


(2)如何继续分析
思路:
- 寻找另外一个能够更好处理xml和html数据的工具进行提取
- 分析路由对应cfe如何对镜像进行处理
- 通过正则查找脚本语言相关的代码段进行分析
(3) 我们采用最简单的方法,通过正则查找脚本语言相关的代码段进行分析
Step 1. 使用strings命令将解压后的1C字符串输出到文本
strings 1C > tenda.txt
Step 2. 对应的这款tenda路由器使用asp脚本语言,我们可以通过查找<%xx%>这样的asp代码片段
grep -e "<%.*%>" tenda.txt
如图所示,asp代码片段全部用于在js中初始化一些关于路由器的参数值,没有相关的敏感信息

Step 3. 查找tenda路由器中的cgi处理程序,是否有一些隐藏的链接。
grep -e "cgi" tenda.txt

获取到的信息
/cgi-bin/upgrade
/cgi-bin/DownloadCfg/RouterCfm.cfg
/cgi-bin/UploadCfg
从命名上来看,我们可以得知,upgrade是用来更新固件的、DownloadCfg是用来下载配置文件、UploadCfg是用来上传配置文件的,我们测试下直接访问/cgi-bin/DownloadCfg/RouterCfm.cfg,是否能下载路由器的配置文件。

成功下载路由器的配置文件,文件中包含拨号连接的账号信息。

4: 现网案例查找
在路由器页面里面,我们可以通过js的一些特征作为搜索关键字

fofa中搜索

公网的一些案例


5:总结
也许一个信息泄露漏洞不能代表什么,但是却能够在你继续前行的道路给你力量。对固件静态分析也许也会有些收获,所以不拘泥于分析方法,多思考,或许会有新的发现。
参考链接:
1. trx header
>>>>>>黑客入门必备技能 带你入坑和逗比表哥们一起聊聊黑客的事儿他们说高精尖的技术比农药都好玩
tenda某路由器信息泄露查找的更多相关文章
- 如何安全使用公共Wifi,防止信息泄露?
购物中心,机场,餐厅,咖啡馆,图书馆,公共交通,酒店客房均提供免费无线网络连接,这些网络每天被数百万人使用.然而,大多数人没有意识到的是,免费的公共Wi-Fi并不安全.即使需要密码才能登录,这并不一定 ...
- MS10-070 ASP.NET Padding Oracle信息泄露漏洞项目测试
MS10-070 ASP.NET Padding Oracle信息泄露漏洞1 漏洞描述:ASP.NET由于加密填充验证过程中处理错误不当,导致存在一个信息披露漏洞.成功利用此漏洞的攻击 ...
- CTFHub_技能树_信息泄露
常用备份文件名: www.zip bak文件 在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容 以 ind ...
- WordPress Backdoor未授权访问漏洞和信息泄露漏洞
漏洞名称: WordPress Backdoor未授权访问漏洞和信息泄露漏洞 CNNVD编号: CNNVD-201312-497 发布时间: 2013-12-27 更新时间: 2013-12-27 危 ...
- Linux kernel 内存泄露本地信息泄露漏洞
漏洞名称: Linux kernel 内存泄露本地信息泄露漏洞 CNNVD编号: CNNVD-201311-467 发布时间: 2013-12-06 更新时间: 2013-12-06 危害等级: ...
- Linux Kernel ‘/net/socket.c’本地信息泄露漏洞
漏洞名称: Linux Kernel ‘/net/socket.c’本地信息泄露漏洞 CNNVD编号: CNNVD-201312-037 发布时间: 2013-12-04 更新时间: 2013-12- ...
- Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞
漏洞名称: Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞 CNNVD编号: CNNVD-201311-054 发布时间: 2013-11-06 更新时间: 2013- ...
- Linux Kernel ‘/bcm/Bcmchar.c’本地信息泄露漏洞
漏洞名称: Linux Kernel ‘/bcm/Bcmchar.c’本地信息泄露漏洞 CNNVD编号: CNNVD-201311-053 发布时间: 2013-11-06 更新时间: 2013-11 ...
- 【转】Android应用开发allowBackup敏感信息泄露的一点反思
转载:http://blog.csdn.net/yanbober/article/details/46417531 1 背景 其实这篇文章可能有些小题大作,但回过头想想还是很有必要的,有点阴沟里翻船的 ...
随机推荐
- web服务器部署过程记录
由于之前没有服务器部署经验,又选择了所有软件都是单独编译安装,遇到很多问题,解决之后还是学习到了很多新东西. 如今回过头来还是选择lnmp集成环境的部署方式比较方便快捷:https://lnmp.or ...
- MySQL 组合查询 concat
concat( pms_user.f_pu_name, '(' , pms_user.f_pu_realName,')') as userIds
- windows 安装配置jdk7
1.安装jdk这里不在介绍 2.配置新建用户变量:JAVA_HOME 值为(就是你自己jdk的安装路径):C:\Program Files\Java\jdk1.7.0_75\ 3.配置系统变量:Pat ...
- 【Log】logback指定配置文件(二)
通常我们在不同的环境使用不同的日志配置文件,本章讲指定logback的配置文件,如何使用logback参照[Log]logback的配置和使用(一) 写一个配置加载类,注意JoranConfigura ...
- 让kbmmw 4.8 支持ios 64
随着xe8 的出来,其开始支持IOS 64 的编译了(不支持也没办法,从今年2月开始不支持ios 64 的应用 就不允许入住apple appstore,霸气呀).相信不少同学迫不及待的开始了ios6 ...
- 说说wee sing(ZZ)
我自己在当当上买过wee sing,也在网上下了wee sing 的DVD,也借过同事在淘宝上买的Wee sing 套装(9cd + 5DVD).所以对这套资料还是很熟悉的. 淘宝上的套装卖 ...
- 2018.07.04 POJ 1696 Space Ant(凸包卷包裹)
Space Ant Time Limit: 1000MS Memory Limit: 10000K Description The most exciting space discovery occu ...
- 2018.09.08 NOIP模拟trip(最长链计数)
差不多是原题啊. 求最长链变成了最长链计数,其余没有变化. 这一次考试为了保险起见本蒟蒻还是写了上次没写的辅助数组. 代码: #include<bits/stdc++.h> #define ...
- 2018.07.26NOIP模拟 魔法数字(数位dp)
魔法数字 题目背景 ASDFZ-NOIP2016模拟 题目描述 在数论领域中,人们研究的基础莫过于数字的整除关系.一般情况下,我们说整除总在两个数字间进行,例如 a | b(a能整除b)表示 b 除以 ...
- qmake-how to
简单例子 假设已经实现如下程序: hello.cpphello.hmain.cpp 首先,使用编辑器,在上述文件目录下创建文件hello.pro.然后加入几行语句告诉qmake项目中的源文件和头文件. ...