
VitalPBX Task Manager 모듈의 명령 삽입 취약점에 대한 개념 증명 익스플로잇으로, 크론 프로필 조작을 통한 리버스 셸 페이로드 전달을 시연합니다.
취약점 제목: 명령 삽입
작성자: Erick Duarte
버전: < 3.2.5-2
이 취약점은 Task Manager 모듈을 Cron Profile과 함께 사용할 때 발생합니다. 이 취약점을 악용하려면 OS 내 특정 폴더에 스크립트를 배치해야 합니다. 해당 폴더는 "/var/lib/vitalpbx/scripts"입니다.
그래서 호기심에 Burp를 사용하여 서버로 전송되는 내용을 분석하기 시작했습니다. 이를 위해 1분마다 실행되는 Cron Profile을 생성했습니다.

다음으로 Task Manager를 생성했습니다.

스크립트 필드에서 파일 이름이 전달되는 것을 확인했습니다. 그래서 base64로 인코딩된 리버스 쉘 페이로드를 삽입하여(특수 문자 오류를 피하기 위해) 전송했습니다.

그런 다음 설정을 적용하기 위해 POST 요청을 전송했습니다.

그리고 그 결과, 쉘을 획득했습니다.

상대적으로 높은 권한 수준이 필요하며, 특정 디렉토리에 스크립트가 있어야 한다는 점을 잘 알고 있습니다. VitalPBX에서는 여러 사용자를 생성하고 다양한 유형의 권한을 부여할 수 있습니다. 이러한 권한이 잘못 구성되면 어떤 일이 발생할까요? 또한 Tenant를 생성하는 옵션이 있습니다. 이러한 Tenant 중 하나가 이 취약점을 악용할 경우, 다른 Tenant를 포함한 서버 전체에 대한 전체 액세스 권한을 얻을 수 있습니다.
제 발견이 보안 커뮤니티에 기여하기를 바라며, VitalPBX가 필요한 수정을 할 것이라고 믿습니다.