
1.注入点的发现:
探索路由器的诊断功能时,联想到练习过的DVWA 命令注入靶场。这类调用操作系统命令实现的功能,若对于用户输入验证不足,很容易引入命名注入风险。基于这种猜测,开始了这次实践。



1.采用命令注入常规思路,通过 ; 进行命令拼接。
2.由于后端采用仅采用正则匹配的方式回显ping包结果,故用户注入部分无法回显有效信息。
3.联想Time Base盲注的思路,采用时延的方式,确定注入点的存在。
2.漏洞利用:
难点1: busybox功能裁剪:

反弹shell 最常用的nc命令没有,所幸有一个比较好用的wget.
难点2: 只读文件系统/www路径无法写入
# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / squashfs rw 0 0
proc /proc proc rw 0 0
none /var ramfs rw 0 0
none /tmp ramfs rw 0 0
none /media ramfs rw 0 0
none /dev/pts devpts rw 0 0
/dev/mtdblock5 /etc/config jffs2 rw 0 0
none /var ramfs rw 0 0
none /tmp ramfs rw 0 0
none /media ramfs rw 0 0
由于squashfs 只读文件系统的原因,/www web UI的路径下并不可以写入web shell。
解决办法:
命令注入,通过现有busybox 残留的wget命令,向/tmp路径下上传完整的busybox,再利用其nc命令实现 getshell
命令注入,上传完整版本busybox:
https://busybox.net/downloads/binaries/1.21.1/

如上图所示,注入wget命令,给路由器下载完整版的busybox,然后啥都可以干了(web服务是root账户启的)。

接下来nc反弹shell,整个路由器就是你的了。
3.总结:
1.渗透测试或者探索性测试时,望、问、听、窃打开五观来感知被测对象的一些反馈(ping包时延来判断注入点)。
2.渗透测试或者探索性测试时,我们要善于将被测对象的不可见,变为可见(nc反弹)。
3.善于一点及面逐步扩大战果(上传完整版busybox,扩大漏洞影响面)。

本文详述了一次针对路由器的命令注入测试过程。通过观察路由器诊断功能,利用TimeBase盲注确定注入点,因Busybox功能裁剪,采用wget上传完整busybox到/tmp,最终利用nc反弹shell获取权限。渗透测试中,注重反馈感知、不可见变可见及逐步扩大影响面是关键。
4563

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



