Skip to content

SecurityNot yet confirmed elsewhere1 publisher2 min readPublished

PavinLoader: the lures keep changing, the MSBuild stage does not

Malwarebytes traces one loader through ClickFix prompts, malicious game installs and fake software downloads. The shared part is a .csproj-to-MSBuild handoff and a blockchain lookup for C2.

The Watch · Security desk

How we use AISend a correction

What happened

  • Malwarebytes says the loader it tracks as PavinLoader, first seen in malicious RenPy campaigns, now appears in ClickFix attacks and fake software download campaigns.
  • The entry points have nothing in common: a fake CAPTCHA that tells the victim to run a command, an apparently legitimate download, or a malicious game install.
  • In each case Inno Setup or MSI installers built with different builders run the .bat and .csproj files that start the chain.
  • The loader then reads its C2 domain from a blockchain via EtherHiding and fetches later stages over paths like assets/{two random words}.json on .lat, .icu, .shop and .cfd domains.
  • In the RenPy chain the final payload was Amatera Stealer, and Malwarebytes says other PavinLoader infections delivered other malware.

Why it matters

  • constraint Controls aimed at the lure, CAPTCHA awareness, game-installer policy, download reputation, only cover the part the operators swap out between campaigns.
  • capability A single rule on the installer-to-script-to-MSBuild lineage reaches three clusters that look unrelated at intake, which is a much better ratio than three lure-specific blocks.
  • exposure The C2 address only becomes a blockable indicator after the loader has run and read it, so network blocklists are structurally late to this chain.
  • precedent If one build process is producing files for multiple operators, artifact overlap stops being evidence of a shared actor, and campaign-level attribution by filename or compilation trace gets weaker.

The chokepoint is a build tool. MSBuild ships with .NET, is signed by Microsoft, and reads project files that can carry executable logic; Malwarebytes reports PavinLoader using property functions such as `[System.Reflection.Assembly]::Load(...)` and `UsingTask` to load and run code out of a DLL [12]. The DLLs are real open-source libraries with malicious methods inserted into them, among them DotNetZip, Nancy, Renci.SshNet and OpenXML, with the added methods following a TwoWords or TwoWordsNumber pattern such as `DefaultEvaluator5` and `FallbackFactory5` [9]. The same two-random-word habit runs through DLL names, functions, strings and C2 paths: `GollopDevest`, `UnbrandRunover`, `PavinWide` [10]. It is a lazy convention, and lazy conventions are the kind of thing that survives a rebuild.

Count the stages and the priorities are visible. Malwarebytes identifies four DLLs in the cases it analysed: a Loader that does anti-forensics and anti-analysis work and adjusts network settings, an EtherHiding Loader, an Anti-Analysis DLL that hunts for virtualised environments, and a PE Loader for the final payload [14]. Two of those four exist only to make observation harder [18]. That is a direct statement about where verdicts should come from: a detonation environment is what the third stage is built to notice, while the parent-child chain from installer to script to MSBuild is what the operators have kept constant [3].

The Loader-as-a-Service question is unresolved and worth watching for practical reasons rather than taxonomy. Malwarebytes found one VirusTotal artifact shared by more than 200 files tied to PavinLoader, which it reads as a possible compilation artifact of the build process [7], plus a PowerShell script carrying comments including `EDIT HERE` and `REPLACE with a real direct link to your .bat`, and an associated BAT file containing the string `Automated builder helper` [8]. It also says plainly that no build panel and no sales channels were found, so commercial distribution is a possibility rather than a finding [19]. If a builder is doing the work, then the recurring filenames Malwarebytes lists, `prefetch_9a59.cmd`, `telemetry_55db.cmd`, `bootstrap_64be.cmd`, nine-character names like `aegZpQ4C7.bat`, and short ones like `Small.msi` [13], are defaults rather than fingerprints of any one operator.

Which leaves a short hunt with a long reach: an installer writing a `.cmd`, `.bat` or `.csproj` [15], that file spawning MSBuild, and MSBuild loading an assembly by reflection [12]. Intermediate payloads vary by campaign configuration [16], so the tail of the chain will keep moving. The middle of it has not.

What to watch

  • Whether a build panel or a sales channel surfaces, which would move Loader-as-a-Service from possibility to finding.
  • Whether the non-RenPy clusters get their final payloads named, and whether they differ from the RenPy outcome.
  • Whether the chain drops MSBuild for another signed interpreter once process-lineage detections on MSBuild parents become common.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence66
Adoption52
Hype gap−8
Incentives58
Confidence61
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Malwarebytes identified a multi-stage loader, which it tracks as PavinLoader, in its earlier analysis of malicious RenPy campaigns.

    ReportedSupportedSource: MalwarebytesView cited source
  2. [2]

    Further threat hunting showed the same loader being used across several different campaigns, including ClickFix attacks and fake software downloads.

    ReportedSupportedSource: MalwarebytesView cited source
  3. [3]

    Common elements across the campaigns are multi-stage infection chains involving heavily obfuscated and trojanized .NET DLLs, abuse of MSBuild, .csproj and .bat files to execute them, and EtherHiding to retrieve the command-and-control domain.

    ReportedSupportedView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. malwarebytes.com

    1 article · August 24, 2026

    Tracking PavinLoader across ClickFix and fake download campaigns

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Loading related stories