
Executive Summary
ENKI identified a new variant of Comebacker, initially identified following public reporting of a malicious domain.
The malware is delivered via lure documents themed around prominent aerospace and defense organizations, indicating a targeted espionage campaign against this sector.
Pivoting from the initial C&C infrastructure, we uncovered an additional C&C domain and a related Comebacker sample, suggesting the campaign has been active since at least March 2025.
1. Overview
In 2025-06, ENKI initiated an investigation based on ThreatBookLabs' reporting of a malicious domain, office-theme[.]com, attributed to Lazarus Group. Analysis of .docx files hosted on this domain revealed a multi-stage malware infection chain deploying a new variant of the Comebacker backdoor.
By pivoting on the malware's C&C infrastructure, we identified an additional C&C domain and a related Comebacker sample that suggests the campaign has been active since at least March 2025.
This report provides an analysis of this new Comebacker variant, details the associated infrastructure, and tracks the malware's evolution over time.
1.1. Comebacker
Comebacker was first reported by Google Threat Analysis Group in a 2021 report on a campaign targeting security researchers. Functioning as a downloader and backdoor, it is designed to retrieve and execute DLLs payloads from a C&C server. Microsoft later named the malware "Comebacker", and it has since been attributed to Lazarus group.
Since its initial discovery in 2021, Comebacker has been observed in multiple campaigns. In 2024, variants were found embedded in malicious PyPI packages, demonstrating the threat actor’s continued activity.
2. Malware Analysis
2.1. C&C Server Open Directory
We identified staging activity on the open directory at an open directory on office-theme[.]com. This document initiates a multi-stage execution flow, ultimately leading to the in-memory execution of the final COMEBACKER payload. The full infection chain is detailed in the following subsections.
![Open directory listing on office-theme[.]com](https://framerusercontent.com/images/JSHX5DKDY1VRBxuSusOyqsTEA.png)
caption - Open directory listing on office-theme[.]com
While multiple files were present in the directory, only four files with .bin extensions were downloadable at the time of analysis. These files were identified as Microsoft Word documents, each containing a malicious VBA macro. Although the lure content varied, all four droppers deploy the same malicious payload.
2.2. Comebacker Dropper
When a victim opens one of the malicious .docx files and enables macros, the embedded VBA code executes. We extracted this macro code for analysis using the olevba tool.

caption - VBA macro code extracted via olevba
The macro decrypts and deploys two embedded components that are stored as large hexadecimal strings: a loader DLL and a decoy document. The decryption process involves a custom algorithm using XOR and bit-swapping operations. A Python script to replicate this decryption is available in Appendix C, under "Comebacker Dropper Decryption Script".
The decrypted files are written to the following paths on the victim system:
Loader: C:\ProgramData\WPSOffice\wpsoffice_aam.ocx
Decoy document: C:\ProgramData\Document\EDGE_Group_Interview_NDA.docx
The macro then executes the loader by calling the `LoadLibraryA` API function and opens the decoy document.
We identified four distinct decoy documents leveraging themes related to the aerospace and defense sectors, including lures impersonating Edge Group, Indian Institute of Technology Kanpur (IIT Kanpur), and Airbus. This specific targeting strongly indicates the campaign's objective is espionage.

caption - Decoy document impersonating IIT Kanpur: Guest_Lecture_Invitation_Format_IITK.docx

caption - Decoy document related to Airbus: Airbus_C295_Integration_Document_for_TASL.docx
2.3. Comebacker Stage 1 Loader – wpsoffice_aam.cox
The wpsoffice_aam.ocx file is the second-stage loader, employed to decrypt, persist, and execute the third stage of the infection chain.
The loader first decrypts an embedded payload using the ChaCha20 stream cipher. The static configuration for this decryption is as follows:
key: ad9c5aca9977d04c73be579199a827049b6dd9840091ffe8e23acc05e1d4a657
iv: edc9ce049daeba35b8687740
counter: 1
A Python script to replicate this decryption is available in Appendix C, under "Comebacker Stage 1 Loader Decryption Script".
Following decryption, the loader decompresses the resulting data using the zlib library. The final payload is written to C:\ProgramData\USOShared\USOPrivate.dll.

caption - ChaCha20 decryption and writing of USOPrivate.dll
To establish persistence, the loader creates a shortcut (.lnk) to USOPrivate.dll in the user's Startup folder.
cmd.exe /C powershell -Command "$s = (New-Object -COMWScript.Shell).CreateShortcut('C:\\ProgramData\\USOShared\\Micro.lnk'); $s.TargetPath = 'C:\\Windows\\System32\\rundll32.exe'; $s.Arguments = '\"[USOPrivate.dll path]\" LoadMimi \"C:\\Windows\\System32\\cmd.exe\"'; $s.Save()"
After creating the shortcut, the loader calls the LoadMimi funciton USOPrivate.dll using rundll32.exe.
2.4. Comebacker Stage 2 Loader – USOPrivate.dll
USOPrivate.dll is the final loader in the infection chain. It decrypts the embedded Comebacker and executes it directly from memory.
The DLL employs the same ChaCha20 decryption code seen in the previous stage, reusing the identical key, iv, and initial counter values.
key: ad9c5aca9977d04c73be579199a827049b6dd9840091ffe8e23acc05e1d4a657
iv: edc9ce049daeba35b8687740
initial counter value: 1

caption - Reuse of the ChaCha20 decryption code in USOPrivate.dll
After decryption and decompression, the loader loads the final Comebacker payload into memory. It then transfers execution to the payload by calling its GetWindowSizedW export with the string argument "1282".

caption - Calling the GetWindowSizedW export of the Comebacker payload
2.5. Comebacker
Once executed, the Comebacker payload's main GetWindowSizedW export begins by generating a unique victim identifier. This ID is constructed by concatenating a randomly generated 10-character alphanumeric string, the argument value passed during execution ("1282"), and the static string "64".

caption - Victim ID generation
The malware then prepares to beacon out to its hardcoded C&C server:
hxxps://hiremployee[.]com
2.5.1. C&C Server Communication
All C&C communications occur over HTTPS. The outbound data is first encrypted with AES-128-CBC and then Base64-encoded. The malware uses the same value for both the encryption key and the IV.
encryption key and IV: x!P<&}mjH2YHRQ',

caption - AES encryption code
Data received from the C&C server is similarly Base64-decoded and then decrypted using the same AES-128-CBC key and IV.
A Python script to decrypt this C&C traffic is available in Appendix C, under “Comebacker C&C Data Decryption Script”.
2.5.2. Initial Connection
The malware's initial beacon is encoded in the query string of the URL. The query string structure is as follows:
[random 2 lowercase letters]=[random 10 lowercase letters]&
[random 5 lowercase letters]=[base64-encoded ID value]&
[random 4 lowercase letters]=&
[random 6 lowercase letters]=0&
[random 6 lowercase letters]=[base64-encoded length of the current time]&
[random 6 lowercase letters]=[base64-encoded current time]&
[random letters up to 10]=[random letters up to 20]
The C&C server's response follows the following format.
[4 hexadecimal digits] [1 hexadecimal digit] [base64-encoded message length] [base64-encoded message]
The malware parses the hex digits and the decoded message to determine its next action. The primary behaviors are outlined below.
caption - C&C response info
If the server's response does not match any of the control commands, the malware downloads and executes a payload from the message with the following structure:
[command code]|[encrypted file size]|[export name]|[argument]|[MD5 hash of the encrypted file]
If a message that satisfies the above condition is received, it downloads the encrypted file from the C&C server and executes it.
2.5.3. File Download and Execution
Upon receiving a download and execute command, the malware requests the payload from the C&C server. After downloading, it first calculates the MD5 hash of the received encrypted file and compares it against the hash from the command. If the hashes do not match, the download is considered corrupt, and the malware re-enters its sleep-retry loop.

caption - MD5 hash comparison
If the hashes match, the malware decrypts the payload using the same ChaCha20 implementation seen in the loader stages, with identical static key, nonce, and counter values.
key: ad9c5aca9977d04c73be579199a827049b6dd9840091ffe8e23acc05e1d4a657
iv: edc9ce049daeba35b8687740
initial counter value: 1

caption - ChaCha20 decryption code
Finally, the decrypted payload is loaded into memory. The malware calls the exported function specified in the command, passing the provided argument. After execution completes, it sends the result back to the C&C server and resumes beaconing.
During our analysis, the C&C server did not respond with download and execute command, so we were unable to retrieve or analyze any next-stage payloads.
3. Additional Malware Collection and Analysis
To expand our visibility into the threat actor's infrastructure, we pivoted on known indicators. Using VirusTotal's Relations feature, we searched for other domains serving identical HTTP responses to the C&C server hiremployee[.]com. This analysis identified a second C&C domain: birancearea[.]com.

caption - VirusTotal Relations tab showing infrastructure overlap between C&C domains
birancearea[.]com was scanned by VirusTotal in March 2025. We found an associated Comebacker sample that communicates with this domain, with the following hash.
f2b3867aa06fb38d1505b3c2b9e523d83f906995dcdd1bb384a1087b385bfc50
3.1. Comebacker Stage 1 Loader
This loader is a DLL file that functions as the first stage in this alternate infection chain. It was first uploaded to VirusTotal in March 2025, and is similar to the Comebacker loader that was embedded in PyPI packages and distributed in 2024, including the HC256 implementation and usage, as well as the code that executes the decrypted payload.
Upon execution, the loader checks if the command line includes the specific argument "9Ez6THDirL6Zye4". If this argument is not present, the process terminates. This check indicates the loader is designed to be executed by a preceding dropper or script, which we were unable to obtain.

caption - Command-line argument check
If the argument is present, the loader decrypts an embedded payload using the HC256 stream cipher.
The decryption algorithm is HC256, and the hardcoded key/IV are identical to those used in the Comebacker loaders distributed via malicious PyPI packages in 2024.
key, iv: LH*x239udC<*sd_Sej%lOa0$&ujHl(.R

caption - HC256 code in the March 2025 Comebacker loader

caption - HC256 code in a 2024 PyPI-distributed sample
A Python script to decrypt the payload is available in Appendix C, under “HC256 Decryption Script”.
After decryption and decompression, the loader writes the next stage to C:\ProgramData\USOShared\USOInfo.dat and executes it using rundll32.exe. It calls the GetSysStartTime export with two arguments: "dfgdfg" and "G3z!X97k7QrwG".

caption - Execution of USOInfo.dat via rundll32.exe
3.2. Comebacker Stage 2 Loader - USOInfo.dat
USOInfo.dat is the in-memory loader for this variant, analogous to USOPrivate.dll from the first infection chain. It begins by validating its command-line arguments, checking for "G3z!X97k7QrwG".
If the argument check succeeds, it decrypts its embedded payload. This stage again uses the HC256 stream cipher but with a different, unique key and IV pair.
key, iv: 6w6ZT9|a-0}s$@;(@&#jPVC4o+V?1IU%

caption - Argument check and HC256 decryption in USOInfo.dat
Following decryption and decompression, the loader loads the final payload into memory. It then calls the payload's GetWindowSizedW export with the argument "3718".
The final payload Comebacker, with identical functionality to the Comebacker detailed in Section 2.5.
4. Attack Evolution
4.1. Decryption Process
The Comebacker variant described in the 2021 Google Threat Analysis Group report decrypted its payload using either RC4 or HC256 with the same key and IV.

caption - Decryption code in the Google, Microsoft report’s a75886b016d84c3eaacaf01a3c61e04953a7a3adf38acf77a4a2e3a8f544f855
The variant distributed in 2024 via PyPI packages and the variant discovered in March 2025 consistently used HC256 with identical keys and IVs.

caption - Decryption code in JPCERT's report on Comebacker distributed as pycryptoenv
The newly identified variant deviates from this by introducing a custom XOR/bit-swap algorithm for the initial dropper stage and adopting ChaCha20 for subsequent loader stages.

caption - ChaCha20 decryption code in the new variant
4.2. Communications Encrytion
Past Comebacker variants communicated with their C2 servers in plaintext, including the samples from the 2021 security researcher campaign and the 2024 PyPI campaign.

caption - Communication code in JPCERT report's report on Comebacker distributed as pycryptoenv
The variants observed since March 2025 introduce encrypted C2 communications, using AES-128-CBC to encrypt C&C traffic.

caption - AES-128-CBC code in newer variants
4.3. Distribution Process
Comebacker, first reported by Google's Threat Analysis Group, was employed in a campaign targeting security researchers with themes of vulnerability research collaboration. The attacker used Visual Studio projects that contained malicious Visual Studio Build Events. In addition, they carried out attacks using an Internet Explorer 0-day. At the time, we published analysis of the exploit on our blog. We have since translated the post to English.

caption - Attacker activity in the 2021 campaign targeting security researchers (Source: Google TAG)
In 2024, the actor published malicious packages to PyPI, using typosquatting tactics to target developers.

caption - pycryptoconf package used to distribute Comebacker in 2024 (Source: JPCERT/CC)
While we could not determine the distribution vector for the March 2025 sample, the lure documents from the most recent activity provide strong clues. The documents impersonate specific organizations in the aerospace and defense sector (Edge Group, IIT Kanpur, Airbus) and contain tailored content. This deliberate crafting of decoys for specific targets is a hallmark of spear phishing campaigns aimed at a small set of victims.
5. Conclusion
This report details a recent espionage campaign conducted by the DPRK-nexus threat actor Lazarus Group against the aerospace and defense sectors. The campaign leverages a new variant of the Comebacker backdoor, demonstrating the actor's continued refinement of its malware arsenal.
The actor's use of highly specific lure documents indicates that this is a targeted spear phishing campaign. Although there are no reports of victims so far, the C2 infrastructure remains active at the time of this publication.
Organizations in the aerospace, defense, and research sectors should remain vigilant for phishing attempts and ensure they have robust defenses against macro-based threats.
6. Appendix
Appendix A. MITRE ATT&CK
caption - MITRE ATT&CK
Appendix B. IOCs
sha256
b7d625679fbcc86510119920ffdd6d21005427bf49c015697c69ae1ee27e6bab - docx file
046caa2db6cd14509741890e971ddc8c64ef4cc0e369bd5ba039c40c907d1a1f - docx file
14213c013d79ea4bc8309f730e26d52ff23c10654197b8d2d10c82bbbcd88382 - docx file
b357b3882cf8107b1cb59015c4be3e0b8b4de80fd7b80ce3cd05081cd3f6a8ff - docx file
7e61c884ce5207839e0df7a22f08f0ab7d483bfa1828090aa260a2f14a0c942c - wpsoffice_aam.cox
c4a5179a42d9ff2774f7f1f937086c88c4bc7c098963b82cc28a2d41c4449f9e - USOPrivate.dll
f2b3867aa06fb38d1505b3c2b9e523d83f906995dcdd1bb384a1087b385bfc50 - Comebacker Loader
96b973e577458e5b912715171070c0a0171a3e02154eff487a2dcea4da9fb149 - USOInfo.dat
C&C
hxxps://birancearea[.]com/adminv2
hxxps://hiremployee[.]com
Open Directory C&C
office-theme[.]com
aes key
x!P<&}mjH2YHRQ',
chacha20 key
ad9c5aca9977d04c73be579199a827049b6dd9840091ffe8e23acc05e1d4a657
HC256 key
LH*x239udC<*sd_Sej%lOa0$&ujHl(.R
6w6ZT9|a-0}s$@;(@&#jPVC4o+V?1IU%
Appendix C. Decryption Scripts
Comebacker Dropper Decryption Script
Comebacker Stage 1 Loader Decryption Script
Comebacker C&C Data Decryption Script
HC256 Decryption Script
Popular Articles








