0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

靶场搭建
靶场下载地址:https://download.vulnhub.com/harrypotter/Nagini.ova
下载下来是zip压缩文件,解压后是.ova虚拟机压缩文件直接用Vmvare导出就行
打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)
打开后靶机没有自动获取ip,解决办法看我这篇文章:https://www.freebuf.com/articles/network/343723.html
重启虚拟机
靶场搭建完毕
渗透测试
由于不知道靶机ip,所以需要扫描NAT的网段
128为kali攻击机的ip,所以146为靶机的ip
扫描靶机端口服务开放情况
开放了22端口,存在ssh服务
开放了80端口,存在http服务,且中间件为Apache2.4.38
先访问一下WEB
只有一张哈利波特的图片
搜索一下铭感目录
发现了一个CMS页面,使用了Joomla这个CMS
尝试了弱口令admin/admin123等,发现不存在弱口令
没有发现其它敏感目录了,换更大的字典看是否存在其它敏感目录或者文件
发现note.txt文件
文件说将会用HTTP3对于文件中给出的域名做进一步交流
这个给出的域名应该就是对应靶机的IP
所以我们将其加入到/etc/hosts文件中
然后访问相应的域名,发现没办法访问
使用http访问,发现和原来的网站是一样的
文件里面说要使用HTTP3来访问,我们现在所用的火狐浏览器是不支持HTTP3的
所以需要去安装一个支持HTTP3的应用
上网搜索说谷歌在Canary版本中、火狐在Nightly支持了HTTP3
但是这两个浏览器都是仅有Windows版本,没有linux版本
也使用quiche这个HTTP3官方提供的应用
安装步骤
git clone https://github.com/cloudflare/quiche cd quiche apt install cargo cargo build --examples(执行这条命令可能会报错,如果报错的话执行后三条命令后在重新执行这条命令,成功执行的话后两条命令不需要执行) apt purge rustc curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh(执行这条命令会让选择选项,选择1) source $HOME/.cargo/env cargo test(测试安装是否成功)
我这里安装quiche失败了,不知道什么原因,所以我只能用Windows上的支持HTTP3的火狐Nightly了
下载地址:https://www.mozilla.org/en-US/firefox/107.0a1/releasenotes/
安装好后要修改Windows的hosts文件
文件位于C:\Windows\System32\drivers\etc
修改hosts文件需要修改用户权限
win+r按钮打开管理员运行输入C:\Windows\System32\drivers\etc
点开hosts属性中的安全
修改Users的权限加上写入和修改权限
然后使用记事本打开文件添加新的解析记录
修改后测试
发现也不能访问
这让我不知所措了,只能去网上看其他人查看到的网页结果
上面说存在/internalResourceFeTcher.php这个文件
尝试去访问,发现确实存在这个文件
文件提示欢迎使用内部网络资源获取页面
尝试利用file协议访问文件
file:///etc/passwd
发现成功访问文件
再尝试利用http协议访问靶机上的web,发现也能成功访问
所以可以确定这里存在SSRF(服务器请求伪造)漏洞
可以利用一下协议
- file协议: 在有回显的情况下,利用 file 协议可以读取任意文件的内容
- dict协议:泄露安装软件版本信息,查看端口,操作内网redis服务等
- gopher协议:gopher支持发出GET、POST请求。可以先截获get请求包和post请求包,再构造成符合gopher协议的请求。gopher协议是ssrf利用中一个最强大的协议(俗称万能协议)。可用于反弹shell
- http/s协议:探测内网主机存活
- tftp
- sftp
第二个提示提示我们配置文件可以被任何人访问,所以我们去搜索一下配置文件
kali上自带专门用于这个cms探测的工具joomscan
探测到版本为Joomla 3.9.25,不存在漏洞,配置文件备份文件地址为/joomla/configuration.php.bak
访问下载下来
在文件中找出所有有效信息
数据库连接信息
web路径
所以我们可以利用SSRF漏洞,使用gopher请求去构造特殊的数据包向mysql发起请求查出登录后台的账号密码
找到一款gopher协议利用工具
利用工具生成利用的exp
输入exp执行(这里需要很多次尝试,才会成功)
经过查看这些表搜索user关键字,找到一个名称为joomla_users的表
尝试查询这个表的数据
从中找到账号和密码
这个密码破解起来有些麻烦,所以我们直接通过执行sql语句换成自己的密码
使用MD5生成一段自己的密码
然后修改密码
修改成功后登录成功
进入后台后,我们找到正在使用的模板
编辑模板
上传反弹shell的马
这里我们使用kali中自带的,位于usr/share/webshells/php/php-reverse-shell.php
编辑,修改ip和端口
然后将其复制粘贴到模板文件中保存
开启监听,访问shell
成功反弹shell
发现为普通网站权限,且没有python也没有nc
进入家目录看有什么线索
再snape用户家目录下发现一个.creds.txt文件
文件中有一段base64编码
进行解码
猜测是ssh登录的密码
尝试ssh登录,成功登录
再进入到hermoine的家目录下,发现有一个有执行权限的文件
发现开启了suid权限,所以我们可以通过这个文件来提权
尝试执行文件,发现文件是用来复制文件的
所以我们可以生成一个公钥,将公钥复制到hermoine这个用户目录下,从而让我们可以ssh登录这个账号
通过scp上传ssh公钥
然后将公钥上传到hermoine的家目录下的.ssh目录下
尝试登录,登录成功
在此家目录下还发现了一个.mozilla文件,这是使用火狐浏览器会出现的文件
文件中有一个firefox文件夹,使用火狐浏览器的所有账号密码都会保存在这个文件夹下
但是得出这里面的账号密码比较复杂,所以我们将这个文件先上传到kali主机上
然后利用一个从firefox浏览器中提取账号密码的工具
下载地址https://github.com/unode/firefox_decrypt
解压后进入程序目录
然后运行程序读取文件
读取到用户名为root的账号密码,猜测是root账号ssh登录密码
尝试登录,登录成功
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)