
Epson 프린터 RAW 프로토콜 익스플로잇 프레임워크
저장소: https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047
PoC 스크립트: poc.py
모의 타깃: mock_printer.py
작성자: J4ck3LSyN
이 프레임워크는 RAW TCP 인쇄 프로토콜(일반적으로 포트 9100)을 통해 잘못된 형식 또는 초대형 페이로드를 처리할 때 Epson 다기능 프린터(특히 L14150 FL27PB)에서 발생하는 원격 버퍼 오버플로인 CVE-2026-39047 취약점을 시연합니다.
성공적인 악용은 프린터의 임베디드 환경에서 임의 코드 실행으로 이어질 수 있으며, 이를 통해 다음이 가능합니다:
이 PoC는 레드 팀 운영, 취약점 연구 및 방어 테스트에 적합한 전송 프레이밍, 페이로드 난독화, 퍼징 기법, 단계적 사후 악용 동작에 중점을 둡니다.
[!WARNING]
- 이 도구는 취약한 프린터에서 원격 코드 실행(RCE)을 유발할 수 있으며(실제로 유발합니다).
- 소유하지 않은 시스템 또는 테스트할 __명시적 서면 허가__를 받지 않은 시스템에 대한 비인가 사용, 스캔, _악용_은 __불법__입니다 이는 컴퓨터 사기 및 남용 법률(예: 미국의 CFAA), 데이터 보호 규정, __조직 정책__을 위반할 수 있습니다.
__저자__는 이 코드의 사용 또는 오용으로 인한 손해, 데이터 손실, 서비스 중단, _법적 결과_에 대해 일체의 책임을 지지 않습니다.- 통제할 수 있는 __장치__가 있는 격리된 실험실 환경에서 만 사용하십시오.
- 모든 테스트 전에 항상 __명시적 승인__을 받으십시오.
- 이 코드는 안전한 분석을 돕기 위해 드라이런(dry-run) 및 수동(passive) 모드를 포함합니다.
책임 있는 공개와 윤리적 사용을 강력히 권장합니다.- 벤더 업데이트가 제공되면 즉시 장치에 패치를 적용하십시오.
- 프린터는 종종 신뢰도가 높고 모니터링이 제한된 내부 네트워크에 위치하여 매력적인 공격 표면이 됩니다.
참고 자료:
PRT2 프로토콜).mock_printer.py(초대형 페이로드에서 크래시 발생).socket, asyncio, argparse, zlib, hashlib 등)저장소를 클론합니다:
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047.git
cd CVE-2026-39047
스크립트를 실행 가능하게 만듭니다:
chmod +x poc.py mock_printer.py
(선택 사항) 한 터미널에서 모의 프린터로 테스트합니다:
./mock_printer.py
./poc.py -t <TARGET_IP> [OPTIONS]
예시:
기본 기준 테스트:
./poc.py -t 192.168.1.100
퍼징 실행:
./poc.py -t 192.168.1.100 --fuzz --techniques cyclic random
단계적 하이재킹(실험실 전용):
./poc.py -t 192.168.1.100 --hijack --objective shell --dry-run
모의 타깃을 사용한 전체 캠페인:
# Terminal 1
./mock_printer.py
# Terminal 2
./poc.py -t 127.0.0.1 --fuzz --hijack --objective stage1
bTransportFrame()는 페이로드를 PRT2 헤더 + 길이로 래핑합니다.lObf): zlib 압축 → 동적 XOR 마스크(시드 파생) → Base64.gModernPayload() 및 gPostPayload().더 자세한 내용은 인라인 독스트링 및 코드 주석을 참조하십시오.
PRT2 프레이밍 패턴을 찾으십시오.이 PoC는 오직 교육, 연구 및 승인된 보안 테스트 목적으로만 제공됩니다. 오용 시 심각한 결과를 초래할 수 있습니다. 저장소 소유자는 발생한 어떠한 손해에 대해서도 책임을 지지 않습니다.
| 옵션 | 설명 |
|---|
-t, --target | 타깃 IP 주소(필수) |
-p, --port | 포트(기본값: 9100) |
--passive | 수동 정찰 모드(프로브 페이로드만 전송) |
--fuzz | 다중 기법 퍼징 활성화 |
--hijack | 사후 악용 스테이징 활성화 |
--objective | stage1 | shell | beacon | persistence |
--callback | 선택적 콜백 식별자/문자열 |
--capability | minimal | busybox | linux (명령 래핑에 영향을 줌) |
--dry-run | 페이로드를 생성하지만 전송하지 않음 |
--techniques | 공백으로 구분된 목록(예: cyclic format sled random) |
--delay | 페이로드 사이의 지연 시간(초)(기본값: 1.6) |