Analysis Report

f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2

Capability Preview

Malicious Capability Preview

The image can be inaccurate, incomplete and/or incorrect.

General Information

Sample f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
MD5 7d62e779a769e120ac8f0c5a8bd4e968
SHA256 f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
File Type ZIP archive containing a Windows Shell Link
File Size 860 bytes
Date/Time 2026-10-30 09:39:20 +01:00
Analysis duration 00:30:18
Mode UI

Detection

Malicious
Suspicious
Clean
Unknown
Threatname Kimsuky / Operation GitPower
Score 95
Range 0 - 100
Confidence 93
Joe Reverser may be inaccurate, incomplete, or incorrect.

Screenshots

This section contains all screenshots displayed as thumbnails, click on any thumbnail to enlarge it.

AI Summary

Malware Analysis Report: Kimsuky / Operation GitPower

Executive Summary

The submitted ZIP contains a malicious shortcut disguised as a Japanese questionnaire about U.S.–China relations and North Korea policy. Opening it attempts to display a decoy PDF while installing a script-based mechanism for reconnaissance, recurring execution, and data transfer to an attacker-controlled GitHub repository. The recovered implementation closely matches Kimsuky’s Operation GitPower, including a distinctive scheduled-task name and the same staged delivery and exfiltration design.

Assessment Result
Verdict Malicious
Threatname Kimsuky / Operation GitPower
Score 95/100
Evidence Confidence 93/100

These scores assess the submitted artifact and recovered code, not a sandbox execution.

Sample Identification

Property Value
Submitted file uploaded_file/f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
Format / size ZIP archive / 860 bytes
MD5 7d62e779a769e120ac8f0c5a8bd4e968
SHA-256 f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
Archive contents One Windows shortcut, 1,276 bytes
Actual shortcut name 米中首脳会談とトランプ次期政権の対北朝鮮政策に関する資料質問紙.pdf.lnk

The filename translates approximately to “Materials/questionnaire concerning the U.S.–China summit and the incoming Trump administration’s North Korea policy.”

Attack Chain and Malware Behavior

1. LNK execution and decoy download

The shortcut displays a PDF icon but targets cmd.exe. Its arguments first run mode 15,1, reducing the console’s dimensions, then use curl -k -L to download two files from gitlab.com/rabbit779/giraff88:

  • us8i.pdf, saved as %APPDATA%\whiskak.pdf and opened through Explorer.
  • first.ini, saved as C:\Users\Public\wiska.vbe and subsequently invoked.

The commands use & separators rather than success-dependent chaining, so later commands are attempted even when an earlier step fails.

2. VBScript-to-PowerShell execution

first.ini contains readable VBScript despite its source and destination extensions. It reconstructs a PowerShell command by removing the inserted strings wfwiudfksksk and apple.

Using WScript.Shell.Run, the loader starts PowerShell hidden and asynchronously with:

powershell.exe -NoProfile -ExecutionPolicy Bypass -w 1 -Command …

The reconstructed command retrieves help.ini using Net.WebClient.DownloadString, passes the returned text to [ScriptBlock]::Create, and invokes the resulting script block. The downloaded PowerShell stage is therefore executed without first being written to a PowerShell script file.

3. Scheduled-task persistence and host-specific tasking

A recovered historical help.ini revision matches the shortcut’s wiska.vbe filename. It:

  1. Reads C:\Users\Public\wiska.vbe.
  2. Replaces help.i with <COMPUTERNAME>/help.i, changing future retrievals to a host-specific help.ini path.
  3. Saves the modified loader as C:\Users\Public\Music\wiskas.vbe.
  4. Deletes and recreates the following task:
GoogleUpdateTaskMachineUA{1C791230-CA8D-6D04-AC55-E498ABE7C33}

The task runs every 15 minutes and invokes:

C:\Windows\System32\wscript.exe //e:vbscript /b C:\Users\Public\Music\wiskas.vbe

This establishes periodic retrieval and execution of attacker-controlled, per-host PowerShell.

Repository-version distinction: The current retrieved help.ini references horak.vbe and horaks.vbe, not wiska.vbe. The matching historical revision—not the incompatible current filenames—is the basis for this sample’s persistence reconstruction.

4. Reconnaissance and GitHub exfiltration

The matching PowerShell stage collects:

Collection Local output
systeminfo %TEMP%\SYS.tmp
Downloads-directory listing using Get-ChildItem -Recurse -Depth 2 %TEMP%\DOWN.tmp

A recovered host-specific variant also uses tasklist to collect running-process information. The inspected Downloads routine lists files and directories; it does not demonstrate theft of every listed file.

The upload function reads the collection files, Base64-encodes their contents, and submits authenticated HTTP PUT requests to:

https://api.github.com/repos/mongdolma/kangkani/contents/<COMPUTERNAME>/data/<filename>

Authentication uses a hardcoded GitHub personal access token concealed through string replacements. The JSON request contains message: "yshon" and the encoded content. Uploaded filenames follow SYS_yyyy-MM-dd_HHmm.tmp and DOWN_yyyy-MM-dd_HHmm.tmp.

The script then deletes the temporary collection files and the initial loader.

5. Registry/scriptlet finding

Registry-based scriptlet storage or execution was not identified in the submitted shortcut or inspected script stages. The recovered implementation uses file-based VBScript loaders and in-memory PowerShell. No corresponding registry writes, registry-resident scriptlets, or regsvr32/mshta invocation were found.

Verified static execution outline

Japanese questionnaire.pdf.lnk
  └─ cmd.exe /c
      ├─ curl -k -L: us8i.pdf
      │   └─ notable sink: %APPDATA%\whiskak.pdf opened through Explorer
      └─ curl -k -L: first.ini → C:\Users\Public\wiska.vbe
          └─ WScript.Shell.Run: hidden PowerShell
              └─ DownloadString(help.ini) → ScriptBlock.Create → invocation
                  ├─ Modify loader URL with COMPUTERNAME
                  │   └─ notable sink: Public\Music\wiskas.vbe and recurring scheduled task
                  ├─ systeminfo and Downloads enumeration
                  │   └─ notable sink: %TEMP%\SYS.tmp and DOWN.tmp
                  └─ Base64 encoding → Invoke-RestMethod -Method Put
                      └─ notable sink: mongdolma/kangkani/<COMPUTERNAME>/data/

Lure and Targeting Context

The decoy asks about U.S.–China competition, renewed Trump–North Korea dialogue, another U.S.–North Korea summit, Russia–North Korea military alignment, and South Korea’s policy response.

These themes are tailored to Japanese-speaking foreign-policy researchers, academics, think-tank analysts, journalists, and diplomatic/security specialists. These are inferred target categories, not identified victims.

The filename invokes an incoming Trump administration, while the PDF discusses an existing administration and an unspecified “recent” U.S.–China summit. The evidence does not establish one particular summit or campaign date. No organization is named or branded in the recovered PDF, and the delivery email was unavailable; consequently, no impersonated organization can be assigned to this specific delivery.

Recovered decoy PDF — page 1

Recovered decoy PDF, page 1

Campaign Correlation

Attribution: Kimsuky, consistent with Operation GitPower. Confidence in the technical campaign linkage is high.

Source Attributable finding Relationship to this sample
Genians — Operation GitPower Documents Kimsuky’s GitLab-hosted first.ini/help.ini chain, host-specific retrieval, GitHub exfiltration, and Japanese-language decoys. The strongest connection is the identical complete GoogleUpdate task name, combined with the same 15-minute interval, staging, reconnaissance, and cleanup design.
Same Genians report Describes inserted-string removal, including apple and the distinctive recurring wolf artifact. Both strings occur in the recovered implementation’s obfuscation.
JPCERT/CC — Attack Activities by Kimsuky Targeting Japanese Organizations Documents Japanese targeting and impersonation of a security/diplomatic organization. Supports the broader targeting context, but is not an exact infrastructure or sample match.

Genians’ related cases impersonated conference organizers and policy researchers. Those documented identities belong to the referenced cases and are not established identities for this ZIP.

Key Suspicious Indicators

  • A PDF-disguised shortcut starts a command interpreter rather than a document reader.
  • Remote content is saved under a script extension and immediately invoked.
  • Obfuscated VBScript launches hidden PowerShell with execution-policy bypass.
  • A GoogleUpdate-like task repeatedly runs a loader from the Public Music directory.
  • Reconnaissance results are uploaded to a hardcoded GitHub repository using an embedded token.
  • Temporary output and the initial loader are deleted after collection and transfer.

Indicators of Compromise

GitLab and GitHub are legitimate shared services. The repository paths and associated behavior—not the service domains alone—are the meaningful indicators.

Type Value Source context
Payload repository gitlab[.]com/rabbit779/giraff88 LNK and downloaded loader
Decoy URL hxxps://gitlab[.]com/rabbit779/giraff88/-/raw/main/us8i.pdf?ref_type=heads LNK arguments
Loader URL hxxps://gitlab[.]com/rabbit779/giraff88/-/raw/main/first.ini?ref_type=heads LNK arguments
PowerShell URL hxxps://gitlab[.]com/rabbit779/giraff88/-/raw/main/help.ini?ref_type=heads Reconstructed VBScript command
Follow-up URL pattern …/raw/main/<COMPUTERNAME>/help.ini?ref_type=heads Modified persistent loader
Exfiltration repository github[.]com/mongdolma/kangkani PowerShell upload function
Exfiltration API pattern hxxps://api.github[.]com/repos/mongdolma/kangkani/contents/<COMPUTERNAME>/data/<filename> PowerShell upload function
Scheduled task GoogleUpdateTaskMachineUA{1C791230-CA8D-6D04-AC55-E498ABE7C33} Matching historical help.ini
Local files %APPDATA%\whiskak.pdf; C:\Users\Public\wiska.vbe; C:\Users\Public\Music\wiskas.vbe Decoy, initial loader, persistent loader
Temporary output %TEMP%\SYS.tmp; %TEMP%\DOWN.tmp Reconnaissance staging

Artifact hashes

Artifact SHA-256
Submitted ZIP f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
Malicious LNK 0bda23628a5955e0a089d5459631224f10c9d7f72a5ede5603e7465f8651c239
Retrieved first.ini cd94b4fa51812fdc4945c8dbef808fcdfd0ce96249bcb7ee0344af77b205e93c
Decoy us8i.pdf 5afc90f99bedc54ade27cb34ff7c824968f009b56d83f79f5513fd5bf5464211
Matching historical help.ini 11551a992fe94b7cdc0df5a78074376a098933bc1899e4dd9aa9099cff7510b9
Current retrieved help.ini 625bbefa9ad59415cd3dfd3ae16f12b34e856a739a41f7a33454397d3a02d6dd

False Positive Analysis

The decoy PDF is not the execution mechanism: inspection found no JavaScript, launch action, or embedded file. Likewise, PowerShell, scheduled tasks, and developer-hosting services can have legitimate uses individually.

Their combination here is unambiguously malicious: a misleading document shortcut silently retrieves scripts, establishes recurring execution, collects host information, and uploads it to a hardcoded repository using an embedded credential. There is no plausible document-viewing requirement for this behavior.

Evidence Limitations

  • No runtime execution: The investigation establishes intended code behavior, not successful task creation, token validity, infection, or exfiltration.
  • No matching sandbox analyses: Exact-hash Joe Sandbox searches for the ZIP, LNK, and retrieved initial loader returned no analyses. No runtime report or memory dump corroborated the chain.
  • Mutable remote stages: The shortcut references GitLab main. Historical revisions supplied the matching wiska implementation, but the exact remote content served during an earlier victim interaction cannot be proven.
  • Script-engine dependency: The initial loader is readable VBScript saved with a .vbe extension. Its default-association execution was not tested; the persistent task explicitly selects //e:vbscript.
  • Missing delivery evidence: No original email, recipient information, or organization branding was available. Specific victims and impersonated organizations are therefore not established.
  • Unsupported registry stage: Registry-resident scriptlet behavior requested in the original scope was not present in the inspected artifacts.
  • Contextual research limits: Several web searches produced irrelevant results or failed retrievals. Geopolitical interpretation is therefore limited to the recovered lure text and inspected campaign reporting.

Analysis Workflow

Submitted ZIP
  ├─ Identify format, size, and hashes
  ├─ Extract and statically parse the LNK
  ├─ Retrieve decoy PDF and referenced script stages
  ├─ Inspect repository history and matching host-specific variants
  ├─ Reconstruct persistence, reconnaissance, and GitHub uploads
  └─ Compare verified behavior with Genians and JPCERT/CC reporting
      └─ notable sink: evidence-based Kimsuky / Operation GitPower assessment

References

  1. Genians — Kimsuky’s Operation GitPower Targeting Ukraine Behind the Front Lines of Russia’s War.
  2. JPCERT/CC — Attack Activities by Kimsuky Targeting Japanese Organizations, July 8, 2024.
  3. Primary evidence: submitted ZIP and LNK, retrieved GitLab stages, and matching historical help.ini revision 87d2761b5c84b57c011dfcbe8ff1ff9ac2f365ae.

IOCs

Type Name Status SHA256
file uploaded_file/f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
Malicious f8adbea62ff58587267d39b04fbcd784df1886e9d8c1b212348a9d95d133f6c2
file 米中首脳会談とトランプ次期政権の対北朝鮮政策に関する資料質問紙.pdf.lnk
Malicious 0bda23628a5955e0a089d5459631224f10c9d7f72a5ede5603e7465f8651c239
file first.ini
Malicious cd94b4fa51812fdc4945c8dbef808fcdfd0ce96249bcb7ee0344af77b205e93c
file us8i.pdf
Clean 5afc90f99bedc54ade27cb34ff7c824968f009b56d83f79f5513fd5bf5464211
file help.ini at revision 87d2761b5c84b57c011dfcbe8ff1ff9ac2f365ae
Malicious 11551a992fe94b7cdc0df5a78074376a098933bc1899e4dd9aa9099cff7510b9
file help.ini retrieved from main
Malicious 625bbefa9ad59415cd3dfd3ae16f12b34e856a739a41f7a33454397d3a02d6dd
file help.ini at revision 05406f835804236c1b52e2a688721763e36116ac
Malicious 385647e336913170aaea9252258a068bca78309e922384c7723bbcb07c86f066
file ATSUTO/help.ini at revision b1ae126e04adf8f04a7ad898b7c44d50f3d8b4cf
Malicious b831cf5912de5460f524d0099da55066767585e017d30a2a8db3017bec20a81c
file TAKASEHITOSHI/help.ini at revision b1ae126e04adf8f04a7ad898b7c44d50f3d8b4cf
Malicious 75b60302e82b599b74a0bf5fda07b9ee30d29842f2f79ba9789bba106e24a01a
domain gitlab.com
— —
domain github.com
— —
domain api.github.com
— —
url https://gitlab.com/rabbit779/giraff88
Malicious —
url https://gitlab.com/rabbit779/giraff88/-/raw/main/us8i.pdf?ref_type=heads
Malicious —
url https://gitlab.com/rabbit779/giraff88/-/raw/main/first.ini?ref_type=heads
Malicious —
url https://gitlab.com/rabbit779/giraff88/-/raw/main/help.ini?ref_type=heads
Malicious —
url https://github.com/mongdolma/kangkani
Malicious —
url_pattern https://api.github.com/repos/mongdolma/kangkani/contents/<COMPUTERNAME>/data/<filename>
Malicious —
url_pattern https://gitlab.com/rabbit779/giraff88/-/raw/main/<COMPUTERNAME>/help.ini?ref_type=heads
Malicious —
file_path %APPDATA%\whiskak.pdf
Clean —
file_path C:\Users\Public\wiska.vbe
Malicious —
file_path C:\Users\Public\Music\wiskas.vbe
Malicious —
file_path C:\Users\Public\horak.vbe
Malicious —
file_path C:\Users\Public\Music\horaks.vbe
Malicious —
file_path %TEMP%\SYS.tmp
— —
file_path %TEMP%\DOWN.tmp
— —
scheduled_task GoogleUpdateTaskMachineUA{1C791230-CA8D-6D04-AC55-E498ABE7C33}
Malicious —
email ahyeon72@kakao.com
— —

MITRE ATT&CK

Tactic Technique ID Technique Name Evidence
Execution T1204.002
User Execution: Malicious File
The ZIP contains a PDF-disguised .lnk whose activation starts cmd.exe and retrieves the script chain.
Defense Evasion T1036.007
Masquerading: Double File Extension
The shortcut uses a .pdf.lnk filename and PDF icon to resemble a policy questionnaire.
Execution T1059.003
Command and Scripting Interpreter: Windows Command Shell
The LNK targets cmd.exe /c and chains mode, curl, Explorer, and loader invocation.
Execution T1059.005
Command and Scripting Interpreter: Visual Basic
first.ini contains VBScript using WScript.Shell.Run; the persistent task invokes wscript.exe //e:vbscript.
Execution T1059.001
Command and Scripting Interpreter: PowerShell
The loader starts hidden PowerShell with -NoProfile -ExecutionPolicy Bypass and invokes downloaded text through ScriptBlock.Create.
Defense Evasion T1027
Obfuscated Files or Information
The VBScript removes wfwiudfksksk and apple from command strings; the PowerShell removes inserted strings from an embedded GitHub token.
Command and Control T1105
Ingress Tool Transfer
curl downloads first.ini from GitLab, and Net.WebClient.DownloadString retrieves the follow-up help.ini.
Persistence T1053.005
Scheduled Task/Job: Scheduled Task
help.ini deletes and recreates GoogleUpdateTaskMachineUA{1C791230-CA8D-6D04-AC55-E498ABE7C33} to run the persistent VBScript every 15 minutes.
Discovery T1082
System Information Discovery
The matching PowerShell stage runs systeminfo and writes the output to %TEMP%\SYS.tmp.
Discovery T1083
File and Directory Discovery
The PowerShell enumerates the user's Downloads directory with Get-ChildItem -Recurse -Depth 2 and writes DOWN.tmp.
Discovery T1057
Process Discovery
A recovered host-specific help.ini variant runs tasklist and stages its output for upload.
Collection T1074.001
Data Staged: Local Data Staging
Reconnaissance output is written to SYS.tmp and DOWN.tmp in the temporary directory before upload.
Exfiltration T1567.001
Exfiltration Over Web Service: Exfiltration to Code Repository
Invoke-RestMethod sends Base64-encoded reconnaissance files through GitHub Contents API PUT requests to mongdolma/kangkani under a computer-name directory.
Defense Evasion T1070.004
Indicator Removal: File Deletion
The matching help.ini removes SYS.tmp, DOWN.tmp, and the initial wiska.vbe loader after the collection and upload sequence.