1、CVE官网漏洞描述
编号:CVE-2026-76071
标题:Netis NC63 V3.0.0.3327 中的堆栈缓冲区溢出问题,由 destHost 参数引起
描述:通过 V3.0.0.3327 版本更新的 Netis NC63 固件存在基于堆栈的缓冲区溢出漏洞。该漏洞使得未经认证的远程攻击者可通过向 netis.cgi 中的 ipFilterList=mod 操作提供过大的 destHost 参数,从而覆盖保存的堆栈状态。攻击者可以利用无限制的 sscanf 函数进行攻击,将用户提供的输入复制到固定大小的堆栈缓冲区中,从而在认证验证之前执行恶意代码。最终,攻击者可以以 root 用户的权限实现远程代码执行,因为 Boa Web 服务器以 root 权限运行CGI 环境。
固件下载地址:https://www.netis-systems.com/support/downinfo.html?id=35
2、提取文件系统
分析固件
binwalk netis_NC63_V3.0.0.3327.bin

提取文件系统
binwalk -Me netis_NC63_V3.0.0.3327.bin

unsquashfs -d rootfs 25A822.squashfs

2、信息收集
识别架构
checksec --file=./bin/busybox

可以发现是MIPS32位小端架构,Got表可以写,没有栈溢出保护,栈可以执行,没有开启地址随机化。
3、分析启动项
查看inittab文件
/etc/inittab 是 Linux 传统 init 系统的启动配置文件,可以理解为系统开机后的“启动流程调度表”。
所以我们首先查看目录 /squashfs-root/etc/下的inittab文件

Boot-time system configuration/initialization script.//说明这是系统启动时的配置/初始化脚本
::sysinit:/etc/init.d/rcS //系统初始化阶段:开机首先执行 /etc/init.d/rcS 脚本,用于启动网络、Web服务等核心服务
查看rcS脚本
cat etc/init.d/rcS

前面的所有代码都在做准备工作(自检与恢复),这里是系统服务的入口 /bin/script/startup.s
& 代表后台运行,rcS 脚本直接退出,剩下所有初始化都在 startup.sh脚本。
查看startup.sh脚本
cat bin/script/startup.sh

看到报错,我们去这个目录下看一下这个脚本的文件详细属性
使用命令
ls -l bin/script/startup.sh

startup.sh 并不是一个独立文件,它只是一个快捷方式。这个快捷方式指向的文件,是固件系统内的绝对路径 /bin/script/cscripts,进下来我们去分析这个文件。
IDA分析cscripts文件
通过搜索相关web服务的字符串,例如httpd Boa Lighttpd GoAhead等

RunSystemCmd("boa&"):可以发现这个设备启动后运行了Boa Web 服务。
接下来我们去分析boa服务相关文件。
分析boa服务
grep -r boa

gedit etc/boa/boa.conf



这个 Boa 服务器网页放在 /web,CGI 脚本能调用 /bin 等目录程序,并且整体以 root 权限跑
4、系统模拟
qemu系统模拟
qemu-system-mipsel \
-M malta \
-cpu 74Kf \
-kernel /home/iotsec-zone/Desktop/Tools/qemu-images/mipsel/vmlinux-3.2.0-4-4kc-malta \
-hda /home/iotsec-zone/Desktop/Tools/qemu-images/mipsel/debian_wheezy_mipsel_standard.qcow2 \
-append "root=/dev/sda1 console=ttyS0" \
-net nic -net tap,ifname=tap0,script=no,downscript=no \
-nographic
配置网络
#宿主机 sudo tunctl -t tap0 -u `whoami`
sudo ifconfig tap0 192.168.10.1/24 up
#虚拟机
ip link add br0 type dummy
ifconfig eth0 192.168.10.2/24
ifconfig br0 192.168.10.3/24

文件传输
#宿主机
tar -cvf web.tar.gz root
