촉촉한초코칩
[CVE-2023-46604] Apache ActiveMQ 취약점 본문
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. 데이터를 암호화된 채널을 통해 안전하게 전송하는 네트워크 기술 → 클라이언트-서버 사이의 데이터 흐름을 보호하거나, 제한된 네트워크 환경(방화벽 등)을 우회하기 위해 사용됨
* 터널링은 데이터 흐름을 보호하는 동시에 방화벽을 우회할 수 있는 이유와 필요성은 사용 목적과 환경에 따라 다르다.
* 중요한 점은, 터널링 자체가 방화벽을 우회하는 데 항상 쓰이는 것이 아니라, 보호된 통신 경로를 만들 때 방화벽 정책에 따라 우회가 필요한 경우가 있다는 것이다.
악성코드가 다운로드된 서버 확인 결과
- 다양한 악성코드, 정상 도구, 클래스 XML 설정 파일들이 존재함
- 취약한 Apache ActiveMQ의 자바 프로세스는 전달받은 조작된 패킷을 참고하여 hxxp://18.139.156[.]111:83/pocw.xml과 같은 경로에 XML 설정 파일 로드
- 이후에는 로드한 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 랜섬웨어 공격자]
'Study > CVE 및 취약점' 카테고리의 다른 글
MS 윈도우 압축 헤더(CAB)를 악용한 배치 파일(*.cmd) 악성코드 ModiLoader(DBatLoader) 유포 (0) | 2025.01.15 |
---|---|
Notion 설치파일로 위장한 MSIX 악성코드 유포 (0) | 2025.01.15 |
LummaC2 악성코드 - 게임 플랫폼 'Steam' 악용 (0) | 2025.01.04 |
Command Injection 취약점 (0) | 2022.09.11 |