当前位置: 首页 > news >正文

Shiro反序列化漏洞提权渗透实战:原理+复现(CVE-2016-4437)

目录

一、Shiro反序列化漏洞(CVE-2016-4437)

二、漏洞探测

三、漏洞渗透

1、ShiroAttack2 工具下载

2、ShiroAttack2 工具安装

3、Shiro漏洞检测

4、注入哥斯拉木马

5、哥斯拉木马连接


本文详细分析了Apache Shiro框架的反序列化漏洞(CVE-2016-4437),该漏洞因硬编码密钥导致攻击者可通过rememberMe Cookie执行任意代码。文章介绍了漏洞检测方法(通过Burp Suite抓包识别特征)和利用工具ShiroAttack2的实战过程,包括密钥爆破、命令执行和内存马注入。最后演示了使用哥斯拉木马连接被控服务器的完整流程,包含URL配置、密码设置和命令执行等步骤。防御建议包括升级版本、更换密钥和限制反序列化类等。

一、Shiro反序列化漏洞(CVE-2016-4437)

Shiro 反序列化漏洞(CVE-2016-4437)是 Apache Shiro 框架的严重安全漏洞,主要因加密密钥硬编码导致。由于Shiro 使用固定密钥对 rememberMe Cookie 加密,攻击者可构造恶意反序列化数据,经该密钥加密后作为 Cookie 发送,服务器解密并反序列化时触发代码执行。

  • 漏洞名称:Apache Shiro 反序列化远程代码执行漏洞

  • CVE编号:CVE-2016-4437

  • 影响版本:Apache Shiro ≤ 1.2.4

  • 漏洞类型:反序列化漏洞(通过恶意Cookie执行任意代码)

  • 风险等级:高危(可导致服务器被完全控制)

  • 攻击流程

    • 收集目标应用使用 Shiro 的证据(如响应头含rememberMe=deleteMe
    • 生成携带恶意命令的反序列化 payload(如利用 CommonsCollections 等 gadget)
    • 用默认密钥加密 payload 并设置为 rememberMe Cookie 发送
    • 服务器解密并执行 payload,获取 shell 或敏感信息
  • 防御措施

    • 升级 Shiro 至 1.2.5 及以上版本
    • 更换默认加密密钥,使用强随机密钥
    • 限制反序列化类白名单,禁用危险 gadget 库
    • 对 rememberMe Cookie 设置严格的安全属性(HttpOnly、Secure 等)

二、漏洞探测

在登录页面勾选 “记住密码” 选项并点击登录,同时使用 Burp Suite(BP)抓取请求包与响应包。若请求包中包含rememberme字段,且响应包的Set-Cookie头中出现rememberMe=deleteMe字段,则可初步判定该应用使用了 Shiro 框架。如下所示,登录页面勾选remember,随机填写用户名和密码,如下图红框所示。

如下图红框内所示,响应报文中包含rememberMe=deleteMe字段,说明应用使用 Shiro 框架。

三、漏洞渗透

本文使用shiro反序列化漏洞综合利用工具来进行渗透实战。

1、ShiroAttack2 工具下载

ShiroAttack2 是一款功能强大、图形化的 Apache Shiro 漏洞综合利用工具,由 SummerSec 开发。它集成了检测、漏洞利用和密钥爆破于一体,大大简化了渗透测试过程中对 Shiro 框架的测试工作。访问项目的 GitHub Release 页面,下载地址如下所示。

https://github.com/SummerSec/ShiroAttack2/releases

从项目的 Release 页面下载最新的 Jar 包,软件下载后,解压后如下所示。

2、ShiroAttack2 工具安装

在存放 ShiroAttack2.jar 的目录下,以我的环境为例,jar文件为shiro_attack-4.7.0-SNAPSHOT-all.jar,打开终端(命令行)执行如下命令即可启动工具。

java -jar shiro_attack-4.7.0-SNAPSHOT-all.jar

3、Shiro漏洞检测

在 目标URL 中输入待检测的地址http://10.33.49.100:8080/,点击爆破密钥如下所示。

如下所示,提示找到key:kPH+bIxk5D2deZiIxcaaaA==。

点击爆破利用链及回显

在 ShiroAttack2 的主界面,点击顶部第二个选项卡 爆破利用链及回显,点击右下角的 爆破 按钮。ShiroAttack2 会开始自动化流程:对于每一个勾选的利用链,都用你提供的密钥加密对应的Payload,发送给目标,然后检查响应,判断命令是否执行成功。如下所示,发现了发现构造链:CommonsBeanutils1  回显方式: TomcatEcho。

点击下图的命令执行的按钮,输入命令ls -la,点击“执行”按钮如下所示。

如下所示,包括.dockerenv和.dockerinit文件,说明这是个docker环境。

-rwxr-xr-x   1 root root        0 Jul 13  2023 .dockerenv
-rwxr-xr-x   1 root root        0 Jul 13  2023 .dockerinit

4、注入哥斯拉木马

我们将注入一个木马文件到服务器中,这里选择哥斯拉,具体配置如下所示。

  • 切换至利用模块:点击顶部第三个选项卡 利用

  • 选择内存马类型:在 利用 模块下,继续选择 内存马 子选项卡,在 内存马类型 的下拉菜单中,选择 哥斯拉 Shell

  • 配置内存马参数

    • 密码 (Pass):这是连接哥斯拉客户端时需要的密码,这里选择默认的 pass1024。

    • 路径 (Path):这是内存马在目标服务器上存在的 URL 路径。必须是一个目标网站上不存在的路径,否则会冲突,这里选择默认的/favicondemo.ico。

点击执行注入,观察日志区,出现 [+] 注入成功!

哥斯拉[Filter]  注入成功!
路径:http://10.33.49.100:8080/favicondemo.ico
密码:pass1024

5、哥斯拉木马连接

打开哥斯拉客户端,运行哥斯拉的 start.jar 文件。创建新连接,在哥斯拉主界面,点击左上角的 绿色加号 按钮新建一个连接,配置连接参数

  • URL:填写内存马的完整地址http://10.33.49.100:8080/favicondemo.icol

  • 密码:填写你在 ShiroAttack2 中设置的密码pass1024。

  • 连接类型:在下拉菜单中必须选择 JAVA

  • 编码:通常保持默认(如 UTF-8)即可。

点击 测试 按钮。这时如果配置正确会弹出提示框显示 连接成功,然后点击添加,如下所示。

连接成功后,哥斯拉界面会分为两部分:左侧的文件浏览器和右侧的操作区。选中后右键,点击进入,如下图红框所示。

在命令执行页面,输入ip addr查看服务的ip地址,如下所示。

http://www.dtcms.com/a/526301.html

相关文章:

  • 百讯科技网站建设做图标去什么网站找
  • 做网站服务器电脑配置医院网站建设合同范本
  • icp备案域名网站备案信息网站联盟的基本流程
  • 男和男人怎么做那个视频网站苏州的网络企业
  • 一个网站开发的流程二次开发创造作用
  • 网站怎么做认证免费网站备案号码
  • 西安网站开发的未来发展东莞企业官方网站建设
  • 11. Python 列表: 元素增操作详解
  • 記錄js中的冒泡事件
  • 腾讯云 怎样建设网站域客式单页网站能申请域名吗
  • 西双版纳州住房和城乡建设局网站wordpress注册美化
  • 多种方法找回Root密码详细操作步骤
  • 阿里云服务器建设网站视频网站用什么做的好
  • 大专生工作后还能专升本吗?对职业发展有帮助吗?
  • 棉桃剥壳机做网站重庆网站推广营销
  • 大学生简历免费制作网站互联网备案服务平台
  • 哪些网站用django做的狼雨seo网站排名查询
  • 网站制作公司推荐深圳黑马品牌网站设计
  • 做网站需要字体切换从用户旅程角度做网站分析
  • 橙色主题手机网站希爱力副作用太强了
  • 数字化转型:概念性名词浅谈(第八十讲)
  • 公司注册网站模板长沙口碑好网站建设企业
  • leetcode学习笔记3:轮转数组(多次翻转数组思想)
  • 新手网站建设教程图书宁波企业建站程序
  • 银川做网站建设wordpress多条件过滤
  • 【shell】每日shell练习:系统备份文件管理/系统性能趋势分析
  • 重庆门户网站开发报价app开发公司十强
  • 广东建设协会网站首页关键词推广seo
  • Orleans 配置方式时序图
  • 网站建设 空间杭州 电子商务网站建设 网络服务