
Plesk 기본 인증서 하나가 LummaStealer C2 서버 8개 도메인 전체 노출
Let's Encrypt 인증서 CN에 실제 서버 IP가 그대로 인코딩된 Plesk 자동 생성 호스트명이 LummaStealer 캠페인의 핵심 C2 인프라 전체를 단번에 귀결시켰다. 2025년 9월 사전 등록된 8개 .su 도메인과 별도 폴백 채널 resusct.qpon이 동일 페이로드에서 동시 접촉되며, 인프라는 2026년 중반 현재도 활성 상태다.
Plesk 패널이 스스로 서버를 노출하다 — LummaStealer C2 인프라의 인증서 자충수
Let's Encrypt R12 인증서 하나가 LummaStealer 캠페인의 핵심 명령제어(C2) 인프라 전체를 한 줄로 꿰었다. 인증서 시리얼 5ee1c638d84322bfe85a6b9e451a954406e의 subject CN은 admiring-poincare.37-77-150-150.plesk.page — Plesk 제어 패널이 자동 생성하는 호스트명으로, 서버의 실제 IP 주소인 37.77.150.150을 그대로 인코딩하고 있다. 이 인증서는 bendavo.su, ozonelf.su, squatje.su, conxmsw.su, exposqw.su, narroxp.su, squeaue.su, vicareu.su 등 8개 .su 도메인과 호스팅 IP에 동시 적용돼 있으며, 모두 러시아 상트페테르부르크 소재 Proton66 OOO(ASN 198953)의 단일 서버 위에 올라간 가상 호스트다. 운영자가 도메인 8개를 분산 배치해 얻으려 했던 로테이션 내성은, 인증서 설정 단 한 번의 실수로 사실상 무력화됐다.
CTX Team이 추적해 온 이 캠페인은 2025년 11월 말 처음 관측된 PE64 드로퍼를 중심으로 전개된다. 드로퍼는 Windows 정품 유틸리티인 WEXTRACT.EXE로 위장하고, Mozilla Corporation 명의의 코드 서명 체인을 달고 있지만 전체 authenticode 검증은 실패한다. 페이로드는 .rsrc 섹션 안에 암호화된 형태로 숨겨져 있으며, CAPE 샌드박스는 이를 LummaStealer로 명명했다. 이번 분석에서 새로 확인된 호스팅 IP, 9개 C2 도메인, 17개 URL 경로는 이전 관측 시점에는 존재하지 않았던 것들로, 캠페인 인프라가 현재도 활성 상태임을 보여준다.
단일 인증서가 8개 도메인을 하나의 서버로 귀결시키다
이 캠페인의 1차 C2 클러스터를 하나의 물리적 노드로 귀결시키는 증거는 네 개의 축이 동시에 교차한다는 데 있다.
첫째, 8개 .su 도메인은 모두 동일한 A 레코드(37.77.150.150)로 해석된다. 둘째, 권위 네임서버가 ns1.reg.ru / ns2.reg.ru로 통일돼 있고 TTL은 21,600초로 일정하다. 셋째, WHOIS 데이터에는 동일한 등록자 이메일([email protected])과 등록자 명칭 토큰(4c58731460c07301)이 모든 도메인에 반복된다. 넷째, 그리고 가장 결정적으로, 인증서 시리얼 5ee1c638d84322bfe85a6b9e451a954406e가 8개 도메인과 IP 모두에 공유된다.
이 인증서의 subject CN이 admiring-poincare.37-77-150-150.plesk.page라는 사실은 단순한 메타데이터가 아니다. Plesk 패널은 서버에 가상 호스트를 추가할 때 기본 인증서의 CN을 [임의문자열].[IP를 하이픈으로 연결].plesk.page 형식으로 자동 생성한다. 운영자가 각 도메인에 별도 인증서를 발급하거나 CDN 프론팅 레이어를 두지 않고 Plesk 기본값을 그대로 사용한 결과, 서버의 물리적 IP가 인증서 안에 노출됐다. 2026년 5월 6일에 발급된 이 인증서의 유효 기간은 89일로, Let's Encrypt의 표준 단기 인증서 정책에 따른 것이지만 — 도메인 등록일(2025년 9월 19일)로부터 약 7개월 반이 지난 시점에 갱신됐다는 사실은 인프라가 장기간 유지되고 있음을 보여준다.
8개 도메인이 하나의 백엔드를 공유한다는 구조는 운영자가 의도한 것이다. 개별 도메인 중 하나가 차단되더라도 나머지 7개가 동일한 서버로 트래픽을 이어받을 수 있다. 그러나 모든 도메인이 동일한 인증서 시리얼로 묶인 상황에서, 인증서 피벗 하나로 전체 풀이 동시에 식별된다는 점은 운영자가 의도하지 않은 결과다.
.qpon 도메인이 드러내는 이중 C2 설계
1차 클러스터의 구조적 취약점과 대비되는 것이 resusct.qpon이다. 이 도메인은 .su 풀과 모든 축에서 분리돼 있다. TLD가 .qpon으로 다르고, 등록 기관은 Dynadot(registrar ID 472)이며, 네임서버는 ns1/ns2.dyna-ns.net으로 TTL이 300초에 불과하다. 호스팅 IP는 157.230.44.113으로 Proton66과 무관한 별도 인프라다. 인증서는 CN=localhost의 자가 서명 인증서(시리얼 139e09ef17a2717d549a2426901ac4b8a310b0f6, 발급일 2025년 11월 6일)로, 브라우저 신뢰 체계와 완전히 단절된 채널임을 시사한다.
TTL 300초의 동적 DNS와 자가 서명 localhost 인증서의 조합은 이 채널이 브라우저 대면 HTTPS 엔드포인트가 아닌 raw 소켓 기반 통신이거나, 빠른 IP 교체를 전제로 설계된 폴백 채널일 가능성을 시사한다. 단정적 결론은 현 단계에서 어렵지만, 구조적 분리 자체는 운영자가 1차 클러스터의 단일 장애점 위험을 인식하고 있음을 보여주는 신호로 해석할 수 있다.
Proofpoint Emerging Threats IDS 룰 ET MALWARE Win32/Lumma Stealer Related CnC Domain in DNS Lookup (resusct .qpon)은 동일한 드로퍼 샘플의 샌드박스 실행 중 이 도메인에 대한 DNS 조회가 발생했음을 기록한다. 즉 .su 풀과 resusct.qpon은 같은 페이로드가 실행 중에 동시에 접촉하는 C2 채널들이다. 운영자는 인증서 레벨에서는 1차 클러스터를 통째로 노출하는 실수를 저질렀지만, 도메인 레벨에서는 완전히 분리된 폴백 채널을 별도로 구축해 두었다는 점에서 일정 수준의 운영 보안 의식을 갖추고 있다고 볼 수 있다.
WEXTRACT.EXE 위장과 무효 서명 체인의 이중 우회 구조
페이로드 전달 단계에서 운영자는 두 가지 우회 레이어를 중첩했다. 첫 번째는 LOLBin 신원 위장이고, 두 번째는 코드 서명 체인 도용이다.
SHA256 225a57964f4fe0de2712292ccb159249a8eb69c043005b6394c5ff6ef44b76c0으로 식별되는 이 PE64 바이너리는 meaningful name이 WEXTRACT.EXE .MUI이고, 내부 버전 정보에는 Internet Explorer 11.00.22621.1 (WinBuild.160101.0800), 저작권 표기는 © Microsoft Corporation. All rights reserved.가 들어 있다. WEXTRACT.EXE는 Windows 캐비닛 자동 압축 해제 도구로, 시스템 유틸리티 경로에서 실행되는 경우 파일명 기반 허용 목록 정책을 통과할 수 있다(T1036, Masquerading).
두 번째 레이어는 코드 서명 체인이다. 이 바이너리는 Mozilla Corporation → DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1 체인을 탑재하고 있으며, 서명자 시리얼은 0F 0E F7 C2 D8 19 27 3E 8C 13 F0 16 D2 E0 9B 25다. 체인의 각 인증서는 개별적으로 유효 상태를 유지하고 있지만, 전체 authenticode 검증은 실패한다 — VirusTotal에서의 서명 판정은 "The digital signature of the object did not verify."다. 바이너리가 'signed'와 'invalid-signature' 태그를 동시에 달고 있다는 것은, 서명 체인이 이식됐거나 서명 이후 바이너리가 수정됐음을 의미한다(T1036.001, Invalid Code Signature). 전체 체인 검증을 수행하지 않고 서명 존재 여부만 확인하는 보안 제품은 이 파일을 신뢰 가능한 것으로 오판할 수 있다.
빌드 구조를 보면 의도가 더 명확해진다. 전체 파일 크기 1,389KB 중 .rsrc 섹션이 1,347,584바이트를 차지하며, 이 섹션의 엔트로피는 7.94다. 나머지 섹션들(.text 6.11, .rdata 3.91, .data 1.04)과의 극단적 대비는 .rsrc 안에 암호화 또는 압축된 페이로드가 삽입돼 있음을 강하게 시사한다(T1027, Obfuscated Files or Information). 샌드박스 태그 executes-dropped-file과 overlay는 바이너리가 실행 시 이 내용을 메모리에서 추출해 실행함을 확인해 준다.
샌드박스 판정과 페이로드 행동 프로파일
4개 샌드박스 중 3개(CAPE Sandbox, Dr.Web vxCube, Yomi Hunter)가 악성 판정을 내렸으며, CAPE Sandbox는 추출된 페이로드를 명시적으로 'Lumma'로 명명했다. C2AE 샌드박스만 UNKNOWN_VERDICT를 반환했는데, 이는 페이로드가 특정 환경 조건을 감지했을 때 실행을 유보하는 로직을 포함하고 있을 가능성을 시사한다(T1497, Virtualization/Sandbox Evasion; T1497.003, Time Based Evasion). checks-disk-space 태그는 이 환경 프로파일링의 구체적 흔적이다 — 가상 머신 환경에서는 디스크 용량이 비정상적으로 작은 경우가 많아, 이를 탐지 지표로 활용하는 것은 LummaStealer 계열 악성코드에서 관찰되는 패턴과 일치한다.
spreader 태그도 주목할 만하다. 이 태그는 페이로드가 자기 복제 또는 네트워크 전파 시도를 했음을 의미하지만, 현 단계 증거로는 실제 전파 범위를 확인하기 어렵다. persistence 태그와 MITRE T1547.001(Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder) 매핑은 페이로드가 레지스트리 실행 키 또는 시작 폴더를 통해 재부팅 후에도 활성 상태를 유지하도록 설계됐음을 보여준다. 다만 직접적인 레지스트리 키 관찰은 이번 분석 범위에 포함되지 않아, 이 부분은 태그와 MITRE 매핑으로부터의 추론임을 밝혀 둔다.
VirusTotal 탐지율은 44/77로, 77개 엔진 중 44개가 악성으로 분류했다. 탐지 엔진 목록에는 ALYac, AhnLab-V3, ESET-NOD32, Kaspersky, Microsoft, CrowdStrike, DrWeb 등이 포함된다. 반면 SentinelOne, APEX, Antiy-AVL, Panda, ClamAV 등은 여전히 탐지하지 못하고 있다. 탐지율 57%라는 수치는 이 드로퍼가 완전히 알려진 위협이 아님을 의미하며, 특히 서명 신뢰 기반 허용 목록을 운용하는 환경에서는 실제 탐지율이 더 낮을 수 있다.
Proofpoint Emerging Threats의 IDS 룰 4개가 이 샘플에서 동시에 발화했다: ET MALWARE Win32/Lumma Stealer Related CnC Domain in DNS Lookup (bendavo .su), ET MALWARE Observed Win32/Lumma Stealer Related Domain (bendavo .su) in TLS SNI, ET MALWARE Win32/Lumma Stealer Related CnC Domain in DNS Lookup (resusct .qpon), ET DNS Query for .su TLD (Soviet Union) Often Malware Related. DNS 조회와 TLS SNI 양쪽에서 동시에 룰이 발화했다는 것은 페이로드가 실제 TLS 핸드셰이크까지 진행했음을 의미한다.
2025년 9월 도메인 사전 등록 — 10주 앞선 인프라 준비
이 캠페인의 타임라인에는 주목할 만한 간격이 있다. 8개 .su 도메인은 모두 2025년 9월 19일 하루에 일괄 등록됐다. 드로퍼가 VirusTotal에 처음 제출된 날짜는 2025년 11월 24일이다. 도메인 등록과 페이로드 첫 관측 사이에 약 10주의 간격이 존재한다는 것은, 운영자가 캠페인 실행 전에 C2 인프라를 미리 구축해 두는 사전 준비 방식을 취했음을 시사한다.
이후 인증서는 2026년 5월 6일에 갱신됐다 — 도메인 등록으로부터 약 7개월 반 뒤다. 이 갱신은 캠페인이 2026년 중반까지도 활성 상태로 유지되고 있음을 보여주는 직접적 증거다. 도메인 만료일은 2026년 9월 19일로, 현재 기준으로 아직 유효 기간 내에 있다. 즉 이 .su 도메인 풀은 등록 시점부터 현재까지 8개월 이상 운영자의 통제 하에 있으며, 인프라 교체 없이 지속적으로 유지되고 있다.
반면 resusct.qpon은 2025년 11월 8일에 등록됐다 — 드로퍼 첫 관측(11월 24일) 약 2주 전이다. 이 도메인의 자가 서명 인증서는 2025년 11월 6일에 발급됐다. .su 풀이 10주 전 사전 준비된 것과 달리, .qpon 도메인은 캠페인 직전에 준비된 폴백 채널로 보인다.
17개 미검증 해시가 남기는 분석의 공백
이 캠페인의 인디케이터 카탈로그에는 파일 해시 18개가 등록돼 있다. 그러나 실질적인 분석이 가능한 것은 SHA256 225a57964f4fe0de2712292ccb159249a8eb69c043005b6394c5ff6ef44b76c0 단 하나뿐이다. 나머지 17개 해시는 파일 유형이나 크기, 서명자, 위협 레이블 등 어떤 속성도 확인되지 않아, 이들이 동일 드로퍼의 변종인지, 별도 스테이저인지, 혹은 무관한 아티팩트인지 현 단계 증거로는 판단하기 어렵다.
이 공백은 캠페인 규모 추정에 직접적인 영향을 미친다. 확인된 파일 IOC가 하나뿐이라는 사실이 캠페인이 단일 드로퍼 변종으로만 운영된다는 의미는 아니다. 17개 미검증 해시가 실제로 추가 드로퍼 변종을 나타낸다면, 현재 분석이 포착하고 있는 것은 캠페인 전체 발자국의 일부에 불과할 수 있다. 현재로서는 단정적 결론을 내리기 어려우며, 이 해시들에 대한 추가 텔레메트리 확보가 캠페인 규모를 정확히 평가하는 데 필수적이다.
확인된 단일 파일 IOC가 동종 파일들과 imphash, 서명자, 위협 레이블 중 어느 것도 공유하지 않는다는 점도 특이하다. 이는 이 샘플이 더 넓은 빌더 패밀리의 일원이 아니라 독립적으로 제작됐거나, 비교 대상이 될 동종 샘플이 아직 수집되지 않았음을 의미한다. 어느 쪽이든 현 단계 증거로는 드로퍼 제작 인프라의 규모와 재사용 패턴을 평가하기 어렵다.
Plesk 기본값 방치가 드러내는 운영 성숙도의 한계와 함의
이 캠페인에서 관찰되는 인프라 패턴은 비용 효율적이지만 운영 노이즈가 높은 C2 구축 방식을 보여준다. 8개 도메인을 하루에 일괄 등록하고, 단일 Plesk 서버에 모두 올리고, Let's Encrypt 자동 갱신에 의존하는 방식은 초기 비용이 낮고 관리 부담이 적다. 그러나 Plesk 기본 인증서를 그대로 사용함으로써 서버 IP가 인증서 CN에 노출되는 결과를 낳았다 — 이는 운영자가 TLS 인증서의 메타데이터가 인프라 귀속의 피벗 포인트가 될 수 있다는 점을 충분히 고려하지 않았음을 시사한다.
반면 resusct.qpon의 존재는 다른 차원의 운영 의식을 보여준다. 완전히 다른 등록 기관, 다른 네임서버 인프라, 다른 호스팅 IP를 사용해 1차 클러스터와 구조적으로 분리된 폴백 채널을 구축했다는 것은, 운영자가 도메인 단위의 단일 장애점 위험을 인식하고 있음을 의미한다. 인증서 레벨의 실수와 도메인 레벨의 신중함이 공존하는 이 패턴은, 운영 보안에 대한 이해가 고르지 않은 운영자 — 혹은 인프라 구축과 운영 보안을 담당하는 역할이 분리된 팀 구조 — 를 암시하는 것으로 해석할 수 있다. 다만 이는 패턴으로부터의 추론이며, 직접 확인된 사실은 아니다.
스페인과 멕시코의 기술 산업이 이 캠페인의 주요 표적 지역·산업으로 식별된다. LummaStealer는 자격증명, 세션 토큰, 암호화폐 지갑 데이터를 수집하는 정보 탈취형 악성코드로, 운영자의 동기는 금전적 이익으로 추정된다 — 다만 이는 악성코드 패밀리의 알려진 목적과 표적 지역·산업으로부터의 추론이며, 이 캠페인의 구체적 피해 사례가 직접 확인된 것은 아니다.
.su 도메인 풀이 등록 후 8개월 이상 교체 없이 유지되고 있다는 사실, 그리고 인증서 갱신이 2026년 5월에 이루어졌다는 사실은 이 인프라가 당분간 계속 운용될 것임을 시사한다. 인증서 시리얼 5ee1c638d84322bfe85a6b9e451a954406e와 A 레코드 37.77.150.150은 운영자가 인프라를 교체하지 않는 한 캠페인 전체를 포괄하는 내구성 있는 피벗 포인트로 기능한다. 17개 미검증 파일 해시가 남기는 분석 공백이 해소되기 전까지, 이 캠페인의 실제 규모는 현재 확인된 것보다 클 수 있다는 점을 염두에 두어야 한다.