Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
MalwareUsed by 1 actor

BadPaw

BadPaw is a .NET Framework 4.6 trojan downloader/loader disguised as a legitimate Windows Forms regex utility named "RegularExpressionExplorer," presenting a functional GUI facade while hiding malicious behavior. Public reporting describes it as a .NET-based loader used in a phishing campaign targeting Ukrainian organizations and entities, in which victims receive emails—reportedly from ukr[.]net-hosted addresses—linking to a ZIP archive. The archive contains a disguised HTA lure related to Ukrainian border-crossing appeals or permits; the HTA performs sandbox-evasion checks, including validating the Windows install date, and can establish persistence via a scheduled task. A VBScript then extracts hidden payload data from a PNG image using steganography, yielding the BadPaw PE loader.

Once executed in the intended chain, BadPaw establishes command-and-control communication and deploys a second-stage backdoor, MeowMeow. Reporting states BadPaw uses a task-based HTTPS C2 design with methods such as GetTaskRequest(), GetUrlRequest(), and SendResultRequest(), authenticates with a token and a victim serial derived from a MurmurHash of hardware identifiers, and uses AES for payload encryption, RSA for key exchange, and MD5 for hashing. It fingerprints victims through multiple WMI queries covering MAC address, disk serial number, motherboard serial, BIOS information, computer system details, OS identity, and process ID. Registry queries related to AMSI, Windows Defender, Defender real-time protection policies, PassiveMode, and SystemSetupInProgress were also observed.

BadPaw includes extensive anti-analysis and evasion features. Reported protections include .NET Reactor obfuscation, SuppressIldasm, anti-debugging via Debugger.IsAttached, possible clrjit.dll/JIT-hook checks, SHA1 and section-level integrity verification, sandbox detection, sleep-timing checks, event-log inspection, uptime analysis, and runtime reconstruction of split Win32 API strings. Analysis also found evidence of a process-injection workflow involving APIs such as FindResourceA, OpenProcess, VirtualAlloc, WriteProcessMemory, and VirtualProtect, with indications that the injected payload is compressed and dynamically generated using DynamicMethod, ILGenerator, and DeflateStream. In some reporting, BadPaw remains dormant or displays benign dummy GUI behavior unless launched with specific parameters.

BadPaw has been linked in public reporting to a Russia-linked campaign against Ukraine and attributed by ClearSky with high confidence to a Russia-linked cyberespionage group and with lower/moderate or low confidence specifically to APT28 (Fancy Bear/Forest Blizzard/Blue Delta), based on Ukrainian targeting, Russian-language code artifacts, and tradecraft overlap. One mention also notes an APT28 ZIP → HTA → VBS → loader chain with BadPaw as a partial or differing execution chain. Known sample metadata in the provided content includes SHA256 6cad470e10c09151b5d337a082a088cfe25d697ef295e02759e1e68e8b3bbbcb and filenames including RegularExpressionExplorer.exe, HelperForLibraries.exe, and 15n21.exe.

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

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

View more details
APT28

APT28 ZIP → HTA → VBS → loader (BadPaw) Partial, different execution chain

via breakglass intelintel.breakglass.tech
MITRE ATT&CK

Techniques & procedures

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

Initial Access

2 techniques
T1566PhishingEvidence1

The attack chain begins with a phishing email carrying a link to a ZIP archive. When opened, an HTA file displays a Ukrainian-language lure about border crossing appeals while secretly launching the infection chain.

T1566.002Spearphishing LinkEvidence6

“The attack chain initiates with a phishing email containing a link to a ZIP archive. Once extracted, an initial HTA file displays a lure document…”

Execution

7 techniques
T1047Windows Management InstrumentationEvidence1

BadPaw builds a comprehensive victim profile through seven WMI queries via the SOS class

T1053Scheduled Task/JobEvidence1

Endpoint : Search for scheduled tasks created by CreateOrUpdateTask()

T1053.005Scheduled TaskEvidence2

“…establishes persistence through a scheduled task.”

T1059.005Visual BasicEvidence1

“A VBS script then retrieves hidden payload data embedded within an image using steganography…”

T1059.007JavaScriptEvidence1

“Once extracted, an initial HTA file displays a lure document…”

T1204User ExecutionEvidence1

“Once extracted, an initial HTA file displays a lure document…”

T1204.002Malicious FileEvidence4

"... link redirecting to a ZIP archive containing a Ukrainian border checkpoint permit that triggers the download of the BadPaw loader"

Persistence

2 techniques
T1053Scheduled Task/JobEvidence1

Endpoint : Search for scheduled tasks created by CreateOrUpdateTask()

T1053.005Scheduled TaskEvidence2

“…establishes persistence through a scheduled task.”

Privilege Escalation

3 techniques
T1053Scheduled Task/JobEvidence1

Endpoint : Search for scheduled tasks created by CreateOrUpdateTask()

T1053.005Scheduled TaskEvidence2

“…establishes persistence through a scheduled task.”

T1055Process InjectionEvidence1

Process Injection Chain ... OpenProcess obtains a handle to the target, VirtualAlloc reserves memory, WriteProcessMemory writes the payload, and VirtualProtect flips the page to executable.

Stealth

10 techniques
T1027Obfuscated Files or InformationEvidence3

Layer 1: .NET Reactor -- Commercial obfuscation mangles all method and field names into GUID-like strings ... A SuppressIldasm attribute blocks the standard .NET disassembler outright.

T1027.003SteganographyEvidence2

“A VBS script then retrieves hidden payload data embedded within an image using steganography…”

T1027.007Dynamic API ResolutionEvidence1

Layer 5: API String Splitting -- Win32 API names are split across the .NET #US heap ... These are reassembled at runtime via Marshal.GetDelegateForFunctionPointer. Static string scanners see nothing.

T1036MasqueradingEvidence1

"...drops a decoy document as a distraction mechanism..."

T1055Process InjectionEvidence1

Process Injection Chain ... OpenProcess obtains a handle to the target, VirtualAlloc reserves memory, WriteProcessMemory writes the payload, and VirtualProtect flips the page to executable.

T1070.006TimestompEvidence1

The PE compilation timestamp is falsified to 2039, an anti-forensics measure.

T1497Virtualization/Sandbox EvasionEvidence3

Layer 4: Sandbox Detection -- The Sand class implements IsSandBox() for environment fingerprinting, CheckSleep() for timing-based detection ... and a Windows EventLog reader that checks for sandbox-indicator events. System uptime analysis rounds it out -- fresh VMs have short uptimes.

T1497.001System ChecksEvidence1

The Sand class implements IsSandBox() for environment fingerprinting ... and a Windows EventLog reader that checks for sandbox-indicator events. System uptime analysis rounds it out -- fresh VMs have short uptimes.

T1497.003Time Based ChecksEvidence1

CheckSleep() for timing-based detection (real machines have real sleep; emulated sleep is instant)

T1622Debugger EvasionEvidence1

Layer 2: Anti-Debug -- A Debugger.IsAttached check fires early, with a reference to clrjit.dll suggesting JIT hook detection as a secondary measure.

Discovery

6 techniques
T1012Query RegistryEvidence2

Defender Reconnaissance Before any malicious activity, BadPaw queries the registry for the state of Windows Defender: HKLM\SOFTWARE\Microsoft\AMSI ... HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\PassiveMode ...

T1082System Information DiscoveryEvidence1

Before phoning home, BadPaw builds a comprehensive victim profile through seven WMI queries ... MAC address, Disk serial number, Motherboard serial, BIOS information, Computer system details, OS identity string, Process ID.

T1497Virtualization/Sandbox EvasionEvidence3

Layer 4: Sandbox Detection -- The Sand class implements IsSandBox() for environment fingerprinting, CheckSleep() for timing-based detection ... and a Windows EventLog reader that checks for sandbox-indicator events. System uptime analysis rounds it out -- fresh VMs have short uptimes.

T1497.001System ChecksEvidence1

The Sand class implements IsSandBox() for environment fingerprinting ... and a Windows EventLog reader that checks for sandbox-indicator events. System uptime analysis rounds it out -- fresh VMs have short uptimes.

T1497.003Time Based ChecksEvidence1

CheckSleep() for timing-based detection (real machines have real sleep; emulated sleep is instant)

T1622Debugger EvasionEvidence1

Layer 2: Anti-Debug -- A Debugger.IsAttached check fires early, with a reference to clrjit.dll suggesting JIT hook detection as a secondary measure.

Command and Control

3 techniques
T1071Application Layer ProtocolEvidence3

“Upon establishing command-and-control (C2) communication, the loader deploys MeowMeow…”

T1071.001Web ProtocolsEvidence1

The Task-Based C2 ... GetTaskRequest() -- poll the C2 for pending commands ... Transport is HTTPS with custom User-Agent headers

T1105Ingress Tool TransferEvidence5

"... triggers the download of the BadPaw loader"

Exfiltration

1 technique
T1041Exfiltration Over C2 ChannelEvidence1

SendResultRequest() -- exfiltrate task results

INDICATORS OF COMPROMISE

IOCs tracked for this family

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

View more in app
Hashes
3 tracked

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

TypeValueLatest sighting
hash.sha1●●●●●●●●●●●●View more in app3 months ago
hash.md5●●●●●●●●●●●●View more in app3 months ago
hash.sha256●●●●●●●●●●●●View more in app3 months 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 matching3

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

Threat actor attribution1

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 mapping25

Every documented technique, ranked by evidence weight.

Researcher chatter

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