CVE-2016-4437复现

漏洞原理

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为rememberMe的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

所以被称为Apache Shiro 1.2.4反序列化漏洞

漏洞环境

使用vulhub搭建环境。

image-20230620202534202

访问you-ip:8080

image-20230620202604159

然后进行登录(随意账号密码),然后抓包

image-20230620202653697

会发现存在rememberMe这个cookie,所以这里大概率是使用shiro框架。

下面使用工具进行利用:https://github.com/j1anFen/shiro_attack/releases/tag/2.2

这里为了查看流量,使用wireshark进行抓包,可以直接在宿主机进行抓包(搭建docker的宿主机)

image-20230620202850422

然后进行利用,先点击爆破密钥->爆破利用链->存在利用链再执行命令->上传内存马

image-20230620202903118

image-20230620203013360

image-20230620203023292

上传内存马

image-20230620203031325

使用蚁剑连接内存马

image-20230620203056358

image-20230620203101914

成功得到shell

流量分析

过滤http请求,然后一个个流进行查看

image-20230620203224831

前面的几个都跟这个相似,大概是为了验证是否存在漏洞、爆破密钥以及爆破利用链的流量

image-20230620203411322

然后得到下面这一段流量

image-20230620203717913

techo是什么?查看该工具的的源码

image-20230620204040564

发现是其头信息,这也是该工具的一个特征

image-20230620204208987

c这里是base64编码的命令ls,所以命令是以base64编码的信息,c的值是执行的命令

下面使用$$$包裹的通过base64解码之后就是命令执行的结果

image-20230620204640640

p代表内存马的密码,path表示内存马名,下面的表示内存马的内容

后面的流量都是蚁剑的流量,在此就不在分析了

image-20230620204825376