
vRealize RCE + 권한 상승 (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
"이해하기도 쉽고 막기도 쉽다."
"Reality Smasher"는 테스트 중 발견된 권한 상승 취약점과 더불어 VMSA-2021-0004에서 해결된 보안 문제(CVE-2021-21975, CVE-2021-21983)를 활용하는 vRealize용 익스플로잇입니다.
"Reality Smasher"는 CVE-2021-21975를 악용하여 vRealize의 "maintenanceAdmin" 계정 자격 증명을 탈취합니다. 이는 이 저장소에 포함된 키와 인증서를 사용하여 HTTPS 리스너를 호스팅함으로써 이루어집니다. 이 자격 증명은 이후의 모든 인증된 요청에 사용됩니다. 먼저 관리자 계정의 해시된 비밀번호를 요청하고 나중에 사용하기 위해 저장합니다.
다음으로 SSH 서비스를 활성화하는 요청이 전송됩니다. 그 다음 CVE-2021-21983을 사용하여 "admin.properties" 파일을 덮어씁니다. 그 다음 관리자 사용자의 초기 비밀번호를 설정하는 요청이 전송됩니다. 이는 관리자의 자격 증명이 "admin.properties"에 저장되어 있기 때문에 가능합니다. 이 파일이 없으면 vRealize는 자격 증명이 설정된 적이 없다고 판단하고 인증되지 않은 "/security/adminpassword/initial" 요청을 수락합니다.
새 관리자 자격 증명으로 SSH 접근이 가능한지 확인한 후, SSH 키가 생성됩니다. 그런 다음 권한 상승 취약점을 사용하여 root SSH 로그인을 허용하고, sshd 서비스를 재시작하며, 공개 키를 "/root/.ssh/authorized_keys"에 추가합니다. root SSH 접근이 검증된 후에는 원래의 해시된 비밀번호를 복원하고, 사용자에게 root 사용자로서의 대화형 SSH 셸을 부여합니다. 모든 SSH 작업은 "golang.org/x/crypto/ssh"를 사용하여 수행됩니다.
이 익스플로잇의 안정성과 견고성을 보장하기 위해 상당한 노력을 기울였습니다. 하지만 이 프로젝트는 제 첫 golang 프로젝트이므로 이 익스플로잇은 본인 책임하에 사용하십시오. 해시된 비밀번호와 생성된 개인 키를 수집하려면 이 익스플로잇을 상세 출력 모드로 실행하는 것이 좋습니다.
