NICKEL ALLEY strategy: Fake it ’til you make it

Counter Threat Unit™ (CTU) researchers continue to investigate trends in Contagious Interview campaign activity conducted by NICKEL ALLEY, a threat group operating on behalf of the North Korean government.

Counter Threat Unit™ (CTU) researchers continue to investigate trends in Contagious Interview campaign activity conducted by NICKEL ALLEY, a threat group operating on behalf of the North Korean government. The group notoriously targets professionals in the technology sector by advertising fake job opportunities, deceiving prospective candidates through a fake job interview process, and ultimately delivering malware. 

In targeted attacks, NICKEL ALLEY often creates a fake LinkedIn company page to build credibility and maintains a coordinating GitHub account for malware delivery. In some instances, the threat actors have used the popular ‘ClickFix’ tactic to deliver malware via fake job skills assessment tasks. Additionally, the group has conducted opportunistic attacks by compromising npm package repositories and establishing typosquatted npm packages. Figure 1 highlights NICKEL ALLEY’s three areas of focus. 

NICKEL ALLEY victimology

Figure 1: NICKEL ALLEY victimology

ClickFix leads to PyLangGhost RAT

Since at least mid-2025, NICKEL ALLEY has used ClickFix to deliver PyLangGhost RAT. The success of this tactic coupled with the frequent cycling through staging domains indicates that the malware remained effective for the group throughout 2025. In multiple attacks throughout late 2025, the threat actor instructed a job candidate to perform fake interview tasks in an attacker-controlled web interface. The ClickFix tactic was implemented when the website presented an error informing the victim that they must run a command locally to fix the issue (see Figure 2). Instead of fixing an issue, the command initiates a series of actions that eventually lead to PyLangGhost RAT.

VBScript code

Figure 2: Partially truncated VBScript code example from an infection

When executed, the command retrieves an archive file from an attacker-controlled domain and writes it to the %TEMP% directory. It then decompresses the archive via the PowerShell Expand-Archive cmdlet. Finally, it uses the wscript command to execute a VBScript file that initiates the infection chain. The filename of the archive written to disk typically contains “fix” or “patch” (e.g., fixed.zip, patchesWin.zip). The VBScript filename is typically short (e.g., update.vbs, start.vbs).

The VBScript file uses the tar command to decompress an archive (Lib.zip) that contains benign library and support files. It then uses the Run method of WScript.Shell to execute a command via cmd.exe: cmd /c csshost.exe nvidia.py (see Figure 3). 

VBScript code

Figure 3: Partially truncated VBScript code example from an infection

The csshost.exe file is a renamed copy of the legitimate python.exe binary. The executable runs a Python file (nvidia.py) that initiates the PyLangGhost RAT infection chain. The filenames have varied slightly with each infection, but the naming themes remain consistent. The binary is renamed to a Windows system filename, and the Python filename often imitates an associated driver file.

The Python file is one of several Python modules that compose the overall PyLangGhost RAT code. The malware supports file exfiltration, arbitrary command execution, and system profiling. It also gathers browser credentials and cookies. The malware specifically targets Chrome cryptocurrency wallet browser extension data, emphasizing NICKEL ALLEY’s continued financial motivations.

PyLangGhost RAT was preceded by a GoLang-based version known as GoLangGhost RAT. Samples of GoLangGhost RAT were first observed in the wild around February 2025. PyLangGhost RAT samples were discovered by May, revealing that the GoLangGhost code was roughly ported over to the Python language. 

The malware staging domain observed in one of the attacks (talentacq[.]pro) was created on September 23 and was observed in an active campaign less than two weeks later. The domain name mimics a legitimate talent recruitment organization. The attacker-controlled domain served a custom 404 error page that contained a misspelled word (“opps”) and unusual phrasing (“Your assessment link might be invalid or expired”), which aligns with previous fake job social engineering activity (see Figure 4). 

Custom 404 error page containing a misspelled word and unusual phrasing

Figure 4: Screenshot of custom 404 page hosted on malware staging domain

The custom 404 page may be a decoy, as this domain delivered malware via a curl command. If a victim visits the domain in a web browser to verify it before executing the curl command specified in the ClickFix attack, the error suggests that there is simply a problem with the attacker-provided “assessment link”. The victim may not suspect a malicious domain. In a separate observed attack, the publicshare[.]org domain was both registered and used in a campaign on the same day in August. 

Code repositories used to infect developers’ systems

In October, Sophos analysts observed a targeted attack where the threat actors convinced a victim to download (clone) the content of a GitHub repository and execute the code locally using the “npm install” and “npm start” commands. The GitHub account (astrasbytesyncs) masquerades as a software development company specializing in full stack web development and blockchain solutions (see Figure 5). The account contains links to an “official” company website (hxxps://astrabytesyncs[.]com) and the purported LinkedIn company page. 

Screenshot of Astra Byte Sync GitHub account

Figure 5: Astra Byte Sync GitHub account

The website home page is generic and advertises “tech talent” and managed service solutions (see Figure 6).  The website page title suggests that the site was built using a generic template, as it still contains the text “IT solutions & Corporate template”. The LinkedIn page referenced on the GitHub account lists a different domain (astra[.]com) as the company website. Analysis revealed that astra[.]com belongs to a legitimate aerospace company. The inclusion of different domains on the fake LinkedIn company page and the GitHub account highlights the threat actors’ inconsistency and lack of attention to detail. 

Screenshot of Astra Byte Sync website

Figure 6: Screenshot of Astra Byte Sync website

A June 2025 X post warned of a campaign involving targeted emails promoting job opportunities at the fake Astra Byte Sync company. However, the threat actors had not built the website at the time the emails were sent, so the site simply displayed the hosting provider’s default page. The associated GitHub repository used to deliver malware in this campaign claims to be a Web3 crypto game platform (see Figure 7). The theme of these lures aligns with North Korean threat actors targeting of Web3 developers throughout 2025 with the goal of cryptocurrency theft. 

Malicious repository disguised as fake Astra Byte Web3 game

Figure 7: Malicious repository disguised as fake crypto game

The repository (web3-social-platform) contained a file named index.js that handled the network connection to the malware staging server. A variable named AUTH_API_KEY, stored in a file named .env, contains a Base64-encoded URL that points to the malware staging server. The code in index.js implements the Node.js fetch API to send an HTTP request to that URL and retrieve BeaverTail malware (see Figure 8). Throughout late 2025, the threat actors preferred the Vercel cloud platform provider. The platform advertises support for front-end and server-side web development. The threat actors have capitalized on this platform-as-a-service provider because it allows them to host multiple payloads, and they can choose which payload to deliver based on the specific victim and system configuration. The retrieved payload is then executed locally via the eval() method. 

HTTP GET request to retrieve BeaverTail

Figure 8: HTTP GET request to retrieve BeaverTail

NICKEL ALLEY has used this approach to lure unsuspecting developers into infecting their own systems with malware since 2024. The attacker-owned GitHub repositories often contain simple, obfuscated code for downloading BeaverTail or OtterCookie malware. 

In late 2025, NICKEL ALLEY established code repositories containing Visual Studio Code (VS Code) “tasks”. Located in the .vscode/tasks.json configuration file, VS Code tasks are a legitimate feature typically used to assist with automating build scripts or quick code testing and debugging. However, the threat actors have used them to execute curl or wget commands for retrieving malware based on the victim’s operating system. The task is set to run when the configuration file’s parent folder (.vscode) is opened in the VS Code application. This run behavior is configured via the runOptions:runOn property. As the code snippet in Figure 9 shows, the threat actors have relied on Vercel for payload hosting in these attacks as well. 

Truncated VS Code configuration file used by NICKEL ALLEY

Figure 9: VS Code tasks.json configuration file used by NICKEL ALLEY (truncated for brevity)

The GitHub commit history for NICKEL ALLEY code bases often reflects that the malware staging URL has been removed in one of the code commits. This approach allows the threat actors to conceal infrastructure and malicious commands when the repository is not actively in use. Additionally, it emphasizes that the threat actors only need to change a few lines of code to route payload retrieval to a different malware staging server.

NICKEL ALLEY updates its network infrastructure to align with its social engineering lures and to evade detections. The group generally targets tech workers who are open to freelance or other job opportunities, and it continued to deploy PyLangGhost malware via the ClickFix tactic into late 2025.  The threat actors often convince victims to execute the malware on their corporate systems, thus exposing organizations to this threat. Given the popularity of the ClickFix tactic in a variety of cybercriminal and state-sponsored campaigns, all organizations should monitor command execution resulting from browser clipboard data. Additionally, defenders should look for suspicious commands involving a combination of curl, PowerShell, and launching of executables from the %TEMP% directory.  

While these attacks appear to have a central goal of cryptocurrency theft, the threat group has demonstrated its intention to use initial access for further supply chain compromise or corporate espionage. Persistent requests for targets to execute code on their corporate systems rather than a personal laptop reinforce this intent. Additionally, the threat group has strategically selected follow-on payloads based on profiling victims’ system. Software developers, especially those in the finance and technology industries, are at elevated risk due to NICKEL ALLEY’s targeting profile. Organizations should monitor command execution and network traffic that spawns from Node.js processes, as it may indicate malware retrieval. As a general security practice, organizations should encourage employees to report suspicious unsolicited social media or email-based recruitment contact.

Detections and threat indicators

SophosLabs has developed the following detections for this threat:

  • Troj/PySteal-AW
  • Troj/PyAgent-AS
  • Troj/PyAgent-AU
  • Troj/Pysteal-AY
  • Troj/PyAgent-AP

The threat indicators in Table 1 can be used to detect activity related to this threat. Note that IP addresses can be reallocated. The domains, URLs, and IP addresses may contain malicious content, so consider the risks before opening them in a browser.

Indicator Type Context
hxxps://github[.]com/astrasbytesyncs/web3-social-platform URL GitHub repository operated by NICKEL ALLEY
astrabytesyncs[.]com Domain name Fake company website operated by NICKEL ALLEY
astrabytesync[.]com Domain name Fake company website operated by NICKEL ALLEY
hxxps://rgg-vercel[.]vercel[.]app/api/data URL NICKEL ALLEY malware staging server
hxxps://ake-test[.]vercel[.]app/api/data URL NICKEL ALLEY malware staging server
hxxps://astrahub[.]vercel[.]app/api/data URL NICKEL ALLEY malware staging server
hxxps://rgg-test[.]vercel[.]app/api/data URL NICKEL ALLEY malware staging server
hxxps://astraluck-vercel[.]vercel[.]app/api/dat URL NICKEL ALLEY malware staging server
52f173a760db5d68e52ba1f1ac51c023 MD5 hash VBScript file used by NICKEL ALLEY (start.vbs)
2151d4d7dc8d6dca7242928a17ea3fb14f58ccef SHA1 hash VBScript file used by NICKEL ALLEY (start.vbs)
5e307ef3aa9f20d963382700173530cdc455c1523631bbe22ede3710a2a30373 SHA256 hash VBScript file used by NICKEL ALLEY (start.vbs)
e9b9d86a22f9795d42632650a78d57df  MD5 hash PyLangGhost RAT used by NICKEL ALLEY (nvidia.py)
de05ecc9f0136246d0160923108026660eee06e6  SHA1 hash PyLangGhost RAT used by NICKEL ALLEY (nvidia.py)
1b42fc77155bd78b098e0b72440dd72d6154312569e6ba46f1e5dc94b31c6b42 SHA256 hash PyLangGhost RAT used by NICKEL ALLEY (nvidia.py)
a55629dc112ee133ac8dba80549cb0c7 MD5 hash VBScript file used by NICKEL ALLEY (update.vbs)
0f010280ee2a91a57b0edf8f18c0091ce741d4e7 SHA1 hash VBScript file used by NICKEL ALLEY (update.vbs)
5ee13db6a646a9de00bbeec6030677e412bfeecdca226b1ff035e07927970ce0 SHA256 hash VBScript file used by NICKEL ALLEY (update.vbs)
1d652e7ab71621c7245bfbf84bacdc3e MD5 hash PyLangGhost RAT used by NICKEL ALLEY (audiodriver.py)
ac26ecf52002d87f3ba89f9e1b0742eed9e75e3d  SHA1 hash PyLangGhost RAT used by NICKEL ALLEY (audiodriver.py)
58c1e49c67e5b7bcf10d30e370685d10c2fa263f24b8d099a97005c7a35f1346 SHA256 hash PyLangGhost RAT used by NICKEL ALLEY (audiodriver.py)
talentacq[.]pro Domain name NICKEL ALLEY malware staging server for PyLangGhost RAT infections
95[.]169[.]180[.]140 IP address PyLangGhost RAT C2 server used by NICKEL ALLEY
publicshare[.]org Domain name NICKEL ALLEY malware staging server for PyLangGhost RAT infections
144[.]172[.]93[.]88 IP address PyLangGhost RAT C2 server used by NICKEL ALLEY
hxxps://vscode-ext-git[.]vercel[.]app URL NICKEL ALLEY malware staging server
hxxps://github[.]com/mishalepo/test-project URL GitHub repository used by NICKEL ALLEY for social engineering and malware delivery
chainlink-api-v3[.]com Domain name NICKEL ALLEY malware staging server

Table 1: Indicators for this threat

About Author

Subscribe To InfoSec Today News

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

World Wide Crypto will use the information you provide on this form to be in touch with you and to provide updates and marketing.