VulnHub靶机-Nagini |红队打靶
2023-6-10 09:2:2 Author: 0x00实验室(查看原文) 阅读量:15 收藏

 声明:该篇文章仅供学习网络安全技术参考研究使用,请勿使用相关技术做违法操作。本公众号的技术文章可以转载,能被更多人认可本文的创作内容属实荣幸之至,请在转载时标明转载来源即可.也欢迎对文章中出现的不足和错误进行批评指正!

实战打靶系列第 14 篇文章 

这个靶机中,涉及到http3网站的访问,可以安装quiche进行访问,或者将curl的版本提升到7.66以上,7.66以上有--http3的参数可以使用(需要重新编译)

涉及ssrf漏洞

目标:拿到3个flag并且得到root权限

主机发现

sudo arp-scan -l

靶机的ip:192.168.56.117

kali的ip:192.168.56.103

信息收集

对目标开放的端口,运行的服务以及操作系统的版本进行探测

nmap -sV -sC -O -p- 192.168.56.117

目标开放了22,80两个端口,22端口跑的是ssh的服务,80端口时apache的http服务,操作系统的检测是Linux 4.15 - 5.6(Debian)

访问80端口

只有一张图片,源码也没有任何可以利用的信息

目录爆破

gobuster dir -u http://192.168.56.117 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

只有joomla的目录暴露出来

指定txt,sql,zip,bak进行扫描

gobuster dir -u http://192.168.56.117 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x txt,sql,zip,bak

除了joomla之外,还扫描出一个note.txt

对joomla进行访问

发现是joomla cms的登录框,尝试弱口令,登陆不进去,而且joomla的版本还是最新的2023

对joomla目录进行一个目录爆破

gobuster dir -u http://192.168.56.117/joomla -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x txt,sql,zip,bak

发现有/administrator的目录,其它的目录和文件都没有信息可以利用

管理员的后台登陆地址,当然,一般弱密码还是登录不进去

访问note.txt

发现admin留给开发者们的信息,说需要使用http3去访问https://quic.nagini.hogwarts这个给域名,所有开发人员定期访问服务器以检查最新公告。

将域名quic.nagini.hogwarts添加到host文件中,指向192.168.56.117这个ip

使用可以访问http3的进行访问这个域名

quiche的安装

git clone https://github.com/cloudflare/quiche

cd quiche

apt install cargo

apt install cmake

cargo build --examples(执行这条命令可能会报错,如果报错的话执行后三条命令后在重新执行这条命令,成功执行的话后两条命令不需要执行)apt purge rustccurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh(执行这条命令会让选择选项,选择1)source $HOME/.cargo/envcargo test(测试安装是否成功)

访问域名

cd  /quiche/target/debug/examples./http3-client https://quic.nagini.hogwarts

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

那么joomal的配置文件:configuration.php

web渗透

从信息收集,得到了服务器上面应该有/internalResourceFeTcher.php,并且服务器上面有一些bak的配置文件的备份,任何人都可以访问

访问/internalResourceFeTcher.php

提示说这是一个内网的资源获取页面,看到这里,觉得是ssrf漏洞

尝试使用file协议进行访问/etc/passwd

发现可以读取

访问80端口

http://127.0.0.1:80

发现返回了80端口的图片,和使用浏览器访问的80端口一样

那么使用gophor协议按是否可以读取一些信息

gopher协议:

可以和后端的很多的基于tcp的服务进行交互,可以去发送针对后端服务操作指令

可以使用gopher确定开放了那哪些端口

gopher://127.0.0.1:22

返回了22端口的信息

那么证明可以使用gopher可以对后端的基于tcp的应用发起请求,

访问80端口,发现左上角一直在进行访问,如果页面一闪而过并且没有回显,那么就说明内网这个端口没有开放

访问joomla的配置信息加上bak后缀

joomal的配置文件:configuration.php

发现真的存在joomal的配置信息的备份

查看配置信息

发现开放了mqsql的服务,并且账号是goblin,数据库是joomla,密码是空的

而且还看到joomla cms的路径

那么也可以使用file协议在/internalResourceFeTcher.php页面访问这个配置文件

file:///var/www/html/joomla/configuration.php

既然有MySQL服务,那么使用gopher判断是否开放了3306端口

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

既然可以使用gopher协议还有开放了MySQL的3306端口,那么利用gopher对mysql服务发送一些指令,读取数据库的信息,使用到一款工具Gopherus-master来进行生成向后端mysql发送指令的payload

使用Gopherus-master获取信息

工具地址:https://github.com/tarunkant/Gopherus

Gopherus-master需要python2运行

先查看数据库内的表

需要重复提交多次(可能数据库的内容没有回显回来)

以查看源码的方式查看,可以更好的查看返回的信息

发现有joomla_users的表

将所有的字段都返回了回来,发现email的前面是username,后面是password,以这个特征寻找用户和密码

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

将123加密成MD5值

生成payload

提交

反复提交几次之后,尝试使用site_admin/123进行登录joomla的后台

成功登录

获得初始shell

和wordpress的获取初始shell相识,寻找joomla的模板,进行修改

寻找模板

选择一个模板,修改模板文件,这修改第二个模板的error.php文件

直接将error.php文件内容更换成kali自带的php反弹shell的内容

修改反弹的ip和端口

找到error.php的路径(记得是小写的)

看到在加载

获得初始shell

提权

第一次提权(snape)

/bin/bash -i 提高交互性

查找信息

发现home目录下有两个用户,切换到snape用户,发现下面有一个隐藏的.creds.txt,查看一下,发现有base64编码的信息

解密一下

类似账号密码

尝试使用该信息去ssh登录snape用户

成功获得snape的shell

拿到第一个flag

第二次提权(hermoine)

在home/hermoine下发现第二个flag,发现只有hermoine可以查看

但是发现当前目录下bin文件夹

发现有具有suid权限的su_cp的文件,并且是一个可执行程序,查看help,发现类似于cp命令,并且其他用户可以执行

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

生成kali的密钥对

ssh-keygen(其它选项默认即可)

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

scp id_rsa.pub [email protected]:~/

使用su_cp将公钥拷贝到hermoine的.ssh目录下(给公钥640权限,并且改名为authorized_keys)

/home/hermoine/bin/su_cp authorized_key  /home/hermoine/.ssh

kali直接登录

获得hermoine的shell

第三次提权(root)

sudo没有权限

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

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

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

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

scp -rp [email protected]:~/.mozilla /tmp

python3 firefox_decrypt.py /tmp/.mozilla/firefox

发现有保存账号密码

使用该账号密码尝试ssh登录

成功登录到root用户,并且拿到第三个flag

参考资料:https://www.aqniukt.com/goods/show/2434?targetId=16289&preview=0 

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MDY2MTUyMA==&mid=2247490546&idx=1&sn=1660f1f305ce39d9ee443e209e293a6d&chksm=cfd8640df8afed1bd7e09d1d781ebfff154dab5161fd5af55a93cf9d5fd185636a0cc20612c4#rd
如有侵权请联系:admin#unsafe.sh