路由器0day漏洞挖掘实战
路由器0day漏洞挖掘实战
本文已发表到安全客:
这个题目,2018年的7月6日的时候在公司内部分享过了,说来也将近一年了,懒得现在才发出来。
在2018年的,4月两个多三个月的时间里,花了比较多的时间去搞一个国产的路由器,挖了一些漏洞后,之后也就没搞了。
也写了个有一点作用的MIPS IDAPYTHO审计辅助脚本
基础知识
简介
1、路由器基本都是阉割版的linux系统 2、架构以MIPS和ARM为主 、一般含有telnet服务 4、很多基础命令以busybox的方式实现(如cat,chmod,date,echo,ifconfig,ls,kill等)
比如下面路由器中的busybox
路由器常见漏洞
Web漏洞
- XSS
- CSRF
二进制漏洞
- 主要是栈溢出
自带后门
- 磊科路由器后门:私有协议,硬编码密码的后门
环境及工具
Ubuntu虚拟机 python IDA Binwalk QEMU 对应架构的qemu虚拟机 gdb及静态编译的gdbserver Burp,filefox插件 。。。。。。
固件的提取与解压
总览
1、对智能硬件(路由器)的升级进行抓包,提取url 2、通过烧录器读取拆卸下来的芯片
、通过mtd的方式
- 查看分区信息
- 一般别人用dd命令来提取,其实用cp和cat也可以
4、通过串口的方式 假如串口可以获得shell,那么可以使用第三种方法
binwalk -Me XXXXXX.bin M ,–matryoshka 递归扫描可解压的 e,–extract 提取 解压到的是_XXXXXX./
以某个路由器为例的漏洞挖掘
审计web源码,发现有些目录(下面的goform)不存在,代码在二进制中实现,故使用黑盒测试
随便试了一下搞了几个XSS
还有自带命令执行的
添加路由处存在命令注入漏洞,这个是到溢出后顺便发现的
这个我编写了个IDAPYTHO审计辅助脚本,用处嘛,有一点点吧。。。
开源地址:
辅助脚本功能如下: 1、到危险函数的调用处,并且高亮该行(也可以下断点) 2、给参数赋值处加上注释 、最后以表格的形式输出函数名,调用地址,参数,还有当前函数的缓冲区大小
详细见下图
针对不确定参数的函数
我们可以点击addr那一列直接到达函数调用处,方便审计
其实跑出来的量还是很大的,我只不过是偶然的机会遇到了刚好又漏洞的。。
我定位到的是下面这里,有strcat和sprintf
向上回溯有个route add的字符串
那应该是添加路由的地方
测试
发现后面goahead的pid都变了,那应该溢出崩溃,重启了
上gdb调试确认溢出
那么漏洞成因就是:strcat和sprintf的拼接
1、基于qemu 2、在设备上调试
qemu
qemu有两种运作模式 用户模式(User mode),启动不同架构的Linux程序 系统模式(System mode),模拟整个电脑系统(这个暂时还没能够实现动态调试)
注:有些程序比较依赖于特定的函数(比如nvram系列函数)就很难用qemu启动了
将对应的qemu程序及其依赖库拷贝到对应目录,使用静态的就没这烦恼了
启动一个mipsel的程序
代码语言:javascript代码运行次数:0运行复制sudo chroot ./ ./qemu-mipsel ./bin/busybox
调试只要加-g参数即可(下面会监听2946端口) sudo chroot ./ ./qemu-mipsel -g 2946 ./bin/busybox ida 使用remote gdb debuger即可
在设备上调试
条件 1、有shell权限 2、有静态编译的gdbserver或者gdb
Reference
《揭秘家用路由器0day漏洞挖掘技术》 《IDA Pro权威指南》 《python 灰帽子》 .py /
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent 删除路由器调试程序函数漏洞#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 6 条评论) |
本站网友 湖北省旅游学校 | 25分钟前 发表 |
4月两个多三个月的时间里 | |
本站网友 表单提交 | 24分钟前 发表 |
chmod | |
本站网友 北京美术馆 | 0秒前 发表 |
对智能硬件(路由器)的升级进行抓包 | |
本站网友 eaglecreek | 19分钟前 发表 |
通过烧录器读取拆卸下来的芯片 | |
本站网友 新居装修 | 15分钟前 发表 |
kill等)比如下面路由器中的busybox路由器常见漏洞Web漏洞XSSCSRF二进制漏洞主要是栈溢出自带后门磊科路由器后门:私有协议 |