Analysis Traces Contagious Interview Campaign Through OtterCookie and InvisibleFerret Payloads

Summary
Static analysis traces a fake-recruiter campaign from a malicious npm package to OtterCookie and a PyInstaller-compiled InvisibleFerret payload, documenting credential theft, cloud-data collection, remote access and persistence.
Key points
- The campaign reportedly lures developers with fake job interviews and coding challenges, including a malicious npm package named tailwindcss-forms-kit.
- The package retrieves obfuscated JavaScript that targets browser credentials, cryptocurrency wallets, cloud credentials and sensitive files, and supports remote commands and persistence.
- The first-stage malware downloads an OS-specific second-stage payload; the analysis links it to OtterCookie based on shared wallet targets, tooling and behavior.
- The third-stage Windows and Linux samples were identified as PyInstaller-compiled Python 3.10 binaries. Embedded libraries and comparison with published research support the author’s identification of InvisibleFerret; the samples were not executed.
- The article documents C2 and upload behavior, file hashes, persistence locations and other indicators, and recommends verifying recruiters and isolating or reviewing interview code before execution.
Article Details
- Attack Vectors
- Fake recruiters approach software developers on LinkedIn and other job platforms, then ask them to run a coding challenge or install software during the interview process.
- A malicious npm package, tailwindcss-forms-kit, delivers obfuscated JavaScript when imported.
- The first-stage malware downloads and executes platform-specific later-stage payloads from its C2 infrastructure.
- Defensive Notes
- Independently verify recruiter identities and job postings through company websites or switchboards.
- Review third-party npm packages before installation and run interview coding challenges in isolated containers or virtual machines.
- Do not run untrusted code with elevated privileges or disable security tools during interviews.
- Use hardware security keys and MFA, protect SSH keys with passphrases, and rotate API keys and tokens regularly.
- Separate development workstations from production access and restrict execution of unsigned executables, especially from temporary and download directories.
Indicators of compromise
| Type | Indicator | Context |
|---|---|---|
| IPV4 | 95[.]164[.]17[.]24 | Listed as documented InvisibleFerret C2 infrastructure. |
| IPV4 | 95[.]216[.]37[.]186 | Primary C2 host; the article also describes file-upload and content-upload services on this host. |
| MD5 | 153e2f27e035252d5f7ace69948e80b2 | MD5 hash of the analyzed Windows third-stage payload. |
| MD5 | 5a2c042b086a475dca4c7dcec62693c1 | MD5 hash of the analyzed Linux third-stage payload. |
| SHA256 | 1c8c1a693209c310e9089eb2d5713dc00e8d19f335bde34c68f6e30bccfbe781 | SHA-256 hash of the analyzed Windows third-stage payload. |
| SHA256 | 699cd6c292b8a5933dabee63c74a9a3069ed6432c3433ab945ab46fe816d9e2c | SHA-256 hash of the analyzed Linux third-stage payload. |
| SHA256 | eba9fdb2f077f9a3e14cf428162b967b5e6c189db19c33c5b11601efcd02b3d3 | SHA-256 hash cited for a previously documented PyInstaller-compiled InvisibleFerret variant. |
| URL | hxxp[:]//95[.]216[.]37[.]186:3000 | Publicly accessible web console for the reported C2 infrastructure. |
| URL | hxxp[:]//95[.]216[.]37[.]186:3011/file-upload | Secondary exfiltration endpoint used for file uploads. |
| URL | hxxp[:]//95[.]216[.]37[.]186:5000/content-upload | C2 endpoint used to exfiltrate text-file contents. |
| URL | hxxp[:]//95[.]216[.]37[.]186:5000/download-app | C2 endpoint used to download the next-stage payload. |
| URL | hxxp[:]//95[.]216[.]37[.]186:5000/file-upload | C2 file-upload endpoint used to exfiltrate files. |
| URL | hxxps[:]//api[.]npoint[.]io/9d94ec6053e75dbd933e | Specific resource from which the malicious package retrieves an obfuscated JavaScript payload. |
MITRE ATT&CK
T1036.005 · Match Legitimate Resource Name or LocationThe Windows Run value NvidiaDriverUpdate is named to resemble a legitimate NVIDIA driver update.T1041 · Exfiltration Over C2 ChannelThe malware uploads stolen files and text contents to its C2 infrastructure.T1056.001 · KeyloggingThe third-stage payload's embedded evdev components are described as enabling Linux keyboard capture.T1059.007 · JavaScriptThe package executes an obfuscated JavaScript payload when imported.T1071.001 · Web ProtocolsThe malware communicates with C2 and transfers data using HTTP endpoints; the article also describes Socket.IO communication.T1083 · File and Directory DiscoveryThe malware browses directories and searches files across local drives for specified patterns and sensitive content.T1105 · Ingress Tool TransferThe first-stage malware downloads and launches later-stage payloads, including the executable at /download-app.T1115 · Clipboard DataThe article describes the third-stage malware monitoring the clipboard and replacing cryptocurrency addresses.T1119 · Automated CollectionThe malware recursively scans directories for sensitive files and wallet-related data.T1195.001 · Compromise Software Dependencies and Development ToolsA malicious npm package, tailwindcss-forms-kit, is used as a software dependency delivery mechanism.T1204.002 · Malicious FileThe infection chain relies on developers voluntarily installing the package or running interview software and coding challenges.T1547.001 · Registry Run Keys / Startup FolderPersistence is established through the Windows Run registry key and, in described InvisibleFerret capabilities, startup-folder and autostart files.T1552.001 · Credentials In FilesThe malware collects cloud credentials and sensitive files from locations including ~/.aws, ~/.azure, ~/.config/gcloud, and .env files.T1555.003 · Credentials from Web BrowsersThe malware extracts saved browser passwords from browser databases, including decrypting Windows credentials with DPAPI.T1566.003 · Spearphishing via ServiceFake recruiters contact developers through LinkedIn and other job platforms to deliver malicious interview tasks.
Threat Actors
Contagious InterviewIdentified in the article as a threat group associated with the malware and developer-targeting activity.DEV#POPPERListed as another name for the attributed Famous Chollima threat cluster.Famous ChollimaThe article attributes the three-stage attack to Famous Chollima and identifies it as a specialized unit within Lazarus Group.Lazarus GroupThe article attributes OtterCookie to Lazarus Group and describes Famous Chollima as a unit within the group.UNC5267Listed as another tracking name for Famous Chollima.
Malware
CloudBeaverCookieThis wasn't classic Beavertail, and it wasn't OtterCookie. This was something new. We're calling it "CloudBeaverCookie". Yes, we know that's ridiculous, but we don't care.InvisibleFerretStage Three: InvisibleFerret RevealedOtterCookieThis wasn't classic Beavertail, and it wasn't OtterCookie. This was something new. We're calling it "CloudBeaverCookie". Yes, we know that's ridiculous, but we don't care.
Products
Linuxstealing the entire login.keychain-db file along with browser databases and bash history files. On Linux, it grabbed browser databases and shell history. It was opportunistic but at the same time knew what tomacOSOn macOS, it took a different approach: stealing the entire login.keychain-db file along with browser databases and bash history files. On Linux, it grabbed browser databases and shell history. It was opportunistic butMicrosoft WindowsTheft: The malware targeted five major browsers—Chrome, Brave, Opera, Yandex, and Microsoft Edge on Windows. But this wasn't simple database copying. On Windows, it implemented full DPAPI (Data Protection API)npmIt started with what looked like an innocuous npm package: tailwindcss-forms-kit. The name seemed legitimate enough—Tailwind CSS is a popular utility-first CSS framework, and a package offering pre-built form components
Tools
Countries
Industries
Blockchainsustained operation targeting software developers, particularly those in the cryptocurrency, Web3, and blockchain sectors. The attack methodology is insidious in its simplicity: threat actors impersonate recruiters onCryptocurrencyanalysis—a technical narrative of how a simple npm install can lead to complete system compromise, cryptocurrency theft, and persistent backdoor access for one of the world's most prolific nation-state adversaries.Web3campaign—a sustained operation targeting software developers, particularly those in the cryptocurrency, Web3, and blockchain sectors. The attack methodology is insidious in its simplicity: threat actors impersonate