漏洞介绍
Cisco RV340在2023年爆出了一个CVE-2023-20073漏洞,该漏洞是由于文件上传时授权执行机制不充分造成的,攻击者可通过向受影响设备发送伪造的 HTTP 请求来利用此漏洞。成功利用漏洞后,攻击者可向受影响设备上传任意文件。需要研究该漏洞,首先得对Cisco RV340固件进行仿真。
在CVE官网上可以搜素到CVE-2023-20073漏洞的相关信息

Cisco RV340、RV340W、RV345 和 RV345P Dual WAN Gigabit VPN 路由器中基于 Web 的管理界面中存在一个漏洞,未经身份验证的远程攻击者可将任意文件上传到受影响的设备。
环境搭建
固件下载
在思科官网(https://software.cisco.com/download/home/286287791/type/282465789/release/1.0.03.29)中下载最新的RV340固件。

文件系统提取
下载好固件后,拖入虚拟机中,使用binwalk进行固件解析
使用常用的-Me参数
binwalk -Me RV34X-v1.0.03.29-2022-10-17-13-45-34-PM.img

中间会报一些编码上的错误,但是不妨碍我们对文件系统进行提取
提取后,可以在ubifs-root文件夹中看到文件系统

网络环境搭建
通过qemu进行固件模拟时,免不了和宿主机进行通信,需要配置一定的网络环境,一般的方法是设置一个网桥,开一个接口,将这个接口给qemu,然后流量的发送都通过这个网桥。示意图如下:

具体创建命令如下,一般都是通用的:
#!/bin/sh
#sudo ifconfig eth0 down # 首先关闭宿主机网卡接口
sudo brctl addbr br0 # 添加一座名为 br0 的网桥
sudo brctl addif br0 ens33 # 在 br0 中添加一个接口
sudo brctl stp br0 off # 如果只有一个网桥,则关闭生成树协议
sudo brctl setfd br0 1 # 设置 br0 的转发延迟
sudo brctl sethello br0 1 # 设置 br0 的 hello 时间
sudo ifconfig br0 0.0.0.0 promisc up # 启用 br0 接口
sudo ifconfig ens33 0.0.0.0 promisc up # 启用网卡接口
sudo dhclient br0 # 从 dhcp 服务器获得 br0 的 IP 地址
sudo brctl show br0 # 查看虚拟网桥列表
sudo brctl showstp br0 # 查看 br0 的各接口信息
sudo tunctl -t tap0 -u root # 创建一个 tap0 接口,只允许 root 用户访问
sudo brctl addif br0 tap0 # 在虚拟网桥中增加一个 tap0 接口
sudo ifconfig tap0 0.0.0.0 promisc up # 启用 tap0 接口
sudo brctl showstp br0
注意:如果是eth0的话,则需要将ens33全部换成eth0。
可以在命令行中一条一条输入,也可以将所有命令写入一个sh文件,例如net.sh,接着给文件赋予可执行权限chmod +x net.sh,最后执行文件./net.sh即可


运行net.sh后,可以使用ifconfig看到配置的信息

启动qemu环境
首先需要明确,需要仿真的环境类型是什么。
查看bin文件下的busybox类型

可以看到文件系统是arm架构,小端序列。
在https://people.debian.org/~aurel32/qemu/armhf/上下载对应的启动文件

qemu启动命令如下:
sudo qemu-system-arm -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress \
-initrd initrd.img-3.2.0-4-vexpress -drive if=sd,file=debian_wheezy_armhf_standard.qcow2 \
-append "root=/dev/mmcblk0p2" -net nic -net tap,ifname=tap0,script=no,downscript=no \
-nographic -smp 4
命令解释如下:
- qemu-system-arm是qemu中用于模拟ARM架构的系统。
- -M参数指定需要模拟的硬件平台,这里指定为VEXPRESS-A9,是一个ARM Cortex-A9处理器
- -kernel参数指定加载的linux内核,vmlinuz-3.2.0-4-vexpress是一个针对VEXPRESS-A9架构的3.2.0-4版本的内核
- -initrd参数指定初始RAM磁盘(initrd)的文件
- -drive参数设置虚拟硬盘,if=sd 表示使用SCSI设备接口,file=debian_wheezy_armhf_standard.qcow2 指定了硬盘映像文件的路径。
- root=/dev/mmcblk0p2 指定了根文件系统的设备,在这里是一个模拟的MMC(内存卡)设备。
- -net nic参数添加网络接口控制器,即NIC
- -net tap参数配置了一个虚拟网络接口,tap0 是接口的名称。script=no,downscript=no 表示不使用网络启动脚本。
- -nographic 表示不使用图形界面,即以命令行模式运行。
10.-smp参数用于启动SMP(对称多处理)&

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



