漏洞简介
TOTOLINK NR1800X最近报了一些cve,现主要对其命令注入进行具体分析,以及对其登录绕过进行分析。
固件下载地址:https://www.totolink.net/home/menu/detail/menu_listtpl/download/id/225/ids/36.html
环境搭建
固件提取
binwalk提取固件
binwalk -Me TOTOLINK_C834FR-1C_NR1800X_IP04469_MT7621A_SPI_16M256M_V9.1.0u.6279_B20210910_ALL.web
查看文件相关信息,mips架构,小端序,使用mipsel来进行模拟。
readelf -h ./bin/busybox
固件模拟
有两种模拟方式,user模式和system模式,感觉根据后面的模拟结果来看,好像差别不是很大。
user模式模拟
尝试用qemu模拟
cp $(which qemu-mipsel-static) .
sudo chroot . ./qemu-mipsel-static ./usr/sbin/lighttpd
会报错,显示No configuration available. Try using -f option.
,这个报错是需要-f指定已有的配置文件。
运行sudo chroot . ./qemu-mipsel-static ./usr/sbin/lighttpd -f ./lighttp/lighttpd.conf
即可,接着又会报错,说缺少一个文件,创建在对应目录创建一个即可。
cd ./var
mkdir run
cd run
touch touch lighttpd.pid
然后运行,可以看到服务启动成功。
但是这个路由器登录是需要密码的,并且由于是模拟的关系,大部分功能无法正常使用,登录不进去,但是还好经过搜索,发现看雪上有一篇文章讲述了如何进行绕过登录,登录过后,能观察到里面的一些设置,通过bp抓包能分析出一些有效的请求头内容,其数据传输通过json实现。
system模拟
user模拟中创建的文件都要有,后面会一起传到quem模拟的虚拟机中。
下载qemu启动虚拟机所需要的“镜像”,这是小端序,所以去下载mipsel的镜像。
wget https://people.debian.org/~aurel32/qemu/mipsel/debian_wheezy_mipsel_standard.qcow2
wget https://people.debian.org/~aurel32/qemu/mipsel/vmlinu