Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
Back to malware
MalwareUsed by 6 actors

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.

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
Lazarus

Palo Alto Unit 42 : DEV#POPPER , with malware families BeaverTail and InvisibleFerret.

via github gist webgist.github.com
Contagious Interview

The campaign used the JavaScript infostealer BeaverTail, the cross-platform Python backdoor InvisibleFerret, and most recently OtterCookie, a new backdoor identified in December 2024.

via recorded future blogrecordedfuture.com
CL-STA-0240

The campaign used the JavaScript infostealer BeaverTail, the cross-platform Python backdoor InvisibleFerret, and most recently OtterCookie, a new backdoor identified in December 2024.

via recorded future blogrecordedfuture.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
MITRE ATT&CK

Techniques & procedures

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

Resource Development

1 technique
T1583.001DomainsEvidence1

chai-as-init 패키지는 인기 패키지인 chai 및 chai-as-promised 패키지명을 모방한 타이포스쿼팅 (Typosquatting)기법을 사용

Initial Access

5 techniques
T1133External Remote ServicesEvidence1

The adc module is the only persistence mechanism found in this compromise chain, setting up AnyDesk access to the victim’s computer

T1195Supply Chain CompromiseEvidence1

유명 테스트 프레임워크인 Chai.js의 플러그인으로 위장한 악성 npm 패키지(chai-as-init)가 v1.4.5 ~ v1.4.7까지 총 3개 버전으로 배포

T1566PhishingEvidence1

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.

T1566.002Spearphishing LinkEvidence1

After 2–3 friendly exchanges, the recruiter sends "please review the codebase before our technical interview." Calendly link, often on a fresh subdomain.

T1566.003Spearphishing via ServiceEvidence1

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
T1059Command and Scripting InterpreterEvidence1

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.

T1059.003Windows Command ShellEvidence1

ssh_obj Executes shell commands · Executes the given argument[s] using the system shell via Python’s subprocess module

T1059.006PythonEvidence3

İkinci aşama ise Python ile derlenmiş InsivibleFerret adındaki Backdoor.

T1059.007JavaScriptEvidence1

The C2 response body is compiled with new (Function.constructor)("require", responseData) and executed as executor(require) — arbitrary attacker-supplied JavaScript runs with full require capability.

T1204.002Malicious FileEvidence1

İletilen dosyalar meşru görünüyor çünkü baktığınızda gerçek bir JSON dosyasında olması gerekenler var... Dosyalar içerisinde base64 ile encode edilmiş malware tarzında bir payload var.

Persistence

1 technique
T1133External Remote ServicesEvidence1

The adc module is the only persistence mechanism found in this compromise chain, setting up AnyDesk access to the victim’s computer

Stealth

2 techniques
T1027.013Encrypted/Encoded FileEvidence1

All modules contain an XOR-encrypted and base64-encoded payload, preceded by four bytes representing the XOR key, followed by code to decrypt and execute it via exec

T1140Deobfuscate/Decode Files or InformationEvidence1

In the JavaScript version, the IP address and port are obfuscated using base64 encoding, split into three parts, and swapped around... Other strings are also encoded with base64

Credential Access

4 techniques
T1056.001KeyloggingEvidence2

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

T1552.001Credentials In FilesEvidence1

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

T1555.001KeychainEvidence1

BeaverTail then looks for saved login information in /Library/Keychains/login.keychain (for macOS) or /.local/share/keyrings/ (for Linux).

T1555.003Credentials from Web BrowsersEvidence1

The bow module is responsible for stealing login data, autofill data, and payment information saved by web browsers.

Discovery

7 techniques
T1010Application Window DiscoveryEvidence1

The InvisibleFerret keylogger collects the name of the currently active window.

T1016System Network Configuration DiscoveryEvidence1

collects the following: ... local IP address, and public IP address

T1082System Information DiscoveryEvidence2

The first part contains a hardcoded C&C URL... and collects the following: the user’s UUID, OS type, PC name, username, system version

T1083File and Directory DiscoveryEvidence2

The InvisibleFerret backdoor can browse the filesystem and exfiltrate files.

T1124System Time DiscoveryEvidence1

The collected data along with the computer hostname and current timestamp is uploaded to the /uploads API endpoint on the C&C server.

T1217Browser Information DiscoveryEvidence1

Credentials and other data stored by browsers are exfiltrated by InvisibleFerret.

T1614System Location DiscoveryEvidence2

public IP address and geolocation information (region name, country, city, ZIP code, ISP, latitude and longitude) parsed from http://ip-api.com/json

Lateral Movement

1 technique
T1021.001Remote Desktop ProtocolEvidence1

AnyDesk is used by InvisibleFerret to achieve persistence and allow remote attacker access.

Collection

7 techniques
T1005Data from Local SystemEvidence1

Both BeaverTail and InvisibleFerret exfiltrate data from the local system.

T1025Data from Removable MediaEvidence1

On other systems, uploads the entirety of the user’s home directory and the /Volumes directory containing all mounted drives.

T1056.001KeyloggingEvidence2

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

T1074.001Local Data StagingEvidence1

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

T1115Clipboard DataEvidence1

it enables a keylogger implemented using pyWinHook and a clipboard stealer using pyperclip

T1119Automated CollectionEvidence1

The only functionality not executed by the operator is the initial fingerprinting, which is done automatically.

T1560.002Archive via LibraryEvidence1

Data exfiltrated using InvisibleFerret can be archived using the py7zr and pyzipper Python packages.

Command and Control

6 techniques
T1071.001Web ProtocolsEvidence3

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

T1071.002File Transfer ProtocolsEvidence1

ssh_upload Exfiltrates files or directories, using FTP

T1095Non-Application Layer ProtocolEvidence1

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.

T1105Ingress Tool TransferEvidence2

İkinci aşama ise Python ile derlenmiş InsivibleFerret adındaki Backdoor. Bu Backdoor aynı zamanda başka bir malware’i sisteme çekiyor.

T1219Remote Access ToolsEvidence1

InvisibleFerret is also capable of downloading the legitimate AnyDesk remote management and monitoring software for post-compromise activities.

T1571Non-Standard PortEvidence1

Most C&C communication we observed was done over ports 1224 or 1244 ... and 1245 ... for backdoor C&C communication over TCP sockets.

Exfiltration

3 techniques
T1030Data Transfer Size LimitsEvidence1

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)

T1041Exfiltration Over C2 ChannelEvidence1

The collected information ... is then sent to the C&C server via an HTTP POST request to the /keys API endpoint.

T1567.004Exfiltration Over WebhookEvidence1

The data is then archived and uploaded to a Telegram chat using the Telegram API with a bot token, as well as to an FTP server.

Impact

1 technique
T1657Financial TheftEvidence1

They primarily steal cryptocurrency for financial gain... aiming to steal cryptocurrency wallets and login information from browsers and password managers.

INDICATORS OF COMPROMISE

IOCs tracked for this family

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

View more in app
Network
127 tracked

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

Hashes
51 tracked

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

Other
73 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
domain●●●●●●●●●●●●View more in app4 days ago
uri●●●●●●●●●●●●View more in app18 days ago
uri●●●●●●●●●●●●View more in app18 days ago
uri●●●●●●●●●●●●View more in app18 days ago
uri●●●●●●●●●●●●View more in app18 days ago
uri●●●●●●●●●●●●View more in app18 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 matching251

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 mapping41

Every documented technique, ranked by evidence weight.

Researcher chatter

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