Intro
Attack
首先对靶机进行扫描,并枚举出对应的服务
扫描结果发现目标机子开放了 ssh
和 http
端口,且 80 端口做了一个301跳转,这个以 .htb 结尾的域名是靶机的一个突破口,先在 hosts
文件添加该服务器的IP地址和域名,然后在访问该服务器发现可以正常打开web服务了
整个网站就一静态文件,审查元素看了下发现有个主机为 s3 的子域,但这主机是访问不了的
为此我们再往 hosts 文件里绑定这个域名,然后再打开 s3,发现图片可以正常显示了,访问网站根目录返回 {"status": "running"}
接下来一顿瞎操作,爆破ssh,查找敏感文件,最后使用 Dirsearch 找出两条可访问的路径
python3 dirsearch.py -u http://s3.bucket.htb -e /usr/po7/dic/shells.txt
访问 /health 返回如下结果
可以看出来这台服务器运行着 Awazon 的网络服务(S3存储桶以及与DynamoDB服务)访问 /shell 跳转到了 http://444af250749d:4566/shell
简单分析下接下来的流程,不出意外的话我们需要通过 aws cli 连上s3这个桶,
aws cli的使用方法
详见查看:https://blog.csdn.net/libing_thinking/article/details/48091743
官方文档:https://docs.aws.amazon.com/cli/latest/reference/
如果你没有配置任何东西的话,则需要使用 aws configure
配置CLI,题目没有给出任何的 ID和Key,为此我们随便填即可
[email protected]:~/hacking# aws configure AWS Access Key ID [****************test]: test AWS Secret Access Key [****************test]: test Default region name [us-east-1]: us-east-2 // 区域终端节点 Default output format [text]: text
填好后我们开始挨个枚举服务,列出 S3 会发现一个叫 adserver 的桶
而列出 DynamoDB 的所有表,会发现一个叫 users 的表
查看表内容发现了三个账号,由于我们还不知道该在哪使用它,所以先放一边,待会用得着
返回 s3 列出adserver里边的文件
会发现这个就是我们刚才访问的那个网站,前面已经写了S3是一个存储对象,同时也是一台云服务器,我们可以在上边运行各种命令,接下来我们反弹个 shell 试试,然后用 nc -vlp [ Port ]
等待连接
脚本地址:https://github.com/icecliffs/backup/tree/main/php-webshell
访问目标php,连接成功,但这破题会隔几秒钟把新的文件删除掉,我敲了几个命令就连不上了,所以接下来必须抓紧时间获取重要信息,自己的权限低的一批,但查看 /etc/passwd
文件发现有几个用户
第一眼就看到了 roy 是个正常用户
随便翻了一下后,user.txt 有猫腻,打开后获得 flag ,本题结束