In short: Kaspersky researchers exposed a campaign by the Mirage Kitten APT group: hackers pose as recruiters on LinkedIn and send developers fake test assignments hiding the NodeRabbit RAT inside a trojanized npm package. The malware activates the moment dependencies are installed. The key red flag: the assignment explicitly bans the use of AI coding assistants.
How the attack works: from LinkedIn to full machine control
The attack starts with a LinkedIn message. Hackers build convincing recruiter profiles — real-looking photos, work history, hundreds of connections — and reach out to developers with job offers at aviation, aerospace, or fintech companies. After a few exchanges, the target receives a link to an archive from Amazon S3: Front-Technical-Challenge.zip.
Inside is a React/Vite project to "assess technical skills." The README is well-written with a clear task description — and a specific note: "server.js is safe and should not be modified." This is misdirection: it steers the developer away from where the malware actually hides. Two hard constraints are also stated: complete the task within 1–3 hours and do not use AI assistants.
That last rule is the critical red flag. As Kaspersky explains, an AI coding assistant running a quick code review would immediately flag the suspicious first-line import of an unknown npm package. The attackers know this, and they specifically close that detection window by banning AI tools.
What happens when dependencies are installed
When the developer installs dependencies, a trojanized package downloads alongside the legitimate libraries: colorized_terminal v2.1.0 — a package with near-zero download history. Its payload hides inside node_modules/.cache/, a directory most developers never inspect.
On first project launch, NodeRabbit deploys — a cross-platform Node.js RAT that runs on Windows, Linux, and macOS. It opens an AES-256-GCM encrypted channel to a C2 server on Azure, using a subdomain named after the target company to blend into corporate traffic. NodeRabbit then:
- collects system information (hostname, OS, MAC address, CPU architecture);
- provides remote control over files, processes, and the command shell;
- harvests Microsoft Outlook account addresses;
- installs a fake VS Code extension, "GitHub Copilot Helper," for persistence;
- injects malicious code into Git hooks, running on every commit.
A second component, PollCat (a JavaScript RAT), connects to the C2 server before the developer types a single line of code. PollCat checks for endpoint security tools (CrowdStrike, SentinelOne, Kaspersky, Sophos, Palo Alto Networks) and maps the local file system. Kaspersky notes its network code is nearly identical to an older backdoor by the same group, MiniFast, suggesting a mature and tested toolchain.
Who is at risk
The Mirage Kitten campaign (also tracked as UNC1549) primarily targets developers in aviation, aerospace, and fintech. Confirmed victims have been identified in Egypt, Ethiopia, and Afghanistan; malware samples were uploaded to public scanners from India, Turkey, Israel, Iraq, Germany, and Ireland. The group's primary operational focus is the Middle East and Africa.
The threat is not regionally contained. The "test assignment via LinkedIn" format is standard practice in international remote hiring globally. There is no country-specific trigger — any developer with a LinkedIn profile and interest in remote roles can receive such a message. Azure-hosted infrastructure with convincing corporate subdomains makes network-based detection difficult without dedicated tooling.
More advice on staying safe while working remotely is in our privacy blog.
How to recognize the attack and protect yourself
A ban on AI assistants demands an explanation. Legitimate employers rarely prohibit Copilot or ChatGPT during technical assessments. If such a ban appears, ask why. No clear answer, combined with a hard deadline and an unfamiliar archive, is a strong signal to walk away.
Isolate test assignments. Never run an unfamiliar project on your primary work machine. Use a virtual machine (VirtualBox, VMware, UTM) or a disposable cloud environment (GitHub Codespaces, Gitpod). Once the test is complete, delete the environment entirely.
Audit dependencies before running install. Before installing dependencies, open package.json and check every package in the npm registry. A package with near-zero download counts published the day before you received the assignment is an immediate red flag. Use npm audit and tools like Socket.dev to inspect suspicious dependency chains.
Verify the recruiter's profile. Check the account creation date, mutual connections with verified employees at the target company, and activity on the organization's LinkedIn page. Sending one email to the company's official HR contact takes one minute and could protect your machine.
Encrypt your network traffic. NodeRabbit establishes its C2 channel through infrastructure designed to mimic corporate traffic. Encrypting your connections with LiMP VPN masks your connection patterns and raises the cost of the attacker's reconnaissance phase. See our pricing page for plans.
