Analysis Traces Contagious Interview Campaign Through OtterCookie and InvisibleFerret Payloads

· Original article ↗

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

TypeIndicatorContext
IPV495[.]164[.]17[.]24Listed as documented InvisibleFerret C2 infrastructure.
IPV495[.]216[.]37[.]186Primary C2 host; the article also describes file-upload and content-upload services on this host.
MD5153e2f27e035252d5f7ace69948e80b2MD5 hash of the analyzed Windows third-stage payload.
MD55a2c042b086a475dca4c7dcec62693c1MD5 hash of the analyzed Linux third-stage payload.
SHA2561c8c1a693209c310e9089eb2d5713dc00e8d19f335bde34c68f6e30bccfbe781SHA-256 hash of the analyzed Windows third-stage payload.
SHA256699cd6c292b8a5933dabee63c74a9a3069ed6432c3433ab945ab46fe816d9e2cSHA-256 hash of the analyzed Linux third-stage payload.
SHA256eba9fdb2f077f9a3e14cf428162b967b5e6c189db19c33c5b11601efcd02b3d3SHA-256 hash cited for a previously documented PyInstaller-compiled InvisibleFerret variant.
URLhxxp[:]//95[.]216[.]37[.]186:3000Publicly accessible web console for the reported C2 infrastructure.
URLhxxp[:]//95[.]216[.]37[.]186:3011/file-uploadSecondary exfiltration endpoint used for file uploads.
URLhxxp[:]//95[.]216[.]37[.]186:5000/content-uploadC2 endpoint used to exfiltrate text-file contents.
URLhxxp[:]//95[.]216[.]37[.]186:5000/download-appC2 endpoint used to download the next-stage payload.
URLhxxp[:]//95[.]216[.]37[.]186:5000/file-uploadC2 file-upload endpoint used to exfiltrate files.
URLhxxps[:]//api[.]npoint[.]io/9d94ec6053e75dbd933eSpecific 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

Malware

Products

Tools

Countries

Industries

Related Articles