
VMware vCenter Server CVE-2021-21972에 대한 격리된 실험실 연구 보고서로, 비인증 임의 파일 업로드를 통한 RCE, Nmap 기반 탐지, 악용 체인 및 완화 조치를 다룹니다.
| CVE | CVE-2021-21972 |
| CVSSv3 기본 점수 | 9.8 (치명적) |
| 공급업체 권고 | VMSA-2021-0002 |
| 영향받는 제품 | VMware vCenter Server 6.5 / 6.7 / 7.0 |
| 취약점 유형 | 인증 없는 임의 파일 업로드 → 원격 코드 실행 |
| 상태 | VMware가 패치 제공 (2020년 11월 – 2021년 2월). 연구 목적으로만 의도적으로 오래된 격리된 버전을 사용했습니다. |
vCenter Server는 VMware 가상화 인프라의 중앙 관리 평면입니다. 이 서버가 손상되면 전체 가상 데이터 센터가 손상될 수 있습니다. 이 취약점은 단일 플러그인 엔드포인트의 인증 확인 누락이 전체 호스트 장악으로 이어질 수 있는 방법을 보여주는 전형적인 사례입니다. 저는 CVE 권고문을 읽는 것에서 나아가 공격 표면, 공격 체인, 그리고 그만큼 중요한 방어적 탐지 방법과 예방 방법을 실제로 이해하기 위해 이 실습 환경을 구축했습니다.
이 취약점은 vSphere Client(HTML5)에 존재하며, 구체적으로 인증을 요구하지 않는 파일 업로드 엔드포인트(/ui/vropspluginui/rest/services/uploadova)를 노출하는 vCenter Server 플러그인에 있습니다. 포트 443에 네트워크 접근 권한이 있는 공격자는 이 엔드포인트에 조작된 POST 요청을 보내 임의 파일(웹 셸 포함)을 기본 OS의 웹 접근 가능 디렉터리에 업로드할 수 있습니다. 이를 통해 공격자는 vCenter 서비스 권한으로 코드를 실행할 수 있으며, 사실상 어플라이언스를 완전히 제어할 수 있습니다.
높은 수준에서 공격 체인은 다음과 같습니다:
프로덕션 데이터가 없는 완전히 격리된 비인터넷 연결 가상 네트워크에서 구축:
(원래 구축 환경의 특정 IP 주소, 자격 증명 및 인프라 세부 정보는 이 공개 문서에서 의도적으로 생략했습니다.)
취약점 존재 여부는 방어적 관점(예: 블루 팀 또는 감사자)에서 대상의 업로드 엔드포인트가 패치되지 않은 취약점과 일치하는 방식으로 응답하는지 확인하여 확인할 수 있습니다. 이는 취약점 스캐너나 내부 보안 팀이 공격자보다 먼저 네트워크에서 노출된 패치되지 않은 vCenter 인스턴스를 식별하기 위해 실행하는 것과 동일한 종류의 검사입니다.
이 CVE에 대한 공개 Nmap NSE 탐지 스크립트는 여러 오픈소스 보안 저장소에서 사용할 수 있습니다. 이 README가 바로 사용 가능한 스캐닝/악용 도구를 배포하는 대신 문서화에 초점을 맞추고 있으므로 여기서는 재현하지 않습니다. 실습 환경에서 취약한 대상은 스캔 출력에서 VULNERABLE(악용 가능)로 표시되었으며, 이는 즉각적인 패치를 우선시하라는 신호입니다.
이 CVE에 대한 작동하는 개념 증명 악용 코드는 Positive Technologies의 Mikhail Klyuchnikov가 발견한 이후 2021년부터 공개적으로 사용 가능했습니다. 이 프로필에서 바로 실행 가능한 RCE 페이로드를 배포하지 않기 위해 여기서 악용 코드를 재현하지 않습니다. 이 문서의 초점은 도구가 아닌 이해에 있습니다. 요약하면, 공개 악용 코드는 위의 2~3단계를 자동화합니다. JSP 웹 셸을 예상 업로드 형식으로 패키징하고, 취약한 엔드포인트에 POST하고, 웹 접근 가능 경로에 도착했는지 확인한 후 이를 사용하여 공격자에게 역방향 셸을 트리거합니다.
이 프로젝트는 교육 및 전문 개발 목적으로 완전히 격리된 비프로덕션 실습 환경에서 수행되었습니다. 승인되지 않은 시스템에는 접근하지 않았습니다.