Hack The Box - Shared 利用ipython特权升级漏洞横向提权,redis加载命令执行模块纵向提权

Hack The Box - Shared

在这里插入图片描述
Hack The Box开始使用流程看这篇

整体思路

1.Nmap扫描

使用工具nmap扫描所有开放端口

命令:nmap ip -p- -v --min-rate=10000

在这里插入图片描述

扫描已开放端口的具体信息

命令:nmap ip -A -sC -sV -p 22,80,443 -T4

在这里插入图片描述

这里可以看到80端口处提示会重定向到http://shared.htb,所以下一步我们将share.htb添加到hosts中

在这里插入图片描述

2.网站漏洞分析

正常访问域名,得到一个购物界面,页面最底部提示我们这个网站用的框架是PrestaShop,但是没有说具体的版本

在这里插入图片描述

用searchsploit搜索一下该框架的漏洞,利用最新的sql注入试了一下,跟这个网站不太相符

在这里插入图片描述
在这里插入图片描述

再回到原网站中点击商品链接,尝试购买

在这里插入图片描述

网页跳转到另一个域名checkout.shared.htb,将新域名添加到hosts中,在当前浏览器成功访问,并的到购物车中数据

在这里插入图片描述

当我们换另一个浏览器访问时,无法调取数据库中的商品数据,这里考虑可能存在Sql注入,使用Burpsuite进行测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在原字符串末尾添加单引号,商品编号处显示"Not Found",在原字符串末尾添加"’ – -",商品编号变回原样

现在可以确定这里存在Sql注入漏洞

3.Sql注入漏洞利用

使用字符"’ union select 1,2,3,…"检测数据库信息写出位置

将原字符串改造为:%7B%22asd**' union select 1,2,4-- -**%22%3A%221%22%7D,得到输出

在这里插入图片描述

现在可以确定,数据库在第二个字段中输出,接下来继续构造payload

' union select 1,(select group_concat(schema_name) from INFORMATION_SCHEMA.SCHEMATA),3-- -

成功返回数据库名称

在这里插入图片描述

构造payload得到checkout数据库的所有表并返回用户表中的信息

' union select 1,(select group_concat(TABLE_NAME,':',COLUMN_NAME) from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA like 'checkout'),3-- -
' union select 1,(select group_concat(username,':',password) from user),3-- -

在这里插入图片描述

在这里插入图片描述

成功得到用户信息,james_mason:fc895d4eddc2fc12f995e18c865cf273

经过MD5密码破解,得到密码Soleil101

在这里插入图片描述

ssh登入

在这里插入图片描述

进入/var/www/shared.htb/ps/var/cache/prod/ContainerGwumvvn/appProdProjectContainer.php中找到一段数据库信息

在这里插入图片描述

成功进入数据库中,但没有找到什么有用的信息

在这里插入图片描述

经过一番探索,我发现这个用户并没有什么权限,继续尝试横向提权

在这里插入图片描述

在这里插入图片描述

4.Ipython漏洞利用

我们看到用户dan_smith可以访问user.txt,并且这里ipython的版本为8.0.0,搜索一下相关rce

在这里插入图片描述

这个漏洞的版本正好符合,我们照葫芦画瓢,接下来新建文件夹/tmp/profile_default/startup/shell.py,并进行漏洞利用

在这里插入图片描述

另外开一个窗口进行反弹shell,这里我们可以看到,反弹得到的仍然是之前的权限

在这里插入图片描述

使用linpeas提权工具进行扫描,根据扫描结果的提示,我们可以尝试将刚才创建的反弹shell文件放到**/opt/scripts_review**下,然后系统会在1min之内执行下面这些命令,ipython命令执行完毕后反弹shell

在这里插入图片描述

横向提权得到dan_smith用户权限,但这个shell窗口只能持续一段时间,

在这里插入图片描述

我们根据得到的用户私钥,使用命令ssh -i key得到稳定的shell窗口

在这里插入图片描述

找到属于当前用户所在组的所属文件夹,从文件夹名称可以看出与redis有关,使用命令nc -nvlp 6379,对redis并且把这个文件夹传回到本地

在这里插入图片描述

5.redis漏洞利用

我尝试执行这个文件,这里说端口6379无法连接,我们打开本地的6379监听,之后继续运行redis_connector_dev,得到了一串输出

在这里插入图片描述
在这里插入图片描述

回到靶机中尝试连接redis,搜索一些可以利用的redis漏洞,成功找到一个可以反弹shell的漏洞,这里通过加载一个模块,加载后可以运行system.exec命令,再利用这个命令执行反弹shell命令

在这里插入图片描述

redis的身份认证是有时间限制的,大约1min后之前的一切操作都需要从头开始

在这里插入图片描述

反弹得到shell,最终得到root的flag

在这里插入图片描述

打完收工!

在这里插入图片描述

知识点汇总

1.在vi编辑器中使用命令**%s/;/\r/g**,vi编辑器换行时使用,将文本中的分号改为换行;

2.find / -group developer -ls 找到属于developer组的文件夹,这也很可能是提权的关键点;

3.使用命令2>/dev/null忽略错误提示;

4.grep -i -R pass . | less -S 在当前文件中寻找包含’pass’关键字的那一行,并且忽略大小写,在每行行尾直接截断,不换行;

5.命令**scp -i rsa username@ip:file .**从目标机器中下载file到当前位置,另一种用法:**scp -i rsa file username@ip:将当前位置的file上传到目标机器/home/username/**中;

工具汇总

1.nmap

2.BurpSuite

3.HackTricks

4.Linpeas

5.Searchexploit

6.CrackStation

漏洞利用

ipython CVE-2022-21699

继续加油 :)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zyu0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值