Researchers tied Mirage Kitten to a job-recruiting scam that targets developers via LinkedIn and job platforms. Victims are sent a “technical assessment” ZIP file hosted on legitimate cloud storage; running the project silently installs a remote-access trojan (NodeRabbit) that lets attackers control the machine and steal data.
How the Attack Worked
The campaign, attributed to a group tracked as Mirage Kitten, began with fake recruiter accounts reaching out to software engineers on LinkedIn and other job search platforms. A threat actor posing as a talent acquisition specialist at a major technology company contacted a target, advertised a job opening, and pressured them to complete a technical assessment quickly.
The assessment was delivered as a ZIP archive, Front-Technical-Challenge.zip, hosted on an Amazon S3 bucket rather than an official hiring portal. Inside was a Node.js project accompanied by a README instructing the candidate to review the application and fix frontend defects. The README specifically claimed that server.js was bug free and should not be modified, which conveniently directed attention away from the one file the attackers had altered.
When the candidate ran the project, the first line of server.js imported a trojanized npm package. The package was bundled directly inside the archive's node_modules directory instead of being published to the npm registry, making it harder to spot through normal dependency checks. Importing it silently launched an implant as a detached background process, installing the NodeRabbit remote access trojan and giving attackers control of the machine.
Why It Succeeded
The lure combined several pressure points that reduced scrutiny. Candidates were pushed to act immediately, given a strict three hour time limit, and told not to use AI assistants during review. The claim that a specific file was bug free discouraged candidates from examining the exact location of the malicious code. Because the challenge was framed as a normal part of a hiring process, most of these instructions appeared reasonable rather than suspicious.
What to Watch For
- Unsolicited recruiter contact followed by pressure to download and run code quickly
- Assessment files hosted on generic cloud storage links instead of an official hiring platform
- Instructions that tell you not to modify or review a particular file
- Unusual rules such as strict time limits or bans on assistive tools during review
- Unfamiliar packages bundled directly in node_modules rather than installed from the public registry
Building Resistance
Organizations can reduce exposure by training developers and hiring teams to verify recruiter identity and job offers through official company channels before opening any attachment. Coding challenges from unknown sources should be reviewed in a sandbox rather than run directly on a work machine, with particular attention paid to bundled dependencies and any file the instructions say not to touch. Building awareness of these supply chain style tricks helps candidates recognize manipulation attempts embedded in what looks like a routine technical assessment.
Key findings
- Mirage Kitten used fake recruiter personas on LinkedIn/job platforms to deliver trojanized coding challenge archives.
- The lure was a ZIP file presented as a technical assessment (e.g., “Front-Technical-Challenge.zip”) hosted on Amazon S3.
- The README instructed candidates to focus on frontend defects and claimed “server.js was bug-free,” steering attention away from the modified file.
- Trojanized npm packages (e.g., colorized_terminal, pretty-log) embedded inside the ZIP executed the RAT when the project was run.
- NodeRabbit used Azure-hosted C2 infrastructure and implemented persistence on Windows, Linux, and macOS; later variants added proxy support and developer-workflow persistence (e.g., fake VS Code extension, Git hook injection).
Who’s being targeted
- Commonly targeted roles: Software Engineers / Developers, Engineering Managers, HR / Talent Acquisition, IT Helpdesk / Endpoint Security, Security Awareness / GRC teams.
- Affected industries: Financial Technology (FinTech), Aviation, Technology / Software Development, Professional Services (Engineering/IT), Government and critical infrastructure (regional targeting context: Middle East and Africa).
- Attack channels: linkedin, website.
- Impersonated: Talent acquisition specialist / recruiter at a major technology company, Hiring team / technical assessment platform.
Red flags to watch for
- Pressure to act immediately (rushed download/run request)
- “Assessment” delivered as a ZIP from a generic cloud bucket rather than an official hiring portal
- Instructions that discourage safeguards (e.g., bans on AI assistants) and direct you away from certain files
- A bundled dependency inside node_modules instead of a normal, verifiable install from official sources
- README claims a sensitive file is “bug-free and should not be modified,” discouraging review
- Unusual rules like a strict time limit and banning AI assistants
Frequently asked questions
How did the fake recruiter attack deliver malware?
Attackers posed as recruiters on LinkedIn and job platforms, offering a role and sending a technical assessment ZIP hosted on Amazon S3. Running the included Node.js project silently launched the NodeRabbit remote access trojan.
What made this coding challenge lure convincing?
The README instructed candidates to focus on frontend defects and claimed the backend file server.js was bug free, steering attention away from the file the attackers had actually modified.
What technical trick hid the malicious code?
The attackers bundled a trojanized npm package directly inside the node_modules folder rather than publishing it to the npm registry, so importing it silently launched the implant as a background process.
What should developers do differently after this attack?
Verify recruiter identity and job offers through official company channels, avoid running unsolicited coding challenges without review or sandboxing, and be wary of rules that discourage scrutiny such as time limits or bans on reviewing certain files.
Read the video transcript
You get a LinkedIn DM from a “talent acquisition specialist” at a big-name tech company, great job, quick technical assessment, just run their ZIP. You download Front-Technical-Challenge.zip from an Amazon S3 bucket, open the Node project, and the README says: three-hour limit, no AI tools, and “server.js is bug-free, do not touch it.” That’s exactly where the NodeRabbit RAT is hiding. Run it, and those trojanized npm packages quietly install NodeRabbit, call back to Azure, and sit on your Windows, macOS, or Linux box with persistence, watching your dev work, stealing data, even lurking in fake VS Code extensions or Git hooks. Here’s the move: before you run any recruiter-sent coding ZIP, verify the recruiter and role through the company’s official site, and get that project reviewed or sandboxed first.