逆向路由器固件之敏感信息泄露 Part2
之前的文章中详细介绍了各种解包路由器固件的工具。解包之后就获得了固件中的文件。下一步就是分析文件寻找漏洞了。这次分析的目标是Trendnet路由器,分析的漏洞是一个远程获取路由器权限的漏洞。
初步分析
通过路由器的登录界面得知路由器型号为Trendnet TEW-654TR,这对收集目标的信息是很有帮助的。通过官方介绍得知该路由器的一些特性。包括支持路由器,无线接入点,无线接入点客户端三种模式,支持NAT和有状态的包检查防御攻击以及有一个简单的web界面支持远程管理等。官网目前最新版固件为V1.10B26。本文中分析的固件版本为V1.10B12,可以从这里下载。为了方便就不适用file等工具进行信息收集了。直接使用binwalk查看bin文件信息,可以看到是比较标准的基于linux的文件系统。
使用Firmware Mod Kit直接自动解包成功:
解包成功之后第一件事情就是看一下etc目录配置文件和启动脚本。
![](/assets/blank.gif)
etc git:(master) ls -al total 32 drwxrwxrwx 7 root wheel 238 5 30 2011 . drwxrwxrwx 17 root wheel 578 5 30 2011 .. -rwxrwxrwx 1 root wheel 230 11 10 2008 fstab-rwxr-xr-x 1 root wheel 3774 5 30 2011 icon.ico-rwxrwxrwx 1 root wheel 109 11 10 2008 inittabdrwxrwxrwx 3 root wheel 102 3 23 2010 rc.d lrwxrwxrwx 1 root wheel 22 8 24 19:37 resolv.conf -> ../var/etc/resolv.conf
![](/assets/blank.gif)
并没有发现有价值的配置文件,但是rc.d目录下有一个叫rcS的启动脚本。
etc git:(master) cd rc.d rc.d git:(master) ls -altotal 8drwxrwxrwx 3 root wheel 102 3 23 2010 . drwxrwxrwx 7 root wheel 238 5 30 2011 .. -rwxrwxrwx 1 root wheel 768 3 23 2010 rcS
rcS通常是在启动的时候初始化服务和环境,所以值得仔细看一下。
![](/assets/blank.gif)
rc.d git:(master) cat rcS#!/bin/ash# This script runs when init it run during the boot process.# Mounts everything in the fstabmount -amount -o remount +w /# Mount the RAM filesystem to /tmpmount -t tmpfs tmpfs /tmp# copy all files in the mnt folder to the etc foldercp -a /mnt/* /etc mkdir -p /var/etc mkdir -p /var/firm mkdir -p /var/log mkdir -p /var/misc mkdir -p /var/run mkdir -p /var/sbin mkdir -p /var/tmp mkdir -p /tmp/var cp -f /etc/udhcpd.conf /var/etc/ cp -f /etc/udhcpd.leases /var/misc/#Add link for resolv.conf#ln -sf /var/etc/resolv.conf /etc/resolv.conf# Load configure file from Flash /bin/echo "Init System..." system_manager &# Start tftpd /bin/echo "Start Tftpd..."tftpd &#insert cc_dev module for reset packet counterinsmod /lib/modules/cc_dev.ko
![](/assets/blank.gif)
脚本比较简单,先建立一些目录,然后启动了system_manager和tftp,最后加载了一个内核模块。先看下tftp吧。
![](/assets/blank.gif)
eve@eve:/opt/firmware-mod-kit/trunk/fmk/rootfs$ find -name tftpd ./sbin/tftpd eve@eve:/opt/firmware-mod-kit/trunk/fmk/rootfs$ file ./sbin/tftpd ./sbin/tftpd: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), stripped eve@eve:/opt/firmware-mod-kit/trunk/fmk/rootfs$ strings ./sbin/tftpd /lib/ld-uClibc.so.0p ,D_init _fini __uClibc_main.......
![](/assets/blank.gif)
通过函数名和一些字符串,感觉像是一个可以直连的tftp server。尝试连接一下试试看。
![](/assets/blank.gif)
eve@eve:~$ tftp 1.1.1.102 tftp> get /var/etc/udhcpd.confReceived 615 bytes in 0.0 seconds tftp> quit eve@eve:~$ cat udhcpd.conf # Sample udhcpd configuration file (/etc/udhcpd.conf)# The location of the leases filelease_file /var/misc/udhcpd.leases# The location of the pid filepidfile /var/run/udhcpd.pid# Everytime udhcpd writes a leases file, the below script will be called.# Useful for writing the lease file to flash every few hours.notify_file dumpleases # <--- useful for debugging# The following settings are added by system_managerinterface br0opt router 192.168.10.1option subnet 255.255.255.0option domain start 192.168.10.101end 192.168.10.199option lease 604800static_lease 00:14:d1:b6:02:86 192.168.10.1
![](/assets/blank.gif)
寻找敏感信息
发现tftp服务是运行的而且可以直接连接。下一步就是找一下哪里存有敏感信息了。通过rcS文件中的注释中可以知道system_manager这个程序可以从flash中加载配置文件。如果system_manager把配置文件写入到了临时目录或者虚拟内存盘中,那么我们就可以直接下载配置文件了。查找一下system_manager中使用的文件路径:
![](/assets/blank.gif)
eve@eve:/opt/firmware-mod-kit/trunk/fmk/rootfs$ strings ./usr/bin/system_manager | grep '/'/lib/ld-uClibc.so.0/etc/default_rt.db /etc/rt.db /etc/default_ap.db /etc/ap.db /etc/default_apc.db /etc/apc.db ln -sf /var/etc/resolv.conf /etc/resolv.conf /etc/scripts/config-vlan.sh 2 0tar -zxf /etc/www.tgz......
![](/assets/blank.gif)
db后缀的几个文件引起了我的注意,每一个文件都有一个文件名添加了default的备份文件。几乎所有的路由器都有恢复默认配置的功能,所以他们一定会把默认的配置存在某个地方。如果这些db文件是路由器的配置文件就有点说的通了。但是哪个文件存储了敏感的密码之类的信息呢。当然可以三个都下载下来看一下。想到最开始查看产品信息的时候有说到,这款路由器支持3种模式:route,access point,access point client。这里的3个db看起来刚好对应三种模式的配置。既然我们测试的这个目标开启了远程web管理,应该是route模式,所以先下载rt.db看看。
eve@eve:~$ tftp 1.1.1.102 tftp> binarytftp> get /etc/rt.dbReceived 49152 bytes in 0.1 seconds tftp> quiteve@eve:~$ file rt.db rt.db: SQLite 3.x database
sqlite数据库。看一下里面的数据。
![](/assets/blank.gif)
eve@eve:~$ sqlite3 rt.db SQLite version 3.6.22Enter ".help" for instructions Enter SQL statements terminated with a ";"sqlite> .tables advanced_network restore_default wan_static daylight_saving smtp_settings website_filter db_version special_application website_filter_mode dhcp_server static_routing wireless_advanced dmz syslog wireless_basic dynamic_dns time wireless_filter dynamic_routing user wireless_filter_mode ip_filter virtual_server wireless_security lan_settings wan_dhcp wireless_wps log_setting wan_l2tp wizard_setting message wan_pppoe wpa_settings nat_filter wan_pptp remote_management wan_settings sqlite> .schema user CREATE TABLE "user" ("user_name" VARCHAR DEFAULT '', "user_pwd" VARCHAR DEFAULT '', "level" CHAR DEFAULT ''); sqlite> select * from user; admin|asecretpassword|1user|asecretpassword|0sqlite>
![](/assets/blank.gif)
可以直接查询到登陆密码。使用数据库中的密码成功登陆。
通过一些简单的分析,我们找到了一个远程利用的漏洞。欢迎来到嵌入式安全的世界~当然这个漏洞看起来有点挫。下一篇会继续一些一些更有意思的漏洞。
在最新版的固件中,厂商直接禁用掉了开机启动tftp的功能来解决这个问题。
# Load configure file from Flash /bin/echo "Init System..."system_manager & # Start tftpd #/bin/echo "Start Tftpd..."#tftpd & #insert cc_dev module for reset packet counter insmod /lib/modules/cc_dev.ko
![](/assets/blank.gif)
逆向路由器固件之敏感信息泄露 Part2相关推荐
- 配置snmp_多种设备基于 SNMP 协议的敏感信息泄露漏洞数据分析报告
作者:知道创宇404实验室 1. 更新情况 2. 事件概述 SNMP协议[1],即简单网络管理协议(SNMP,Simple Network Management Protocol),默认端口为 161 ...
- 【转】Android应用开发allowBackup敏感信息泄露的一点反思
转载:http://blog.csdn.net/yanbober/article/details/46417531 1 背景 其实这篇文章可能有些小题大作,但回过头想想还是很有必要的,有点阴沟里翻船的 ...
- Spring Boot框架敏感信息泄露的完整介绍与SRC实战(附专属字典与PoC)
转载于:https://www.freebuf.com/vuls/289710.html #前言 ##Spring Boot框架介绍 Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配 ...
- 检测到目标url存在内部ip地址泄露_Cendertron,动态爬虫与敏感信息泄露检测
Cendertron,动态爬虫与敏感信息泄露检测 Cendertron = Crawler + Rendertron Cendertron https://url.wx-coder.cn/HinPM ...
- pythoninformation leakage_GitHub - MrFk/GSIL: Github Sensitive Information Leakage(Github敏感信息泄露)...
GSIL(GitHub Sensitive Information Leak) Monitor Github sensitive information leaks in near real time ...
- 开发者论坛一周精粹(第十四期):CVE-2017-7529:Nginx敏感信息泄露
摘要: 2017年7月11日,Nginx官方发布最新的安全公告,漏洞CVE编号为CVE-2017-7529,该在nginx范围过滤器中发现了一个安全问题,通过精心构造的恶意请求可能会导致整数溢出并且不 ...
- el-form 动态校验规则_动态多线程敏感信息泄露检测工具
weakfilescan 基于爬虫,动态收集扫描目标相关信息后进行二次整理形成字典规则,利用动态规则的多线程敏感信息泄露检测工具,支持多种个性化定制选项 包括: 规则字典多样化定义(支持正则.整数.字 ...
- 目录遍历及敏感信息泄露原理及案例(实验操作)
一.目录遍历漏洞概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后 ...
- 【web渗透思路】敏感信息泄露(网站+用户+服务器)
前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...
最新文章
- 吴恩达新课发布1天,引3万人观看 | 完整PPT
- 为什么处理排序数组要比处理未排序数组快?
- Tensorflow:TF模型文件(checkpoint文件夹下ckpt文件之data、index、meta)保存、模型导入、恢复并fine-tuning之详细攻略
- JZOJ 3853. 【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)
- 2.3.2 操作系统之实现临界区进程互斥的软件实现方法
- 腾讯技术直播间 | 当感性遇上理性,当魔术遇上数学
- h3csyslog_H3C Syslog简单配置
- springboot解决跨域问题(Cors)
- DB2查询主键、索引、表约束
- android studio 找不到reosurce,EF 6 Bridge Table Insert Not Working
- 安装谷歌 axure插件
- 国际电话区号mysql表SQL
- intel收购Altera
- 导弹防御系统(LIS)
- Linux磁盘管理基础——分区(MBR分区格式)
- 【前端技术】一篇文章搞掂:JS
- 牛客网小白二(2018.4.21)
- 机器学习基石 5.3 Effective Number of Hypotheses
- 计算机底层架构(偏硬件)综述
- C++手敲Roberts_Prewitt_Sobel实现阈值分割