본문 바로가기
분석 정보/악성코드 분석 정보

오픈 소스 코드를 이용하는 Phantom Stealer

by TACHYON & ISARC 2025. 12. 24.

Stealerium 2022년 교육적인 목적으로 오픈 소스로 공개된 정보 탈취형 악성 파일로, 분석가들이 악성 파일을 연구하는데 도움이 되기도 했지만 공격자들이 쉽게 유사한 변종을 제작할 수 있는 계기를 제공하기도 했다. Phantom Stealer 도 이러한 변종 중 하나로, Stealerium 과 유사하게 모듈화된 정보 탈취 기능을 이용해 사용자 인증 정보, 암호 화폐 관련 정보를 탈취하거나 추가 악성 파일을 다운로드하는 기능을 수행한다.

 

[그림 1] Phantom Stealer  판매 사이트


[그림 2] Phantom Stealer  판매 페이지

 

본 보고서에서 분석한 샘플은 다음과 같은 흐름에 따라 공격이 진행된다. 최초 실행되는 자바스크립트 이후의 후속 스크립트와 최종 페이로드(payload)는 디스크에 파일을 생성하지 않고 메모리상에서 즉시 실행되는 파일리스(Fileless) 기법을 사용한다. 공격 과정 중에는 이미지나 인코딩된 데이터 형태의 리소스를 다운로드하며 해당 파일 내부의 Base64 페이로드를 추출해 다음 단계로 전달한다.

 

[그림 3] Phantom Stealer  공격 흐름도

 

최초 공격이 시작되는 PO_E002594522.js 파일은 난독화된 자바스크립트다. 난독화된 스크립트가 실행되면 ActiveXObject 를 생성해 또 다른 난독화된 자바스크립트를 외부에서 다운로드한 후 파일리스 방식으로 실행한다.

 

[그림 4]  악성 자바스크립트 다운로드 코드

 

두 번째 자바스크립트는 난독화된 PowerShell 스크립트를 실행해 JPEG 이미지 파일을 다운로드한다. 다운로드한 파일은 겉보기엔 정상적인 이미지 파일이지만, 이미지 포맷 뒤에 BaseStart- 문자열로 시작해 -BaseEnd 문자열로 끝나는 거대한 Base64 문자열이 존재한다. 악성 PowerShell 스크립트는 이미지 파일로부터 Base64 문자열을 추출, 디코딩해 DLL 파일을 생성하고 로딩한다.

 

[그림 5]  악성 데이터를 포함한 이미지 파일

 

이후 실행된 DLL 은 다른 주소로부터 Phantom Stealer 실행 파일을 Base64 인코딩 후 거꾸로 뒤집은 텍스트 파일을 다운로드한다. 다운로드된 데이터는 복호화 후 로딩돼 Phantom Stealer 의 정보 탈취 기능을 수행한다.

 

[그림 6]  복호화된  Phantom Stealer  데이터

 

 

Phantom Stealer 는 모듈화된 악성 기능을 가지며, 빌드 시 생성된 설정 값에 따라 모듈의 실행 여부가 결정된다. [1] Phantom Stealer 에서 사용되는 설정 값과 의미를 보여준다.

 

[표 1] Phantom Stealer  설정

 

사용되는 문자열은 대부분 평문이지만 공격자 서버 주소, 인증 정보와 같이 중요한 정보는 암호화돼 저장되었다. 암호화된 문자열은 Base64 디코딩 후 PBKDF2 에 의해 생성된 값을 기반으로 AES 알고리즘으로 복호화 후 사용된다.

 

[그림 7]  문자열 복호화 코드

 

AntiAnalysis 설정 값이 1 이면 GPU, 실행 중인 프로세스, 서비스, 로딩된 모듈, 시스템의 IP, PC 이름, 사용자 이름, Machine ID 정보를 수집, 검사해 시스템의 가상 환경 여부를 검증한다. 시스템이 가상 환경으로 판단되면 악성 행위 없이 프로세스를 종료한다.

 

[그림 8]  가상 환경 관련 프로세스 탐지 코드

 

시스템이 가상 환경이 아니라고 판단되면 설정에 명시된 프로그램으로부터 브라우저 쿠키, 인증 정보, 암호 화폐 지갑 주소와 같은 민감한 정보를 수집한다. 그 뿐만 아니라 키로깅 기능을 통해 사용자의 키보드 입력을 가로채거나, 클립보드에 암호 화폐 지갑 주소가 탐지될 시 공격자가 지정한 지갑 주소로 코인이 전송되도록 지갑 주소를 바꿔치기하는 하이재킹 공격도 시도한다.

 

[그림 9]  클립보드의 암호 화폐 지갑 주소 하이재킹 코드

 

FileDownloader 설정 값이 1 이라면 외부 주소로부터 또 다른 악성 페이로드를 다운로드 후 파일을 생성하지 않은 채 메모리에만 로딩해 실행한다.

 

[ 그림  10]  페이로드를 메모리에 로딩하는 코드

 

Phantom Stealer 는 데이터 유출 수단으로서 Telegram, Discord, SMTP, FTP 를 제공한다. 수집된 민감한 데이터는 설정에서 지정한 수단을 통해 공격자가 운영하는 채널 또는 메일 주소로 전달된다.

 

Phantom Stealer 는 오픈 소스로 공개된 코드를 사용해 다소 전형적이지만 모범적인 정보 탈취 기능이 구현돼 있다. 모두가 접근 가능한 코드이기에 분석과 진단이 용이하지만 공격자는 이러한 약점을 보완하려고 공격 과정에서 파일리스 기법을 활용해 악성 코드를 메모리에만 남겨 백신의 진단을 회피하는 용의주도함을 보여주고 있다. 이후에도 유사한 기능을 가진 악성 파일이 계속 유포될 가능성이 높으므로 사용자는 출처가 불분명한 스크립트, 실행 파일 실행을 지양하고 암호 화폐 주소와 같이 중요한 데이터를 복사하거나 붙여넣을 때는 송금 전에 다시 한번 확인하는 자세가 필요하다.

 

상기 악성코드는 잉카 인터넷 안티바이러스 제품 TACHYON Internet Security 6.0에서 진단 및 치료가 가능하다.

 

[ 그림  11] TACHYON Internet Security 6.0  진단 및 치료 화면