Flamingo Raises $4.5M Seed Round

Skip to content

The antivirus scan comes back clean, and the machine is still talking to a server it has no business knowing. Nothing on the disk looks wrong, because nothing on the disk is the attack. That is fileless malware: code that runs from memory and borrowed system tools instead of a file a scanner can hash.

What Fileless Malware Means

Microsoft's own definition starts with a caveat: "there's no one definition for fileless malware." The term covers any attack where the malicious part never sits on disk as a file you could scan, delete or quarantine. The payload lives in RAM, in the registry, in a WMI database entry, or in a command line, and it runs inside a program Windows already trusts.

Microsoft sorts fileless threats into three types by how much they touch the file system. Type I never writes a file at all, like a network exploit that plants a backdoor in kernel memory. Type II uses files only indirectly, like a PowerShell command stored in the WMI repository. Type III still needs a file to get going, but the file is junk and the real work happens elsewhere, which is how the Kovter family used a registry key and a script to run through mshta.exe.

In practice, the attacks a small IT team meets are Type II and Type III. They start with a click, and they end with a script that runs in memory. That makes fileless malware a subset of malware in general, one that is defined by where it hides rather than what it steals.

How a Fileless Attack Runs

The chain is short, and each step uses a component Windows ships with. A phishing email or a fake CAPTCHA page gets the user to run something. That something is a one-line launcher: a script host such as wscript.exe or mshta.exe, or a PowerShell command with an encoded argument. The launcher pulls the next stage from a remote server straight into memory and runs it there. No installer, no .exe in Downloads, no file for the scanner to open.

Trellix documented a chain like this in March 2026: a Remcos remote-access trojan delivered through phishing, staged in several steps, and executed as memory-resident code. The tooling was ordinary. The lure was ordinary. The only unusual part was that nothing landed on disk for long enough to matter.

The numbers say this is now the norm rather than the exception. CrowdStrike's 2026 Global Threat Report counts 82% of the detections it saw in 2025 as malware-free, meaning no malicious file was involved. Red Canary's 2026 Threat Detection Report puts PowerShell second among all techniques, seen in 19.6% of its customers' environments, because, in the report's words, PowerShell's "versatility and ubiquitousness minimize the need for adversaries to customize payloads or download overtly malicious tools on a target system."

Living Off the Land: The Tools It Borrows

Security teams call this living off the land. The attacker doesn't bring tools, they use yours. The LOLBAS project catalogues the Windows binaries, scripts and libraries that can be turned to that purpose, and the list runs past 200 entries: PowerShell, mshta.exe, rundll32.exe, regsvr32.exe, msiexec.exe, certutil.exe and the rest. MITRE ATT&CK tracks the same idea as System Binary Proxy Execution, technique T1218, with 14 sub-techniques for individual binaries.

Every one of those files is signed by Microsoft and present on every Windows machine. An allowlist that trusts signed Microsoft binaries trusts all of them. Microsoft's own fileless threats page makes the point: scripts run inside interpreters such as wscript.exe and powershell.exe, "a clean and legitimate component," so there is no binary for an antivirus to condemn.

In February 2024, CISA, the NSA, the FBI and their Five Eyes partners published joint guidance on living off the land techniques, prompted by the Volt Typhoon intrusions into US critical infrastructure. Their assessment is blunt: "Many organizations do not implement security best practice capabilities that support detection of living off the land (LOTL), so this technique continues to be effective with little to no investment in tooling by malicious cyber actors." The tooling is free. The defence is configuration.

Where It Hides Between Reboots

Memory is wiped on restart, so fileless malware needs a way back in. It has three favourites, and none of them is a file in the usual sense.

The registry can hold a script as a value, with an autorun key or a file-type handler that feeds it to a script host at logon. Kovter used a random file extension and a registry verb, so opening a junk file triggered mshta.exe with a script read from another key. Scheduled tasks can carry an encoded PowerShell command in the task action itself. And the WMI repository can store an event filter, a consumer and a binding, so that a chosen event, such as a time of day or a process start, runs a command through WmiPrvSE.exe with SYSTEM rights. MITRE tracks that last one as T1546.003, and lists APT29, Turla and the POSHSPY backdoor among its users.

All three survive a reboot. None of them shows up as a new program in Add or Remove Programs. Remove the memory-resident payload and it comes back at the next trigger, which is why cleaning a trojan infection means finding the persistence, not only killing the process.

Why Signature Scanning Misses It

A classic scanner works on files. It hashes them, compares the hash to a list of known bad files, and looks for byte patterns inside. Fileless malware gives it nothing to hash. The launcher is a legitimate Windows binary, the script is encoded or obfuscated, and the payload only exists as bytes in a process's memory.

Obfuscation is cheap. A PowerShell command can be Base64-encoded with the -EncodedCommand switch, split into string fragments, or padded with characters that mean nothing to the interpreter. Each variation defeats a pattern that matched the last one. Microsoft's engineers put it well back in 2018: "a script can hide its code, but it cannot hide its behavior."

That line is the whole defence strategy. The interpreter has to decode the script before it runs it, and the payload has to make the same API calls whatever it looked like on the way in. Modern antivirus software adds behaviour monitoring and memory scanning for exactly this reason, and Windows exposes the decoded script to it through AMSI, the Antimalware Scan Interface. AMSI hooks PowerShell, Windows Script Host, JScript, VBScript and Office VBA macros, and hands the content to whatever antimalware engine is registered at the moment it runs.

How to Detect Fileless Malware

You can't detect what you don't log, and the default Windows install logs almost none of this. Four switches change that, and three of them are free.

Turn on PowerShell script block logging. Group Policy has it under Administrative Templates as "Turn on PowerShell Script Block Logging," and the registry key is EnableScriptBlockLogging under HKLM\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging. Once enabled, every script block PowerShell processes is written to the Microsoft-Windows-PowerShell/Operational log as event 4104, decoded, whatever obfuscation wrapped it. Add module logging for the pipeline detail. Microsoft recommends pairing both with protected event logging, since a logged script can contain a credential.

This r/sysadmin thread from September 2025 is the usual starting point: the poster had module and script block logging on and wanted to know who ran what and when. The replies are worth reading for the edge cases, from users pasting scripts straight into a PowerShell window to scripts with passwords hard-coded in them.

Install Sysmon. It's a free Microsoft tool that logs process creation with the full command line and the parent process (event 1), network connections (event 3), threads injected into other processes (event 8), and the three WMI events that catch persistence being planted: filter (19), consumer (20) and binding (21). Event 25 flags process hollowing. With Sysmon and script block logging feeding a log management pipeline, the hunt becomes a set of searches.

The searches themselves are well known. Red Canary's detection guidance lists the ones that keep paying: PowerShell launched with any spelling of -EncodedCommand, Base64 blobs on a command line, commands heavy in ^ + $ and % characters, cmdlets like Invoke-Expression, iex and .DownloadString, and script hosts started by Outlook, Word, a browser or a PDF reader. Any of those with a network connection right after is a ticket. If you run PowerShell across a fleet, our PowerShell commands guide covers the queries; OpenFrame can run the same Get-WinEvent query as a script across a client's devices and collect the output, so you see which machines are logging encoded commands at all.

Hardening That Shrinks the Surface

Detection tells you it happened. Hardening makes it harder to happen, and MITRE's mitigations for PowerShell abuse read like a checklist for a small team. Put PowerShell into Constrained Language Mode for standard users, so scripts can't reach the .NET methods most payloads depend on. Enforce signed scripts through the execution policy, knowing it's a guardrail rather than a wall. Remove PowerShell 2.0, which predates all of this logging. Use application control to block mshta.exe, wscript.exe and cscript.exe for users who never need them.

Block Office macros from the internet, which Microsoft now does by default, and keep it that way. Give admins Just Enough Administration endpoints instead of a full remote shell. And answer the question the r/sysadmin thread kept circling back to: does a standard user need to run scripts at all? One reply had a Group Policy that disables script execution for non-admins. For plenty of desks, that is the right default.

The r/blueteamsec community posts the fresh research as it lands. This thread from March 2026 links the Trellix write-up of the Remcos chain above, and it is a good habit to follow the subreddit for the next one.

For a five-minute version of the whole problem, Archer's Cybersecurity 101 episode on fileless malware covers the idea without the jargon:

Fileless Malware, in Short

Fileless malware is an attack that runs from memory and borrowed Windows tools, so a file scanner has nothing to find. It gets in through a click, runs through PowerShell or a script host, and survives reboots in the registry, a scheduled task or a WMI subscription. Signatures miss it; behaviour, logs and AMSI catch it.

Start with the free switches: script block logging, Sysmon and the handful of saved searches for encoded commands. Then take the tools away from the users who don't need them. If a search turns something up, our incident response guide covers what to do in the first hour.

And if nothing has turned up yet, the threat hunting guide covers how to go looking before an alert does.

Kristina Shkriabina

Content Marketing Lead

Ohayo! I run content, SEO, social, and community at Flamingo. Before IT, I worked as a correspondent for Ukraine's Public Broadcasting Company and have a Master's in journalism.

Related Content

Blog Posts

Product Releases

Podcasts

Webinars

Case Studies

Events

Onboarding Guides

Frequently Asked Questions

blog

Fileless malware is malicious code that runs from memory and built-in Windows tools such as PowerShell, mshta.exe or WMI instead of a file saved to disk. Because nothing is written that a scanner can hash, signature-based antivirus has nothing to match. Microsoft sorts it into three types by how much it touches the file system; the attacks small teams meet are usually scripts that run in memory and persist through the registry or a WMI subscription.
A phishing email or fake CAPTCHA gets the user to run a one-line launcher, usually a script host or an encoded PowerShell command. That launcher downloads the next stage straight into memory and runs it inside a trusted, Microsoft-signed process. To survive a reboot it stores a trigger in the registry, a scheduled task or a WMI event subscription rather than dropping a program.
A plain file scanner usually cannot, because there is no file to hash. Modern antivirus and EDR detect it through behaviour: Windows AMSI hands the decoded script to the antimalware engine at the moment it runs, behaviour monitoring matches suspicious API call sequences, and memory scanning reads the payload where it has to live. Pair that with PowerShell script block logging and Sysmon so you can see what ran and what started it.
Killing the process is not enough, because the trigger brings it back. Find the persistence first: registry autorun values and file-type handlers, scheduled tasks with encoded commands, and WMI filters, consumers and bindings in the root\subscription namespace. Remove the trigger, then the payload, then reset any credentials the machine held, and confirm with Sysmon and PowerShell logs that it did not return after a reboot.

About OpenFrame

OpenFrame isn't built to plug into your stack. It replaces it. Instead of duct-taping a dozen tools together (RMM, MDM, SIEM, patching, remote access, each its own login and bill), we bundle it into one unified platform: RMM, MDM, monitoring, automation, remote access, patch management, security monitoring, and ticketing, plus built-in AI copilots. So "does it integrate with X?" usually means: you won't need X anymore.
Most platforms give you one piece and expect you to bolt the rest on. OpenFrame unifies the whole stack in one place, with AI copilots built in. Fewer logins, fewer bills, less duct tape.
In the cloud, on US soil. Your data stays stateside.
Both. It's built for MSPs and MSSPs alike.

MSP AI Agents

Yes. In production MSP shops today, 10% to 25% of tickets close before a human opens them. Thread alone has processed 173 million tickets across 750-plus MSP partners at 96% triage accuracy, handing back 490,000-plus technician hours. Agents own the low-risk, high-volume work (password resets, MFA enrollment, known installs, onboarding and offboarding) and flag anything that touches production data or needs judgment for a human to take.
On a five-person desk, reported deployments show $78,000 to $130,000 in annual direct labor savings, roughly 30% fewer escalations, and 15% to 20% better SLA compliance. Broader MSP adoption data adds ticket handling time cut by 45% and five to 12 points of margin, all from reclaimed capacity rather than headcount cuts.