Intentionally desktop-first — best experienced on a workstation
Portfolio
Lab Log 011

Ladon in the Wild —
Five Malicious PDFs, Analyzed

Analyst
Yana Ivanov
Published
April 2026
Updated
April 30, 2026
Tool
Ladon · document_triage.py
Samples
5 PDFs · All Malicious
Read Time
15 minutes
LIVE THREAT SAMPLES · STATIC ANALYSIS ONLY · NO FILES EXECUTED · EDUCATIONAL USE · SITEWAVE STUDIO LLC
Section 01

From Synthetic Tests
to Real Malware

Lab 010 documented how Ladon was built — the detection modules, the architecture decisions, the scoring logic. It ended with a straightforward observation: synthetic test files tell you the code runs. Real malware tells you the detection logic actually works. This lab is that test.

The five samples analyzed here were sourced from MalwareBazaar and one live phishing attempt that arrived in my own inbox. All five are PDFs. All five triggered Ladon's polyglot detection module. None of them were safe to open.

The goal of this lab is not to reverse-engineer the malware — Ladon is a triage tool, not a malware analysis platform. The goal is to document what the tool found, what those findings mean, and what would have happened to a non-technical user who opened any of these files.

On sample handling: All analysis was performed using Ladon's static analysis engine. No file was executed, opened in a PDF viewer, or processed by any renderer. Ladon reads raw bytes only. Four samples were sourced from MalwareBazaar. One arrived as a live phishing email. Hashes are included for reference. The files themselves are not distributed.

Section 02

The Samples — What Ladon Found

Each sample is presented with its Ladon report findings, what those findings mean in practice, and what a non-technical user would have experienced if they had opened the file.

Sample 01 · Unknown Origin
HIGH
d67e62bb3ebf9f27dfb8fbd20f88748bb898f5a70265b386a64cb92fafefe0d5.pdf · 293.2 KB · Generated: 2026-04-05 01:01 UTC
CRITICAL
Polyglot — Windows PE at offset 36,700. The deepest offset in the sample set — the executable signature is buried past the bulk of the PDF content. This maximizes the distance between the file header (which scanners check) and the payload (which scanners with byte-limit cutoffs may never reach).
HIGH
/ObjStm detected — Object stream used to conceal malicious objects. Object streams compress and bundle multiple PDF objects together, making their contents invisible to scanners that parse PDF structure without decompressing. This is deliberate obfuscation — malicious actions or scripts hidden inside an object stream will not appear in a surface-level scan of PDF keys. Ladon's raw byte scan found the embedded PE regardless.
Assessment: No threat actor has been attributed to this sample. The combination of a deeply buried polyglot payload and object stream obfuscation points to a file engineered to defeat automated scanning specifically — two independent evasion techniques layered together. Attribution unknown; technique deliberate.
Sample 02 · Chinese APT · ValleyRAT / SilverFox
CRITICAL
e2b75baeb7ed21fb8f27984f941286770d1c3c0b60fce8d7fa5b167bd24ba6dc.pdf · 158.4 KB · Generated: 2026-04-05 01:03 UTC
CRITICAL
ValleyRAT / SilverFox — Chinese APT. ValleyRAT is a remote access trojan attributed to Chinese threat actors, distributed under the SilverFox campaign umbrella. Multi-stage delivery: lure document drops a loader, which fetches the RAT payload from attacker-controlled infrastructure at runtime.
CRITICAL
Polyglot — Windows PE at offset 4,937. The earliest offset in the sample set — the executable signature appears just 4,937 bytes into the file, leaving minimal PDF structure before the payload begins.
HIGH
/URI detected 20 times — External URI references. Twenty embedded URI references fire automatically when the document renders, tracking every interaction and staging the multi-stage download chain.
CRITICAL
Live C2 URLs — .msi and .exe hosted on Tencent Cloud, active at time of analysis. Direct links to secondary payloads on cos.ap-guangzhou.myqcloud.com, including lnstaller.msi — deliberate misspelling of "installer" to evade string-based detection.
Assessment: A fully operational multi-stage dropper with live infrastructure. The PDF is not the final payload — it is the delivery mechanism for a secondary executable fetched from Tencent Cloud at the moment of opening.
Sample 03 · Unknown Actor · Credential Harvesting
CRITICAL
b046d04b61f3ebfd9410c8b4f365118e29470fb6c54529c2425f553eb6364d8e.pdf · 134.6 KB · Generated: 2026-04-05 01:04 UTC
CRITICAL
Polyglot — Windows PE at offset 18,238. Embedded executable inside an otherwise valid PDF. Opens normally in any viewer, payload invisible to the recipient.
CRITICAL
/AA detected 6 times — Additional Actions (auto-execute). The /AA key triggers code execution automatically on page open, page close, or document print — no user interaction required beyond opening the file.
HIGH
/URI detected 4 times — IP-leaking callbacks. Four external URI references fire on render, sending the recipient's IP address and open timestamp to the attacker's server before the user has read a single word.
HIGH
Typosquatted domain: maneger-accouintr-solutieonst.site — Deliberate misspelling of "manager account solutions" on a .site TLD. A throwaway phishing domain designed to pass a visual scan.
Assessment: The most layered sample in the set — polyglot payload, auto-execute on open, IP beacon callbacks, and a typosquatted harvesting domain, all in one file. Facebook-themed credential phishing. All stages trigger before the user reads a word of the document.
Sample 04 · MalwareBazaar · Gamaredon / ACT-32
HIGH
5095c6478dbb7f167c637511536ddc9bdc60828cc7c323041c68a2918eb351e8.pdf · 154.7 KB · Generated: 2026-04-04 03:16 UTC
CRITICAL
Gamaredon / ACT-32 — Russian state-affiliated threat group (FSB-linked). Active since at least 2013. Persistent, high-volume spearphishing campaigns targeting Ukrainian government, military, law enforcement, and NATO-aligned organizations.
CRITICAL
Polyglot — Windows PE at offset 18,385. Single finding. No other PDF structure anomalies — no JavaScript, no auto-execute, no callbacks, no suspicious URLs. The PDF layer is completely inert. The only threat is the embedded executable.
PASS
PDF structure clean. No dangerous PDF keys detected. No active content of any kind. A scanner that checks only PDF structure finds nothing.
Assessment: The most deceptive sample in the set. A clean PDF structure means no behavioral signals — nothing fires. The file opens, renders, and looks exactly like a legitimate PDF. The only finding is the embedded PE, which requires a full-file secondary signature scan to detect. Cleaner PDF structure is not a sign of a less dangerous file.
Sample 05 · Live Phishing · Caught in Inbox
HIGH
Opportunity_OverviewNY921.pdf · 340.1 KB · Generated: 2026-04-05 21:58 UTC
CRITICAL
Polyglot — Windows PE at offset 10,303. A Windows executable signature (MZ header) embedded inside a structurally valid PDF. Opens and renders normally in any viewer. No file extension or header-only scanner will find the payload.
PASS
PDF structure clean. No JavaScript, auto-execute actions, embedded files, or tracking pixels. The PDF layer is inert. The threat is entirely in the embedded executable.
Context: This file arrived as an unsolicited email attachment from Amin Claudette  ·  aminclaudette14@gmail.com, subject line Remote Job Posting: Shipping Role. The email addressed me by name, claimed to have found my profile on a professional platform, and asked me to open the attached PDF for job details and next steps. The sender used a personal Gmail address, not a business domain. Gmail's scanner did not flag the attachment.

This is the sample that validated the intended use case for Ladon — a real phishing email, a real target, a payload that passed Gmail. Ladon caught it on first scan.
Figure 011-01 — Ladon Report · Opportunity_OverviewNY921.pdf · Sample 5
Ladon analysis report showing HIGH severity, polyglot PE at offset 10303, clean PDF structure
Ladon's output for the live phishing catch. Severity: HIGH. Polyglot module detected a Windows PE executable at offset 10,303. PDF structure module passed clean — the threat is entirely in the embedded executable layer, invisible to a standard PDF viewer and to Gmail's attachment scanner.
Section 03

The Pattern Across All Five

Every sample in this set is a polyglot. That is not a coincidence — it is a reflection of how effective the technique is. A PDF that contains a Windows PE executable will pass file extension checks, pass magic byte checks, open normally in any PDF viewer, and show readable content to the recipient. The executable is not visible. It makes no noise. The only way to find it is to scan the entire file for secondary signatures — which is exactly what Ladon does.

SampleAttributionSeverityPE OffsetAdditional Findings
d67e62bb…
Unknown dropper
Unknown HIGH 36,700 /ObjStm — hides objects from scanners
e2b75bae…
ValleyRAT / SilverFox
Chinese APT CRITICAL 4,937 /URI ×20, live Tencent Cloud .msi + .exe C2
b046d04b…
Facebook phishing
Unknown CRITICAL 18,238 /AA ×6 auto-execute, /URI ×4, typosquatted .site domain
5095c647…
Gamaredon loader
Russian APT (FSB) HIGH 18,385 None — clean PDF layer
Opportunity_OverviewNY921
Job scam · live catch
Unknown HIGH 10,303 None — clean PDF layer

Three of the five samples would have been entirely missed by a scanner that only checks PDF structure. Two would have been partially flagged — the auto-execute actions and suspicious URLs in samples 2 and 3 would have triggered something. But the embedded executable in every case would have gone undetected without a full-file secondary signature scan.

On the clean PDF layer in samples 4 and 5: The absence of active PDF content is worth noting. An attacker who embeds a PE executable and adds no JavaScript, no auto-execute actions, and no suspicious URLs produces a file that is specifically harder to detect — it generates no behavioral signals, no network callbacks, nothing that heuristics can catch. Cleaner PDF structure is not a sign of a less dangerous file. The Gamaredon sample makes this point with state-sponsored precision.

Section 04

What This Validates About Ladon

The detection methodology in Ladon was built from reading threat reports and file format specifications. These five samples are the first test against files that weren't constructed to test the tool. The results hold.

Every sample triggered the polyglot detection module correctly. The severity scoring separated the two CRITICAL samples from the three HIGH samples. The URL analysis module correctly flagged the live Tencent Cloud C2 URLs in sample 2 and the typosquatted domain in sample 3. The PDF structure module correctly identified the auto-execute actions in sample 3 and the object stream obfuscation in sample 1.

The live phishing sample is the most meaningful data point. It was not sourced from a malware repository. It was not constructed to test anything. It was a real phishing email sent to a real target. Gmail did not flag the attachment. Ladon caught the embedded PE at offset 10,303 on the first scan.

The intended use case, validated: Ladon was designed for a specific scenario — a non-technical employee at a defense contractor or small business who receives an unexpected PDF and has no way to know if it is safe to open. The job scam email is exactly that scenario. The file looked like a PDF, opened like a PDF, and passed Gmail's scanner. The only thing that identified it as malicious was reading the raw bytes — which is exactly what Ladon does, automatically, before anyone opens anything.

Section 05

Detection Improvements — April 30, 2026

Following the original publication of this lab, two issues were identified through continued testing and addressed with updates to document_triage.py. Both fixes are documented here with validation results.

Fix 01 — PE Validation · False Positives  ·  April 30, 2026

The problem: Ladon's polyglot detection was producing false positives on large legitimate PDFs — corporate threat intelligence reports, technical manuals, and similar documents were occasionally triggering a CRITICAL finding when no malicious content was present. The issue was specific to files with heavily embedded binary content such as fonts, images, and color profiles.

The fix: The PE detection logic was updated to require a higher confidence threshold before flagging a finding. A file must now satisfy multiple structural validation checks before a Windows executable signature is reported. Incidental byte patterns that are not part of a real executable no longer trigger the module. The change was validated against both clean and malicious samples to confirm zero false negatives.

ValleyRAT (e2b75bae…) — confirmed malicious · re-tested April 30, 2026
PE at offset 4,937 still detected correctly after fix. All original findings intact. No regression.
CRITICAL ✓

Re-test output — 2026-04-30 21:24 UTC
File: e2b75baeb7ed21fb8f27984f941286770d1c3c0b60fce8d7fa5b167bd24ba6dc.pdf · 158.4 KB · Severity: CRITICAL

Polyglot Detection — 1 finding
[CRITICAL] Windows PE (EXE) signature found at offset 4937 inside PDF file

PDF Structure Analysis — 6 issues
[Critical] /URI detected (20×) — External URI reference
[Warning] https://6-1321729461.cos.ap-guangzhou.myqcloud.com/lnstaller.msi
[Warning] https://00-1321729461.cos.ap-guangzhou.myqcloud.com/24-12-13uninstall.exe
[Warning] http://www.baidu.com

URL Analysis — 13 suspicious URLs
Tencent Cloud COS domains (cos.ap-guangzhou.myqcloud.com) flagged MEDIUM — live Chinese APT C2 infrastructure confirmed at time of original analysis. Note: URL scoring for Chinese cloud infrastructure is a known improvement area — these domains warrant CRITICAL given attribution context.

Large legitimate PDF (40MB+ corporate document)
Previously flagged false CRITICAL. After fix: polyglot module passes clean.
CLEAN ✓
Fix 02 — Calendar Analysis · False Positives  ·  April 30, 2026

The problem: Ladon's calendar invite analysis was incorrectly flagging two categories of legitimate calendar invites as CRITICAL meeting platform spoofs. Invites scheduled through third-party scheduling platforms were being flagged because they reference meeting platform names without routing directly through those platforms. Additionally, calendar invites forwarded through corporate email security gateways were being flagged because those gateways rewrite URLs before delivery, making a legitimate Zoom or Teams link appear to come from an unrecognized domain.

The fix: The calendar analysis module was updated to recognize both categories correctly. Legitimate scheduling platforms and known corporate email security gateways are now handled appropriately, passing clean instead of triggering false spoof alerts. Actual attacker-controlled domains that impersonate meeting platforms — the core detection target — are unaffected and still trigger CRITICAL.

Legitimate Calendly invite (calendly.com/john-smith/30min)
Previously flagged false CRITICAL. After fix: calendar module passes clean, severity LOW.
CLEAN ✓
BlueNoroff-style fake Zoom lure (zoom-us.meeting-secure.site)
Modeled on the April 2026 BlueNoroff/Lazarus campaign using typosquatted Zoom domains. After fix: still detected correctly as CRITICAL spoof.
CRITICAL ✓

On the BlueNoroff campaign context: The fake Zoom test case was modeled on a documented active campaign. Arctic Wolf reported in April 2026 that BlueNoroff — a Lazarus sub-group tied to North Korea's Reconnaissance General Bureau — was using Calendly invites that later swap to typosquatted Zoom or Teams links to deliver second-stage malware via a fake SDK update prompt. The campaign was independently covered by GovInfoSecurity, Dark Reading, Infosecurity Magazine, and CyberSecurityNews between April 17–28, 2026, and is tracked under UNC1069 and Sapphire Sleet. The fix correctly allows legitimate Calendly scheduling through while catching the attacker-controlled destination domain substitution.

Active Campaign IOCs — April 2026

The following indicators are documented in ThreatFox (community submissions dated April 8, 2026) and are consistent with the BlueNoroff/UNC1069 fake Zoom campaign. Domains are defanged — brackets replace dots to prevent accidental navigation. These domains would trigger Ladon's ICS analysis if embedded in a calendar invite LOCATION or DESCRIPTION field.

Defanged IndicatorTypePattern
usz00mczyiee[.]storeDOMAINZero substitution in "zoom" — usz00m vs zoom
zoominviteeees[.]deDOMAINExtra characters appended to "zoom" + unusual TLD
googlemeet[.]emilychart[.]xyzDOMAIN"googlemeet" as subdomain of unrelated domain + .xyz TLD
simplicity-w[.]pages[.]devURLCloudflare Pages abuse — legitimate infrastructure, malicious content

What Ladon catches vs. where its boundary is: If any of these domains appeared in a calendar invite LOCATION or DESCRIPTION field, Ladon would flag CRITICAL — suspicious TLD, platform keyword in wrong domain, or typosquat pattern. What Ladon does not catch is the browser-based payload delivery stage: the fake meeting room rendering pre-recorded video, the fake audio failure, and the ClickFix "SDK Update" prompt that delivers the actual malware. That stage happens in the browser after the user clicks the link. Ladon is a pre-click triage tool — it catches the lure before it is opened. Detecting the browser-based stage requires endpoint behavioral detection or DNS-layer blocking, not static file analysis.

All five original malicious samples were re-tested after both fixes. Zero false negatives — every confirmed malicious file still fires at the correct severity. Zero false positives introduced — clean files that previously triggered incorrectly now pass clean.

Section 06

The Full Picture

Across both the original analysis and the April 30 improvements, Ladon's detection posture is zero false negatives on confirmed malicious files and zero false positives on the clean files tested. The PE validation fix closes the most common source of noise for users who scan large corporate documents. The calendar fix closes the most common source of noise for users who scan calendar invites from scheduling platforms or corporate email environments.

The tool does not execute anything. It does not require network access. It reads raw bytes and reports what it finds — which is exactly what is needed before anyone opens an unexpected file.

REQUEST A LIVE DEMO
available upon request