촉촉한초코칩

[CVE-2023-46604] Apache ActiveMQ 취약점 본문

Study/CVE 및 취약점

[CVE-2023-46604] Apache ActiveMQ 취약점

햄친구베이컨 2024. 12. 17. 21:52

Apache ActiveMQ의 취약점 CVE-2023-46604

오픈소스 메시징 및 통합 패턴 서버인 Apache ActiveMQ 서버(클라이언트 간 메시지 송수신)의 원격 코드 실행 취약점 

→ 패치되지 않은 Apache ActiveMQ 서버가 외부에 노출될 경우, 공격자는 원격에서 악의적인 명령어를 실행하여 시스템을 장악할 수 있다.

 

취약점 공격

classpath에 있는 클래스를 인스턴스화하도록 OpenWire 프로토콜에서 직렬화된 클래스 유형을 조작하는 방식
(OpenWire 프로토콜에서 직렬화된 클래스 유형을 조작하여 클래스를 인스턴스화시킨다.)

→ 공격자가 조작된 패킷을 전송할 경우 취약한 서버에서는 패킷에 포함된 URL을 참조하여 클래스 XML 설정 파일을 로드한다.

더보기

Q. 인스턴스화
A. 클래스를 사용해 객체를 만든다.  해당 객체는 클래스에서 정의된 속성과 메서드를 사용할 수 있는 실제 데이터와 동작을 가진 개체가 된다.

 

Q. OpenWire 프로토콜
A. Apache ActiveMQ 메시지 브로커에서 사용되는 바이너리 메시징 프로토콜 : 클라이언트-ActiveMQ 서버 간의 통신을 최적화하고 효율적인 메시지 전송이 가능하게 함

 

Q. 직렬화
A. 직렬화 : 객체를 바이트 스트림으로 변환하는 과정  객체의 상태(데이터)를 파일, 데이터베이스, 네트워크 등을 통해 저장하거나 전송할 수 있으며, 필요할 때 다시 객체로 복원(역직렬화)할 수 있다.

 

초기 침투 단계

공격 대상 시스템

  • Apache ActiveMQ 서버가 설치되어 있음
  • 과거~현재까지 코인 마이너 공격자들에 의해 악성코드 설치 시도됨 (로그를 통해 확인)
  • 취약한 ActiveMQ 프로세스에 의해 Frpc가 설치됨
더보기

Q. Frpc

A. 원격 서버와 로컬 네트워크를 연결하기 위해 사용되는 오픈소스 소프트웨어 프록시 서비스를 제공해 로컬 리소스를 인터넷에 노출하거나 네트워크 간의 터널링을 쉽게 설정할 수 있도록 도와준다.

 

Q. 프록시 서비스
A. 클라이언트와 실제 목적지 서버 사이에서 중개 역할을 하는 서버나 소프트웨어 → 클라이언트-서버가 직접 통신하지 않고 프록시 서버가 중간에서 모든 요청과 응답을 처리한다.

 

Q. 터널링
A. 데이터를 암호화된 채널을 통해 안전하게 전송하는 네트워크 기술 클라이언트-서버 사이의 데이터 흐름을 보호하거나, 제한된 네트워크 환경(방화벽 등)을 우회하기 위해 사용됨
* 터널링은 데이터 흐름을 보호하는 동시에 방화벽을 우회할 수 있는 이유와 필요성은 사용 목적과 환경에 따라 다르다. 
* 중요한 점은, 터널링 자체가 방화벽을 우회하는 데 항상 쓰이는 것이 아니라, 보호된 통신 경로를 만들 때 방화벽 정책에 따라 우회가 필요한 경우가 있다는 것이다.

 

악성코드가 다운로드된 서버 확인 결과

  1. 다양한 악성코드, 정상 도구, 클래스 XML 설정 파일들이 존재함
  2. 취약한 Apache ActiveMQ의 자바 프로세스는 전달받은 조작된 패킷을 참고하여 hxxp://18.139.156[.]111:83/pocw.xml과 같은 경로에 XML 설정 파일 로드
  3. 이후에는 로드한 XML 설정 파일을 참고하여 지정한 명령 실행

 

원격 제어

XML 파일 유형에 따른 공격

1. 백도어 계정

  • 'adminCaloX1' 백도어 계정 추가, 관리자 계정에 등록 및 RDP 접속 가능하게 설정하는 명령어
  • 사설 네트워크에 존재하는 시스템에 RDP로 접속할 수 있도록 Frpc 및 설정 파일을 다운로드하고 실행하는 명령들도 존재
  • 백도어 계정을 추가하는 행위는 ActiveMQ 취약점을 아용해 직접 명령어를 실행하기도 하지만, 오픈 소스 도구인 CreateHiddenAccount를 사용하기도 한다. 
    • 다운로드 서버에는 'user.zip' 압축 파일이 업로드되어 있으며 내부에 CreateHiddenAccount_v0.2.exe 이름의  CreateHiddenAccount 와 이를 Batch 스크립트인 'user.bat'이 존재한다.
    • Batch 스크립트 : CreateHiddenAccount를 이용해 “Hell0$” 계정을 추가하고 은폐하는 역할
    • 중국어 사용자가 개발한 CreateHiddenAccount 도구가 사용되었다는 점이나 다운로드 서버에 보안 소프트웨어인 Huorong 설치 파일이 있는점 등을 보면 공격자가 중국어 사용자일 가능성이 존재
더보기

Q. RDP
A. Microsoft에서 개발한 네트워크 프로토콜 : 사용자가 원격으로 다른 컴퓨터에 접속하여 해당 컴퓨터를 제어하고 작업할 수 있도록 

 

Q. CreateHiddenAccount
A. 두가지 목적을 가지고 있다.
  1. 관리자 및 시스템 설정 관리 목적으로 숨겨진 계정을 생성할 때 사용
  2. 악성 소프트웨어 또는 해킹 악의적 목적으로 숨겨진 계정 생성할 때 사용 (시스템에 접근 또는 탐지 방지 목적)

 

Q. user.bat
A. Windows 운영체제에서 사용하는 배치 파일의 일종 : 명령어를 일괄 처리하는 데 사용

 

2. 백도어 악성코드

  • 공격자의 다운로드 서버에는 Quasar RAT이 존재하며 C&C 서버 또한 다운로드 서버의 주소와 동일하다. RDP를 이용한 원격 제어 외에 Quasar RAT도 함께 사용하는 것으로 추측
더보기

Q. Quasar RAT
A. 닷넷으로 개발된 오픈 소스 RAT 악성코드
- 일반적인 RAT 악성코드들처럼 프로세스, 파일, 레지스트리와 같은 시스템 작업, 원격 명령 실행, 파일 업로드 및 다운로드와 같은 기능 제공
- 이외에도 키로깅, 계정 정보 수집 기능 등 제공하여 사용자 환경의 정보를 탈취할 수 있고, 원격 데스크탑을 통해 실시간으로 감염 시스템을 제어할 수 있다.

 

Q. RAT (Remote Access Trojan)
A. 원격에서 시스템을 제어하기 위해 사용되는 악성 소프트웨어 주로 해킹, 스파이 활동, 멀웨어 배포 수단으로 사용

 

프록시

공격자 : ActiveMQ 취약점을 악용하여 실행된 파워쉘 명령으로 Frpc 및 설정 파일 설치

FRP

  • Go 언어로 개발된 오픈 소스 도구
  • NAT 환경이나 방화벽 내에 위치한 시스템을 외부에 노출시켜 주는 리버스 프록시로 동작
  • 종류
    • Frpc : (클라이언트 시스템에서 실행) 감염 시스템에 설치되는 도구 노출시킬 서비스의 포트와 외부에 위치한 중계기를 연결함
    • Frps : (FRP의 서버 측 컴포넌트) : 방화벽, NAT, 네트워크의 제약이 있는 환경에서 원격 접속을 지원하기 위해 사용되는 오픈소스 리버스 프록시, 터널링 솔루션 
더보기

Q. NAT (Network Address Translation)
A. 네트워크에서 IP 주소로 변환하는 기술, 주로 사설 네트워크와 공인 네트워크 간 연결을 관리할 때 사용
ex) 하나의 공인 IP 주소를 여러 대의 장치가 공유하도록 하여, 공인 IP 주소의 부족 문제를 해결하고 보안을 강화할 때 유용하다.

 

설정 데이터 : 감염 시스템의 3389 포트와 공격자 중계

감염 시스템이 사설 네트워크에 존재할 경우를 대비하여 공격자가 RDP 서비스에 연결할 수 있도록 도와주기 위한 목적이며 공격자는 위에서 다룬 백도어 계정들을 악용해 감염 시스템에 RDP로 접근할 것으로 추정

Frpc가 연결하는 주소는 국내의 또 다른 시스템이며 이는 공격자가 이미 해당 시스템을 장악한 이후 Frps를 설치한 것으로 추정

 

Mauri 랜섬웨어

(실제 공격 사례는 아직 확인되지 않았지만 다운로드 서버에는 Mauri 랜섬웨어가 업로드되어 있다.)

Mauri 랜섬웨어

  • 'mauri870'이라는 개발자가 연구 목적으로 개발한 랜섬웨어 → 코드가 공개되어 있어 다른 공격자들에 의해 자주 악용됨
  • 해당 소스 코드는 다른 공격자들에 의해 자주 사용되고 있는 것인지, MauriCrypt로  탐지되고 있다는 내용도 설명에 포함되어 있음

  • C&C 서버의 주소가 Localhost이고 다운로드 서버에 Mauri의 서버 프로그램도 함께 업로드되어 있어 아직 테스트 목적일 가능성 존재 하지만 랜섬웨어가 기본 형태가 아닌 지갑 주소나 텔레그램 주소 그리고 암호화 설정과 같은 여러 설정 데이터가 이미 공격자의 것으로 조작된 것을 보면 현재 공격에 사용되고 있을 가능성도 무시할 수 없다.

 

결론

공격

  • 코인 마이너를 설치하여 암호 화폐를 채굴하는 사례 존재
  • 감염 시스템을 제어하기 위한 악성코드들이 다수 확인됨 

감염 시스템을 장악한 이후 정보를 탈취하거나 랜섬웨어를 설치할 수 있다.

방어

  • 사용 중인 Apache ActiveMQ 서비스가 다음과 같이 취약한 버전인지 점검
  • 최신 버전으로 패치해 기존에 알려진 취약점으로부터 공격 방지
  • 외부에 오픈되어 접근 가능한 서버에 대해 방화벽과 같은 보안 제품을 이용해 공격자로부터의 접근 통제
  • V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단

 

참고 : 안랩 블로그 [Apache ActiveMQ 취약점(CVE-2023-46604)을 공격하는 Mauri 랜섬웨어 공격자]