VulnHub靶机-Nagini |红队打靶

admin 2024年11月7日17:26:42评论11 views字数 4128阅读13分45秒阅读模式

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

实战打靶系列第 14 篇文章 

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

涉及ssrf漏洞

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

主机发现

sudo arp-scan -l

VulnHub靶机-Nagini |红队打靶

靶机的ip:192.168.56.117

kali的ip:192.168.56.103

信息收集

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

nmap -sV -sC -O -p- 192.168.56.117

VulnHub靶机-Nagini |红队打靶

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

访问80端口

VulnHub靶机-Nagini |红队打靶

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

目录爆破

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

VulnHub靶机-Nagini |红队打靶

只有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

VulnHub靶机-Nagini |红队打靶

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

对joomla进行访问

VulnHub靶机-Nagini |红队打靶

发现是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

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

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

访问note.txt

VulnHub靶机-Nagini |红队打靶

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

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

VulnHub靶机-Nagini |红队打靶

使用可以访问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

VulnHub靶机-Nagini |红队打靶

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

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

web渗透

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

访问/internalResourceFeTcher.php

VulnHub靶机-Nagini |红队打靶

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

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

VulnHub靶机-Nagini |红队打靶

发现可以读取

访问80端口

http://127.0.0.1:80

VulnHub靶机-Nagini |红队打靶

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

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

gopher协议:

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

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

gopher://127.0.0.1:22

VulnHub靶机-Nagini |红队打靶

返回了22端口的信息

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

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

VulnHub靶机-Nagini |红队打靶

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

joomal的配置文件:configuration.php

VulnHub靶机-Nagini |红队打靶

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

查看配置信息

VulnHub靶机-Nagini |红队打靶

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

而且还看到joomla cms的路径

VulnHub靶机-Nagini |红队打靶

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

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

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

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

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

使用Gopherus-master获取信息

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

Gopherus-master需要python2运行

先查看数据库内的表

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

VulnHub靶机-Nagini |红队打靶

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

发现有joomla_users的表

VulnHub靶机-Nagini |红队打靶

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

将123加密成MD5值

VulnHub靶机-Nagini |红队打靶

生成payload

VulnHub靶机-Nagini |红队打靶

提交

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

成功登录

获得初始shell

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

寻找模板

VulnHub靶机-Nagini |红队打靶

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

修改反弹的ip和端口

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

VulnHub靶机-Nagini |红队打靶

看到在加载

VulnHub靶机-Nagini |红队打靶

获得初始shell

提权

第一次提权(snape)

/bin/bash -i 提高交互性

查找信息

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

解密一下

VulnHub靶机-Nagini |红队打靶

类似账号密码

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

VulnHub靶机-Nagini |红队打靶

成功获得snape的shell

拿到第一个flag

VulnHub靶机-Nagini |红队打靶

第二次提权(hermoine)

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

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

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

VulnHub靶机-Nagini |红队打靶

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

生成kali的密钥对

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

VulnHub靶机-Nagini |红队打靶

VulnHub靶机-Nagini |红队打靶

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

scp id_rsa.pub [email protected]:~/

VulnHub靶机-Nagini |红队打靶

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

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

VulnHub靶机-Nagini |红队打靶

kali直接登录

VulnHub靶机-Nagini |红队打靶

获得hermoine的shell

VulnHub靶机-Nagini |红队打靶

第三次提权(root)

sudo没有权限

VulnHub靶机-Nagini |红队打靶

但是在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

VulnHub靶机-Nagini |红队打靶

python3 firefox_decrypt.py /tmp/.mozilla/firefox

VulnHub靶机-Nagini |红队打靶

发现有保存账号密码

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

VulnHub靶机-Nagini |红队打靶

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

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

原文始发于微信公众号(0x00实验室):VulnHub靶机-Nagini |红队打靶

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月7日17:26:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   VulnHub靶机-Nagini |红队打靶http://cn-sec.com/archives/1794639.html

发表评论

匿名网友 填写信息