보안 전문가가 CVE-2024-47176으로 추적되는 CUPS(Common Unix Printing System) RCE 결함에 취약한 장치에 대한 환경을 검색할 수 있도록 자동화된 스캐너가 출시되었습니다.
특정 조건이 충족되면 공격자가 임의의 원격 코드 실행을 수행할 수 있게 하는 이 결함은 지난달 말 이 결함을 발견한 사람인 Simone Margaritelli에 의해 공개되었습니다.
RCE 측면은 악용 전제 조건으로 인해 실제 배포에서는 제한적인 것으로 보이지만 나중에 Akamai는 CVE-2024-47176이 DDoS(분산 서비스 거부) 공격에서 600배 증폭 가능성을 열어준다는 사실을 밝혔습니다.
이 스캐너는 시스템 관리자가 네트워크를 스캔하고 취약한 CUPS-Browsed 서비스를 실행하는 장치를 신속하게 식별할 수 있도록 스캐너를 만든 사이버 보안 연구원 Marcus Hutchins(일명 “MalwareTech”)가 만들었습니다.
“이 취약점은 cup-browsed가 제어 포트(UDP 포트 631)를 INADDR_ANY에 바인딩하여 이를 세상에 노출한다는 사실에서 발생합니다. 요청은 인증되지 않으므로 제어 포트에 도달할 수 있는 사람은 cup-browsed에게 프린터 작업을 수행하도록 지시할 수 있습니다. 발견했다.”
“인터넷에서 포트에 연결할 수 없는 경우(방화벽이나 NAT로 인해) 로컬 네트워크를 통해 계속 연결할 수 있으므로 권한 상승 및 측면 이동이 가능합니다.”
“이러한 이유로 저는 로컬 네트워크에서 취약한 컵 브라우징 인스턴스를 검색하도록 설계된 이 스캐너를 만들었습니다.” – 마커스 허친스
스캐너 작동 방식
Python 스크립트(cups_scanner.py)는 네트워크의 장치에서 들어오는 HTTP 요청(콜백)을 수신하는 스캐닝 시스템에 HTTP 서버를 설정합니다.
CVE-2024-47176은 제어 포트(UDP 포트 631)를 INADDR_ANY에 바인딩하는 CUPS 탐색(CUPS의 데몬 부분)에서 발생하여 포트를 네트워크에 노출하고 모든 시스템이 명령을 보낼 수 있도록 허용합니다.
스캐너는 포트 631의 네트워크 브로드캐스트 주소로 사용자 지정 UDP 패킷을 보내고 지정된 범위의 각 IP 주소로 전송하여 CUPS 인스턴스에 요청을 다시 보내도록 지시합니다.
취약한 컵 탐색 인스턴스를 실행하는 장치가 UDP 패킷을 수신하면 요청을 해석하고 서버에 HTTP 콜백을 보내므로 응답하는 장치만 취약한 것으로 표시됩니다.
결과는 두 개의 로그에 기록됩니다. 하나(cups.log)에는 응답한 장치의 IP 주소와 CUPS 버전이 포함되어 있고, 다른 하나(requests.log)에는 콜백 서버에서 수신하여 심층 분석에 사용할 수 있는 원시 HTTP 요청이 포함되어 있습니다. .
이 스캐너를 사용하면 시스템 관리자는 대상 패치 또는 재구성 작업을 계획하고 실행하여 CVE-2024-47176의 온라인 노출을 최소화할 수 있습니다.
BleepingComputer는 스크립트를 테스트하지 않았으며 그 효과나 안전성을 보증할 수 없으므로 위험을 감수하고 사용해야 합니다.