InvisibleFerret
InvisibleFerret is a Python-based modular backdoor and infostealer used in the DPRK-linked Contagious Interview / DeceptiveDevelopment activity cluster, also associated in reporting with DEV#POPPER, Famous Chollima, Void Dokkaebi, UNC4899, and PurpleBravo. It has been active since at least November 2023 and is commonly delivered as a second-stage payload by BeaverTail during fake job interview, recruiter, coding challenge, malicious npm package, trojanized repository, VS Code task, Git hook, and fake conferencing-software infection chains targeting software developers, especially those involved in cryptocurrency and decentralized finance projects. It affects Windows, macOS, and Linux.
The malware is consistently described as a cross-platform Python backdoor that provides remote control and persistent access to attackers. Reported capabilities include host fingerprinting; collection of usernames, OS details, local and public IP addresses, and geolocation; browser credential theft; theft of autofill and payment-card data from Chromium-based browsers; theft of cryptocurrency wallet data and browser-extension data; keylogging; clipboard theft and cryptocurrency address hijacking; reverse shell / TCP backdoor functionality; file staging prior to exfiltration; and downloading or deploying additional payloads. Reporting also states that some variants can install and configure AnyDesk for persistence and remote access, and newer versions added Telegram- and FTP-based exfiltration via an ssh_zcp command. One report notes a later version with a separate mlip module for clipboard stealing and keylogging limited to chrome.exe and brave.exe.
Persistence on macOS has been observed via LaunchAgents using the file name "com.avatar.update.wake.plist". InvisibleFerret has also been reported to stage data in consolidated folders before exfiltration and to use HTTP communications to the "/Uploads" URI for file exfiltration. ESET reported that BeaverTail commonly downloads a Python environment archive named p2.zip and then retrieves the second-stage payload from a /client/<campaign_ID> endpoint, while InvisibleFerret commonly uses port 1245 for its backdoor communications, with alternatives including 80, 2245, 3001, 5000, and 5001.
Recent reporting describes an evolution from readable Python scripts to compiled Cython-based binaries to hinder analysis and evade script-based defenses. In these variants, InvisibleFerret is distributed as .pyd files on Windows and .so components on macOS, launched by lightweight runtime Python scripts; embedded C2 values may also be overridden at runtime via command-line arguments.
InvisibleFerret is repeatedly linked to campaigns targeting developers through fake recruiter and interview lures, often with the objective of stealing browser credentials, cryptocurrency wallets, private keys, seed phrases, and other sensitive data, while also enabling long-term espionage, persistence, and lateral movement on high-value targets.
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.
Palo Alto Unit 42 : DEV#POPPER , with malware families BeaverTail and InvisibleFerret.
The campaign used the JavaScript infostealer BeaverTail, the cross-platform Python backdoor InvisibleFerret, and most recently OtterCookie, a new backdoor identified in December 2024.
The campaign used the JavaScript infostealer BeaverTail, the cross-platform Python backdoor InvisibleFerret, and most recently OtterCookie, a new backdoor identified in December 2024.
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.
Techniques & procedures
41 distinct techniques documented for this family, organized by ATT&CK tactic.
Resource Development
1 technique
Resource Development
Initial Access
5 techniques
Initial Access
The adc module is the only persistence mechanism found in this compromise chain, setting up AnyDesk access to the victim’s computer
유명 테스트 프레임워크인 Chai.js의 플러그인으로 위장한 악성 npm 패키지(chai-as-init)가 v1.4.5 ~ v1.4.7까지 총 3개 버전으로 배포
Tehdit aktörü önceden sömürmüş olduğu JSON Storage servislerini iş görüşmesi adı altında kişiye iletiyor... Hedef kitle : Yazılımcılar, Yazılım Geliştiriciler, İş aramak için görüşmeler yapan DevOps, DevSecops ekipleri.
After 2–3 friendly exchanges, the recruiter sends "please review the codebase before our technical interview." Calendly link, often on a fresh subdomain.
DeceptiveDevelopment targets freelance software developers through spearphishing on job-hunting and freelancing sites... The most commonly observed compromise vector consists of the fake recruiter providing the victim with a trojanized project under the guise of a hiring challenge
Execution
5 techniques
Execution
InvisibleFerret samples analyzed were Python scripts... Like InvisibleFerret, OtterCookie is a post-compromise malware family used as a backdoor, which establishes C2 connectivity via Socket[.]IO, receives and executes shell commands from C2 servers.
ssh_obj Executes shell commands · Executes the given argument[s] using the system shell via Python’s subprocess module
Persistence
1 technique
Persistence
Stealth
2 techniques
Stealth
Credential Access
4 techniques
Credential Access
if it is, it enables a keylogger implemented using pyWinHook... In December 2024 we discovered yet another version of InvisibleFerret, containing an additional module named mlip
If they are found, any .ldb and .log files from the extensions’ directories are collected and exfiltrated. Apart from these files, the malware also targets a file containing the Solana keys stored in the user’s home directory in .config/solana/id.json
Discovery
7 techniques
Discovery
The InvisibleFerret keylogger collects the name of the currently active window.
collects the following: ... local IP address, and public IP address
The first part contains a hardcoded C&C URL... and collects the following: the user’s UUID, OS type, PC name, username, system version
The InvisibleFerret backdoor can browse the filesystem and exfiltrate files.
The collected data along with the computer hostname and current timestamp is uploaded to the /uploads API endpoint on the C&C server.
Lateral Movement
1 technique
Lateral Movement
Collection
7 techniques
Collection
Both BeaverTail and InvisibleFerret exfiltrate data from the local system.
On other systems, uploads the entirety of the user’s home directory and the /Volumes directory containing all mounted drives.
if it is, it enables a keylogger implemented using pyWinHook... In December 2024 we discovered yet another version of InvisibleFerret, containing an additional module named mlip
It searches through the browser’s local storage folders ... and copies the databases containing login and payment information to the %Temp% folder on Windows or the /tmp folder on other systems
it enables a keylogger implemented using pyWinHook and a clipboard stealer using pyperclip
Command and Control
6 techniques
Command and Control
safe Json Storage servisleri olarak görülen “JsonSilo, JsonKeeper, Npoint” gibi alanları kullanarak meşru bir trafik gibi görünerek saldırıyı devam ettirdikleri... Aslında burada HTTP trafiği izlenerek olay çözümlenmekte
The second part acts as a TCP backdoor, and a TCP reverse shell, accepting remote commands from the C&C server and communicating via a socket connection.
İkinci aşama ise Python ile derlenmiş InsivibleFerret adındaki Backdoor. Bu Backdoor aynı zamanda başka bir malware’i sisteme çekiyor.
Exfiltration
3 techniques
Exfiltration
Only uploads files smaller than 20,971,520 bytes (20 MB)... similar to sdir, but exfiltrates only files smaller than 104,857,600 bytes (100 MB)
IOCs tracked for this family
251 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
125 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Malware associated with the Contagious Interview campaign and described here as a backdoor.
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.
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.