TL;DR

  • WebNX, Inc.의 서버 23.252.123.134에서 지갑 키 스캔, 크립토재킹, 채굴 풀 계정 무차별 대입이라는 세 가지 수익 활동이 하나의 제어 서버와 콜백 포트를 공유하는 작전임.
  • 지갑 스캔 작업자는 탈취한 Hadoop/YARN 클러스터 안에서 실행되며, 키 범위를 최대 호스트당 8개 스레드로 훑고 발견한 지갑을 보고함.
  • GPU 인식형 채굴 설치 프로그램은 /tmp/.scXXXX에 숨고, xmrig 방식의 로컬 API를 노출하며, 크론탭 두 항목으로 지속성을 유지함.
  • 분산 작업자 두 종류가 공유 사전을 나눠 채굴 풀 계정을 무차별 대입하며, 탈취 계정으로 다른 채굴자의 수익 지급처를 바꿀 수 있음.
  • 작업자 스크립트의 중국어 주석은 중국어 사용 운영자나 조직의 단서지만, 특정 그룹의 증거는 아니며 센서는 2026-09-27에 해당 서버를 포착함.

아키텍처

  • 세 개의 독립적인 수익 활동이 하나의 제어 서버와 콜백 포트를 공유하는 구조임.
  • 페이로드 준비에는 8000번·18095번 포트, 결과 콜백에는 8899번 포트가 사용됨.

발견 경위

  • 악성 공개 디렉터리에서 작업자 스크립트, 채굴 바이너리, 자격 증명 사전이 노출된 HTTP 루트 디렉터리를 통해 제공되는 것을 확인함.
  • 콘텐츠를 자동으로 복구하고 분류했으며, 센서 관측 시점은 2026-09-27임.
  • 관측된 작업 흐름은 페이로드 준비, 컴퓨팅 자원 탈취, 지갑 스캔, 채굴 및 무차별 대입, 결과 수집 순서임.

1. 탈취한 컴퓨팅 자원에서 지갑 키 스캔

  • 첫 번째 수익 활동은 분산형 지갑 키 스캔 엔진임.
  • 중국어 주석에 탈취한 YARN 컨테이너 안에서 실행한다고 적힌 qhmine_worker.sh 작업자가 제어 서버에서 네이티브 엔진 바이너리와 fuse16 필터 세트를 내려받음.
  • 작업자는 할당된 숫자 범위를 훑어 잔액이 있는 지갑을 찾고, 호스트당 스레드 수를 8개로 제한하며, 발견 결과를 수집기에 전송함.
  • 필터는 사전에 계산된 자금 보유 주소 집합일 가능성이 매우 높으며, 엔진은 생성했거나 수집한 키를 이 집합과 대조함.
  • 컴퓨팅 자원은 운영자 소유가 아니라 탈취한 Hadoop/YARN 클러스터임. 이러한 클러스터는 규모가 크고 인터넷에 노출되며 감시가 드문 편으로, 오래전부터 크립토재킹의 표적임.

2. GPU 인식형 크립토재킹 작업군

  • 두 번째 수익 활동은 일반적인 채굴임.
  • deploy_node.sh는 무작위 이름의 /tmp/.scXXXX 디렉터리에 숨고 fleet_lin.tgz 묶음을 내려받는 은밀한 채굴기 설치 프로그램임.
  • 채굴기는 익숙한 xmrig 방식의 로컬 API인 :4068, :4069/2/summary를 노출하고, nvidia-smi로 GPU를 확인함.
  • 지속성은 @reboot 및 8분마다 실행되는 크론탭 항목 두 개로 확보함.

3. 채굴 풀 자격 증명 무차별 대입

  • 세 번째 수익 활동은 익명 처리된 암호화폐 채굴 풀 플랫폼의 계정을 표적으로 삼음.
  • krworker.sh라는 Bash·curl 작업자와 장시간 실행되는 Python 작업자 worker3.py가 공유 사전 mega_dict.txt를 인덱스 기준으로 나눠 클러스터 전반에서 사용함.
  • 작업자들은 사용자 에이전트와 SOCKS 프록시를 교체하고, 로그인 CSRF 토큰을 가져온 뒤 대상 사용자 이름 목록의 자격 증명을 대량으로 시도함.
  • 성공한 계정 정보는 제어 서버의 8899번 포트로 보고됨. 침해된 풀 계정으로 다른 채굴자의 수익 지급처를 바꿀 수 있음.

귀속

  • 모든 작업자에는 중국어 주석과 운영 메모가 포함되어 있어, 인프라 배후에 중국어 사용 운영자 또는 조직이 있음을 시사함.
  • 언어는 귀속을 위한 단서일 뿐 특정 그룹과의 연관성을 입증하지 않음.
  • 세 수익 활동이 하나의 제어 서버와 콜백 포트를 공유하므로, 서로 무관한 도구 세 개가 아니라 세 가지 수익원을 가진 하나의 작전임.

MITRE ATT&CK

  • T1496 — 리소스 하이재킹(Resource Hijacking): xmrig 방식 채굴기 작업군 및 YARN에서의 지갑 스캔.
  • T1110.001 — 무차별 대입: 비밀번호 추측(Brute Force: Password Guessing): 채굴 풀을 대상으로 하는 krworker.sh 및 worker3.py.
  • T1053.003 — 예약된 작업/작업: 크론(Scheduled Task/Job: Cron): @reboot 및 */8 지속성 설정.
  • T1564.001 — 아티팩트 숨기기: 숨김 파일 및 디렉터리(Hide Artifacts: Hidden Files and Directories): /tmp/.scXXXX 채굴기 디렉터리.
  • T1090.002 — 프록시: 외부 프록시(Proxy: External Proxy): 무차별 대입 작업자의 순환 SOCKS 프록시.

지표

  • 호스트: 23.252.123.134 — WebNX, Inc., 미국, 제어 서버.
  • 관측 시점: 2026-09-27~2026-09-27.
  • 포트: 8000 및 18095 — 페이로드 준비, 8899 — 콜백/cbmgr.
  • 파일: qhmine_worker.sh, deploy_node.sh, krworker.sh, worker3.py, fleet_lin.tgz, fuse16.tgz.
  • 호스트 지표: /tmp/.sc[0-9a-f]{4}/ 채굴기 디렉터리, @reboot 및 */8 * * * * 크론탭 지속성 설정.
  • 채굴기: 127.0.0.1:4068 및 :4069/2/summary의 로컬 API.

방어 방법

  • Hadoop/YARN 잠금: ResourceManager REST API를 인터넷에 절대 노출하지 않는 것이 이러한 클러스터 크립토재킹의 가장 흔한 진입점을 차단하는 방법임.
  • 지속성 흔적 탐지: /tmp/.sc* 디렉터리, 몇 분마다 숨겨진 바이너리를 실행하는 크론탭 항목, 4068 및 4069의 로컬 채굴기 API를 점검함.
  • 채굴 풀 계정 보호: 다중 요소 인증(MFA)을 적용하고 로그인 시도 횟수를 제한함. 이 조직은 분산 작업자에서 대규모 무차별 대입을 수행함.