Skip to content

Latest commit

 

History

History
213 lines (111 loc) · 11.8 KB

HackTheBox-Linux-Charon.md

File metadata and controls

213 lines (111 loc) · 11.8 KB

本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com

一个每日分享渗透小技巧的公众号

大家好,这里是 大余安全 的第 108 篇文章,本公众号会每日分享攻防渗透技术给大家。

靶机地址:https://www.hackthebox.eu/home/machines/profile/42

靶机难度:中级(3.5/10)

靶机发布日期:2017 年 10 月 7 日

靶机描述:

Charon is definitely one of the more challenging machines on HackTheBox. It does not require any advanced techniques, however there are many subtle tricks needed at almost every step of exploitation.

请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用 Kali Linux 作为解决该 HTB 的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

可以看到靶机的 IP 是 10.10.10.31....

nmap 发现开放了 OpenSSH 和 Apache 服务...

查看主页面没发现有用的信息...

通过 gobuster 爆破发现了有利的 cmsdata 目录信息....

通过访问,这是个登录页面还是 SuperCMS 架构... 又要注入了... 开始

通过点击 Forgot password 跳转到了 email 页面...

使用 burpsuite 捕获页面的请求,并将其发送给转发器....

通过简单的测试后...

知道该站点容易受到 SQL 注入的攻击,首先我找到列数,使用 ORDER BY 命令查找表中的列数,找到列数后,我使用 UNION SELECT 命令为输出列名称提供相应的编号,由于 UNION 和 union 已列入黑名单,因此我将 UNion 用于 SQL 注入...

for i in $(seq 0 100); do
        payload="email=a@b.com' UNIoN SELECT 1,2,3,CONCAT(TABLE_SCHEMA, ':', TABLE_NAME, ':', COLUMN_NAME, '@b.com') FROM INFORMATIoN_SCHEMA.COLUMNS WHERE TABLE_SCHEMA != 'InformatiOn_Schema' LIMIT 1 OFFSET $i-- -"
        curl -s -d "$payload" http://10.10.10.31/cmsdata/forgot.php | grep -o '[^ ]*b.com'
        done

经过大量的测试,我创建了简单的脚本,方便查找用户的 user 邮件名称信息....

通过执行自动化脚本,获得了 __username_@b.com__password_@b.com 两个有用的信息... 这里利用这两个邮箱信息继续编辑获取密匙...

for i in $(seq 0 300); do
        payload="email=a@b.com' UNIoN SELECT 1,2,3,CONCAT(__username_, ':', __password_, '@b.com') FROM supercms.operators LIMIT 1 OFFSET $i-- -"
        curl -s -d "$payload" http://10.10.10.31/cmsdata/forgot.php | grep -o '[^ ]*@b.com'
        done

继续简单修改了自动化脚本,测试时 100 输出都是重复的 hash 值.. 我改成了 300 后,出现了有用的信息...

看到,在 201 后,获得了 super.... 的用户邮箱和密匙 hash,这应该是有用的,试试....

成功破解获得了密码...

通过账号密码成功登陆了页面...

发现页面存在文件上传功能,通过上传文件简单测试只允许 jpg、gif、png 格式文件上传...

修改文件名,上传后发现报错了,仅仅能上传图像文件....

并在前段源码中发现了 base64 值...

解码后得到 testfile1,所以很明显,这是一个测试上传的工具模块....

尝试上传 shell,命名文件名,并将一个反向 PHP shell 插入其中,以绕过图像限制... 成功上传了...

简单成功测试输出...whoami

利用简单 shell,获得了反向外壳,获得了 www 低权却无法读取 user_flag 信息...

需要继续提权...

在 home/decoder 目录下发现两个 rsa 密匙文件... 下载到本地进行爆破看看...

google 对该两文件进行搜索,需要利用:

[RSA](https://github.com/Ganapati/RsaCtfTool)

工具进行解密... 下载即可

执行查看 help,利用 --publickey 和 --uncipherfile 命令顺利破解,获得了密码...

namp 前面就扫到开放了 SSH,利用用户密码成功登录... 并获得 user_flag 信息....

上传 LinEnum 工具枚举所有可利用信息... 在 SUID 发现了 supershell 二进制程序.... 进行下载到本地进行分析...

利用 IDA 对二进制程序进行了分析,可发现改程序仅在运行 / bin/ls...

经过一些测试后,利用运行 / bin/ls 会输出完整文件内容.... 因此输出了 root_flag 信息... 但是还是想要获得 root 权限...

通过另外的测试,创建了文件夹 dayu,尽然可以因此执行 root 权限读取文件信息,利用执行 / bin/ls 也可以将文件提权到 root 权限...

为了获得 root 权限,我简单编写了二进制编码,并利用 GCC 编译,如果由 root 用户运行(或设置了 SUID 位),则将 uid 和 gid 设置为 0.....

将二进制上传后,利用 / bin/ls 提权 dayu.me 二进制位 root 权限执行....

通过设置为 root 权限的 dayu.me,直接执行获得了 root 外壳.....

爆破 + 注入 + 破解密匙 + 解码编译 + 分析二进制程序到制作 shell 提权的过程....

又学到了新的东西和巩固了以往的知识....

由于我们已经成功得到 root 权限查看 user 和 root.txt,因此完成这台中级的靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。

如果觉得这篇文章对你有帮助,可以转发到朋友圈,谢谢小伙伴~

随缘收徒中~~ 随缘收徒中~~ 随缘收徒中~~

欢迎加入渗透学习交流群,想入群的小伙伴们加我微信,共同进步共同成长!

大余安全

一个全栈渗透小技巧的公众号