
CVE-2012-2982(Webmin RCE)에 대한 PoC 익스플로잇, 교육 목적용입니다.
이 저장소는 Webmin 버전 1.590 이하에 영향을 미치는 인증된 원격 명령 실행 취약점인 CVE-2012-2982에 대한 개념 증명(PoC) 익스플로잇을 포함합니다. 취약점은 /file/show.cgi 엔드포인트에 있으며, 공격자는 조작된 요청에 특수 문자(예: | 파이프 기호)를 주입하여 임의의 명령을 실행할 수 있습니다.
이 PoC는 교육 및 보안 연구 목적으로만 제공됩니다. 허가 없이 시스템을 악용하는 것은 불법이며 비윤리적입니다.
Webmin은 Unix 기반 시스템을 관리하기 위한 인기 있는 웹 기반 시스템 관리 도구입니다. 1.590 및 이전 버전에는 파일 관리자(File Manager) 모듈에 보안 결함이 존재합니다. 이 문제는 /file/show.cgi 스크립트와 상호 작용할 때 사용자 입력이 제대로 필터링되지 않아 발생합니다. 인증된 사용자는 셸 메타문자(|)를 주입함으로써 대상 시스템에서 Webmin 프로세스의 권한(종종 root)으로 임의의 명령을 실행할 수 있습니다.
영향을 받는 버전: Webmin 1.590 이하
공격 전제 조건:
공격자는 유효한 Webmin 자격 증명을 보유해야 합니다(낮은 권한의 사용자 계정으로도 충분합니다).
파일 관리자 모듈에 접근할 수 있어야 합니다.
악용 시 가능한 것:
원격 코드 실행(RCE)
권한 상승(Webmin이 root로 실행 중인 경우)
시스템 장악
취약한 엔드포인트는 다음과 같습니다:
http://<target_ip>:10000/file/show.cgi
이 공격은 파일 경로를 전달할 때 입력 검증이 부적절한 점을 악용하여 |를 통해 주입된 셸 명령을 실행할 수 있게 합니다.
이 저장소는 다음을 자동화하는 Python 익스플로잇 스크립트를 포함합니다:
인증: 제공된 자격 증명을 사용하여 Webmin에 로그인합니다.
세션 ID 추출: 인증된 요청에 필요한 세션 ID를 검색합니다.
페이로드 실행: 임의의 명령을 실행하기 위해 악성 요청을 전송합니다.
무작위 실행 경로: 탐지를 회피하기 위해 무작위로 생성된 파일 이름을 사용합니다.
리버스 셸 지원: 공격자의 머신으로 다시 연결되는 리버스 셸 페이로드를 생성합니다.
오류 처리: 요청 실패를 우아하게 처리합니다.
모듈식 설계: 다양한 페이로드를 테스트하기 위해 쉽게 수정할 수 있습니다.
Python 3
requests 라이브러리(pip install requests)
테스트용 Webmin 인스턴스(취약한 버전)(통제된 실습 환경 사용)
사용법:
python3 exploit.py <target_IP>
예시:
python3 exploit.py 192.168.1.100
공격자 IP(lhost): 10.21.48.124
공격자 포트(lport): 1937
대상 Webmin 자격 증명:
사용자 이름: user1
비밀번호: 1user
성공하면 익스플로잇은 공격자의 머신으로 리버스 셸 연결을 설정합니다.
익스플로잇을 실행하기 전에 공격 머신에 리버스 셸을 수신할 Netcat 리스너를 설정하세요:
nc -lvnp 1937
익스플로잇이 성공적으로 실행되면 대상 머신으로부터 셸 연결을 받게 됩니다.
이 PoC는 오로지 보안 연구 및 교육 목적으로만 사용됩니다. 승인된 침투 테스트 환경에서만 사용해야 합니다. 프로덕션 시스템에 대한 무단 사용은 사이버 보안 법률 위반이며 법적 결과를 초래할 수 있습니다.
저자는 이 익스플로잇의 어떠한 오용에도 책임을 지지 않습니다. 이 PoC는 합법적인 보안 테스트 및 윤리적 해킹 활동에만 사용하십시오.