Threat Investigations · Case 001
Preliminary Investigation
1. Executive Summary
A PDF-themed advertisement reported on a French travel article led to a download associated with two unfamiliar domains and a Windows executable. The observation, dated 13 October 2026, was supplied to News4Cyber for investigation. The reported route passed through Google's advertising click infrastructure before reaching pdf-nexus[.]com and an executable endpoint on source-moonlig[.]com.
The central concern is the transition from a PDF-related offer to an EXE, accompanied by preliminary binary observations that warrant scrutiny. That mismatch is a lead, not a malware diagnosis: a PDF viewer can legitimately use a Windows installer. This report preserves the reported indicators, checks available public metadata and outlines reproducible SOC hunts without attributing an actor or malware family.
Confirmed findings
The referenced publisher page exists. Google documents the click host as advertising infrastructure. Public IOC lookups returned the results listed below; registry registration events were independently retrieved for both domains.
Suspicious indicators
Reported PDF-to-EXE delivery, changing filenames, a future PE timestamp and near-maximal section entropy. None has been independently measured here.
Unverified hypotheses
Malvertising, bundled unwanted software, a packed installer or a malicious loader remain possibilities. Execution, C2, persistence and injection are not demonstrated.
2. Discovery and Initial Context
The report identifies Top 13 des plus belles randonnées à faire dans les Pyrénées on www.petitfute.com as the page hosting the advertisement. The publisher's currently indexed title includes “en 2026”. We verified the referenced article's existence, not the advertisement's appearance to a particular visitor on 13 October. Advertising varies with time, location, browser context and targeting; a later visit would not reproduce the original event by itself. Petit Futé: the referenced hiking article.
Petit Futé is the legitimate publishing context, not a campaign IOC. A third-party advertisement does not establish that the publisher's site was compromised. No original screenshot, HAR, response headers or binary was supplied to the editorial workspace; these missing artifacts constrain all campaign-specific conclusions.
For background on deceptive acquisition paths, see News4Cyber's existing Phishing Techniques article. The mechanism under review here is advertising-led delivery, not a demonstrated email phishing incident.
3. Reconstructing the Redirect Chain
Legitimate Website
www.petitfute.comReported sequence · open detailsRole: Publisher context; benign infrastructure
Evidence: Article existence independently checked; ad occurrence reported
The hiking article hosts the reported ad. This node is contextual, not a blocklist recommendation.
Google Ads Redirect
adclick.g.doubleclick.netReported sequence · open detailsRole: Legitimate advertising click infrastructure
Evidence: Infrastructure role documented by Google; this hop reported
A click-tracking service can precede an advertiser landing page. Its presence does not identify the advertiser or show a Google compromise.
Suspicious Landing Domain
pdf-nexus[.]com/Reported sequence · open detailsnexus/ download Role: Reported intermediate landing/download path
Evidence: Six public urlscan search records; campaign role reported
The supplied path suggests a PDF download workflow. We did not request the live site or verify HTTP status codes, content or ownership.
Executable Distribution
source-moonlig[.]com/Reported sequence · open detailsPDFDailyViewer.exe Role: Reported executable endpoint
Evidence: Reported only; bytes not independently obtained
An executable-looking path is not proof of a completed file transfer. No MIME type, Content-Disposition or redirect status is available.
Windows Installer
PDFConvertSetup_83179.exeReported sequence · open detailsRole: Reported downloaded filename
Evidence: Reported SHA-256; not independently recomputed
The endpoint basename and local filename differ. Content-Disposition, a rename or a distinct sample could explain it; byte equivalence is unverified.
No response codes, HTTP schemes, exact redirect URLs or individual click tokens were provided. The diagram therefore deliberately avoids inventing 301/302 responses or connecting the download to a verified byte stream. Domains are neutralized and no suspicious endpoint is clickable.
4. Advertising Infrastructure
Google's own documentation identifies adclick.g.doubleclick.net in advertising click strings. That independently establishes its legitimate infrastructure role, not the provenance of this particular campaign. Google Ad Manager and Campaign Manager click handling can be present in different ad-delivery arrangements; this host alone does not establish the exact Google Ads account or buying platform. Google Ad Manager: finding an ad click string.
| Parameter | Reported value |
|---|---|
| campaign_id | 24068518484 |
| adgroup_id | 200248953322 |
| creative_id | 818476812635 |
| placement_id | www.petitfute.com |
These identifiers were supplied as values observed in the advertising chain. They can help a platform investigate an abuse report, but do not prove advertiser identity, account ownership or authorization. Individual click identifiers, transient tokens and unnecessary tracking parameters have been excluded.
Blocking Google click infrastructure or the travel publisher would create substantial collateral damage. Any defensive action should focus on the two reported suspicious domains and sample identifier, with scope and expiry reviewed by an analyst.
5. Suspicious Domain Analysis
pdf-nexus[.]com is the reported intermediate domain; source-moonlig[.]com is the reported distribution host. Their appearance in the supplied sequence is the basis for investigation. Registry dates and nameservers were checked as described below. Registrant identity, historical ownership, hosting relationships, certificate history and common control were not verified. A software-themed label is not an attribution signal.
Registry context: independently checked at 21:14 UTC
| Domain | Registration event (UTC) | Listed nameservers |
|---|---|---|
pdf-nexus[.]com | JAMIE.NS.CLOUDFLARE.COMSONNY.NS.CLOUDFLARE.COM | |
source-moonlig[.]com | JOSE.NS.CLOUDFLARE.COMSERENITY.NS.CLOUDFLARE.COM |
The distribution domain's registry registration event is approximately one week before the reported observation date. This is contextual information, not proof of maliciousness or of the campaign's start. The domains list different nameserver pairs at a widely used DNS provider; this establishes neither shared ownership nor a common origin server. A current registry record does not reconstruct every historical ownership change. Sources: Verisign .com registry: pdf-nexus[.]com RDAP record and Verisign .com registry: source-moonlig[.]com RDAP record.
Read-only public checks: 13 October 2026, approximately 21:00 UTC
| Platform | Coverage and result | Interpretation |
|---|---|---|
| urlscan.io | Domain search: six indexed records for pdf-nexus[.]com; zero for source-moonlig[.]com. The returned record times range from 23 September to 13 October 2026. | Confirms indexed observations only. Two existing detailed-result retrieval attempts failed; no full chain, verdict or sample match verified. |
| AlienVault OTX | Public metadata queries returned zero pulses for both domains and the supplied SHA-256. | No accessible pulse association in these responses; not a clean verdict. |
| VirusTotal | Both domains and hash: API returned HTTP 401. No configured key found in the project inputs checked. | Reputation control not completed; no detection count available. |
| URLhaus | Both domain queries: HTTP 401. | Control not completed; no presence/absence claim. |
| ThreatFox | Domain and hash queries: HTTP 401. | Control not completed; no malware association verified. |
| Hybrid Analysis | Hash report URL reachable, but no substantive sample result verified. | Control not completed. |
| ANY.RUN | Public submissions interface reachable; no hash-specific result verified. | Control not completed. |
The dates above are scan-record timestamps, not domain creation dates or the beginning of this campaign. These checks searched existing information only: we submitted neither a URL for scanning nor a binary. Search absence and missing access cannot establish safety. Sources: urlscan.io: existing records for pdf-nexus[.]com, urlscan.io: existing scan search and API documentation, OTX: domain metadata for pdf-nexus[.]com, OTX: domain metadata for source-moonlig[.]com and OTX: metadata for the supplied SHA-256.
6. Payload Identification
The reported local filename is PDFConvertSetup_83179.exe. The supplied SHA-256 is:
b280a0ac0810698e57425d86141fac8985d92aa424b755f2c4010be2027d3ec9A cryptographic hash is a strong identifier only once calculated over the actual bytes. Here it is a supplied identifier, not a freshly computed digest. File length, SHA-1/MD5, Authenticode signer, certificate chain and signing time are unknown. No binary was executed, downloaded from the reported endpoint, uploaded to Ghost or submitted to a sandbox.
The requested resource ends in PDFDailyViewer.exe, whereas the reported local file has a different name. HTTP download headers could legitimately supply that filename, but without the original response or identical hashes this linkage cannot be independently asserted. Filename-only alerts are weak signals and should be corroborated with hash and origin telemetry.
7. Preliminary Static Analysis
| Property | Reported value | Interpretation / verification needed |
|---|---|---|
| Container / architecture | PE32 / x86 | Reported. PE32 plus an x86 machine field would establish the container; .NET execution flags must also be checked before asserting an x86-only managed target. |
| Managed technology / framework | .NET / .NET Framework 4.8 | Reported. Confirm CLR metadata and TargetFrameworkAttribute; a generic runtime version string is insufficient to establish the target framework. |
| Assembly / product | MyPdfSoftware.Setup / My PDF Software | Reported metadata labels, not authenticated developer identity or attribution. |
| PE timestamp | 2063-04-22 | Reported future date. Not a reliable compilation date; header timestamps may be manipulated or non-chronological. |
| .text entropy | Approximately 7.993 bits per byte | Reported, not recalculated. Near the eight-bit maximum may reflect compressed/encrypted data or an installer wrapper; it does not prove packing or malware. |
| Manifest privilege | asInvoker | Reported. Requests the invoking process's level; does not prove harmlessness, lack of later elevation or persistence. |
| Authenticode / imports / resources | Not checked | The file is absent. No unsigned status, signer, import table, embedded payload or resource contents claimed. |
The PE structure and manifest semantics provide a way to interpret the report, but are not substitutes for inspecting this file. See Microsoft: PE and COFF format and Microsoft: application manifests. Obfuscation, encoded resources and embedded payloads cannot be determined from the supplied entropy value alone.
References needing context, not behavior verdicts
VirtualAlloc: a memory-allocation API. A real P/Invoke declaration, call site and cross-process execution evidence would need inspection. Its name alone does not establish injection. Microsoft: VirtualAlloc.HttpClient: a managed HTTP client class. No embedded destination, request or C2 exchange has been verified.RegistryKey: registry access support. A specific key, value, write operation and purpose are required before claiming persistence.ProcessStartInfo: process-launch configuration. Arguments, target executable and an executed call path are needed to characterize behavior.
All four names were previously reported. Their presence, origin and usage remain unverified: they may be strings, managed metadata, native imports, bundled-library references or reachable code. The next analysis should map metadata tokens and P/Invoke entries to IL call sites, inspect resources and recursively identify embedded objects without executing them. A separate isolated Windows lab would be required for any approved dynamic analysis.
8. MITRE ATT&CK Mapping
These are investigation candidates, not a list of observed adversary behaviors. ATT&CK labels should be promoted only when supporting artifacts exist.
T1189 — Drive-by Compromise
Candidate; not confirmed
A reported ad-to-download route alone is insufficient. No browser exploitation or successful compromise is demonstrated.
T1204.002 — User Execution: Malicious File
Hypothesis; execution not observed
An EXE is reportedly offered. Neither user execution nor maliciousness of that file has been established.
T1105 — Ingress Tool Transfer
Candidate; not confirmed
Reported external file delivery suggests a transfer lead, but no compromised environment, secondary payload transfer or C2 channel has been demonstrated.
T1055 — Process Injection
Not confirmed; no supporting behavior
A reported VirtualAlloc reference is insufficient. No remote memory writes, thread creation or other injection evidence is available.
9. Indicators of Compromise
Documented investigation indicators; inclusion does not certify maliciousness. The two legitimate infrastructure hosts are deliberately excluded. Values are neutralized for reading. Copy raw restores the original indicator to your clipboard for authorized tooling; it never opens a destination. Domain/path schemes were not supplied and are not invented.
| Type | Indicator | Role | Confidence | Copy |
|---|---|---|---|---|
| Domain | pdf-nexus[.]com | Reported intermediate landing domain | Reported association; maliciousness unconfirmed | |
| Domain | source-moonlig[.]com | Reported executable distribution host | Reported association; maliciousness unconfirmed | |
| Host/path | pdf-nexus[.]com/nexus/download | Reported landing/download path; scheme not supplied | Reported; not independently replayed | |
| Host/path | source-moonlig[.]com/PDFDailyViewer[.]exe | Reported executable endpoint; scheme not supplied | Reported; bytes not retrieved | |
| Filename | PDFDailyViewer.exe | Endpoint basename, not a verified local sample name | Low specificity; filename only | |
| Filename | PDFConvertSetup_83179.exe | Reported downloaded sample filename | Low specificity; identity unverified | |
| SHA-256 | b280a0ac0810698e57425d86141fac8985d92aa424b755f2c4010be2027d3ec9 | Supplied sample identifier | Limited: supplied hash; not independently recomputed |
Exports contain only these documented indicators, neutralized where relevant, with provenance and confidence. They are not a feed of confirmed malicious infrastructure. Without JavaScript, select an indicator manually or use the static export text below.
Plain-text IOC export: CSV
type,indicator,role,confidence,evidence
Domain,pdf-nexus[.]com,Reported intermediate landing domain,Reported association; maliciousness unconfirmed,Investigation brief supplied to News4Cyber
Domain,source-moonlig[.]com,Reported executable distribution host,Reported association; maliciousness unconfirmed,Investigation brief supplied to News4Cyber
Host/path,pdf-nexus[.]com/nexus/download,Reported landing/download path; scheme not supplied,Reported; not independently replayed,Investigation brief supplied to News4Cyber
Host/path,source-moonlig[.]com/PDFDailyViewer[.]exe,Reported executable endpoint; scheme not supplied,Reported; bytes not retrieved,Investigation brief supplied to News4Cyber
Filename,PDFDailyViewer.exe,"Endpoint basename, not a verified local sample name",Low specificity; filename only,Investigation brief supplied to News4Cyber
Filename,PDFConvertSetup_83179.exe,Reported downloaded sample filename,Low specificity; identity unverified,Investigation brief supplied to News4Cyber
SHA-256,b280a0ac0810698e57425d86141fac8985d92aa424b755f2c4010be2027d3ec9,Supplied sample identifier,Limited: supplied hash; not independently recomputed,Investigation brief supplied to News4Cyber
Plain-text IOC export: JSON
[
{
"type": "Domain",
"indicator": "pdf-nexus[.]com",
"role": "Reported intermediate landing domain",
"confidence": "Reported association; maliciousness unconfirmed",
"evidence": "Investigation brief supplied to News4Cyber"
},
{
"type": "Domain",
"indicator": "source-moonlig[.]com",
"role": "Reported executable distribution host",
"confidence": "Reported association; maliciousness unconfirmed",
"evidence": "Investigation brief supplied to News4Cyber"
},
{
"type": "Host/path",
"indicator": "pdf-nexus[.]com/nexus/download",
"role": "Reported landing/download path; scheme not supplied",
"confidence": "Reported; not independently replayed",
"evidence": "Investigation brief supplied to News4Cyber"
},
{
"type": "Host/path",
"indicator": "source-moonlig[.]com/PDFDailyViewer[.]exe",
"role": "Reported executable endpoint; scheme not supplied",
"confidence": "Reported; bytes not retrieved",
"evidence": "Investigation brief supplied to News4Cyber"
},
{
"type": "Filename",
"indicator": "PDFDailyViewer.exe",
"role": "Endpoint basename, not a verified local sample name",
"confidence": "Low specificity; filename only",
"evidence": "Investigation brief supplied to News4Cyber"
},
{
"type": "Filename",
"indicator": "PDFConvertSetup_83179.exe",
"role": "Reported downloaded sample filename",
"confidence": "Low specificity; identity unverified",
"evidence": "Investigation brief supplied to News4Cyber"
},
{
"type": "SHA-256",
"indicator": "b280a0ac0810698e57425d86141fac8985d92aa424b755f2c4010be2027d3ec9",
"role": "Supplied sample identifier",
"confidence": "Limited: supplied hash; not independently recomputed",
"evidence": "Investigation brief supplied to News4Cyber"
}
]10. Detection and Hunting
Use the reported domains and hash to identify exposure, then correlate browser, DNS/proxy and endpoint telemetry by asset, user and time. A DNS hit is not a download; a download is not execution; execution is not proof of a particular malware behavior. Preserve the original event records and validate the file's identity before assigning incident severity.
The following SPL searches use standard Splunk syntax and example index names. They have not been executed against a Splunk deployment. Adapt extraction, timestamps, indexes and field mappings before operational use; empty results may reflect missing telemetry. Splunk: comparison and conditional evaluation functions.
DNS queries: exact domains and their subdomains
index=dns earliest=-7d
| eval queried=lower(replace(coalesce(query,query_name,QueryName),"[.]$",""))
| where match(queried,"(^|[.])(pdf-nexus[.]com|source-moonlig[.]com)$")
| stats count min(_time) as first_seen max(_time) as last_seen values(queried) as domains by src
| convert ctime(first_seen) ctime(last_seen)Replace index=dns and src with your actual DNS index and client field. Coalesce accepts common query-field aliases; an unextracted or different field yields no matches. Subdomains are a hunting expansion, not additional observed IOCs.
Proxy events: the two reported hosts
index=proxy earliest=-7d
| eval observed_url=coalesce(url,uri,request_url)
| rex field=observed_url "(?i)^(?:https?://)?(?<parsed_host>[^/:?#]+)"
| eval ioc_host=lower(coalesce(dest_host,url_domain,parsed_host))
| where in(ioc_host,"pdf-nexus.com","source-moonlig.com")
| stats count min(_time) as first_seen max(_time) as last_seen values(observed_url) as requested_urls by src ioc_host
| convert ctime(first_seen) ctime(last_seen)Adapt the proxy index, source address and field names. This assumes dest_host/url_domain are bare hostnames, without ports. CONNECT-only or TLS/SNI logs may reveal the domain but not a path. URL paths do not prove a completed download.
Endpoint hash: normalized fields or Sysmon Hashes
index=endpoint earliest=-7d
| rex field=Hashes "(?i)(?:^|,)SHA256=(?<sysmon_sha256>[a-f0-9]{64})(?:,|$)"
| eval observed_sha256=lower(coalesce(SHA256,sha256,sysmon_sha256))
| where observed_sha256="b280a0ac0810698e57425d86141fac8985d92aa424b755f2c4010be2027d3ec9"
| stats count min(_time) as first_seen max(_time) as last_seen values(Image) as images values(TargetFilename) as files by host
| convert ctime(first_seen) ctime(last_seen)Requires a populated SHA256/sha256 field or the SHA256 entry in an extracted Sysmon Hashes field. Not all Sysmon event types contain hashes; do not assume FileCreate (event 11) records a SHA-256. Enrich file telemetry using EDR or trusted offline hashing where necessary.
Triage actions
- Review scoped domain matches, recording the actual URL, response and originating process where available. Preserve click identifiers privately; redact them in shared reports.
- Obtain endpoint file telemetry and recompute the supplied hash in an authorized offline analysis environment. Verify Authenticode, Mark-of-the-Web and whether the file was launched.
- If execution is established, collect child processes, subsequent downloads and registry writes. Do not infer persistence from a class name or injection from an allocation API.
- Consider time-bounded domain blocking pending review, subject to business impact. Avoid blocklisting Google advertising infrastructure or Petit Futé.
- Report the specific ad to the publisher and advertising platform with campaign-level identifiers and private supporting captures through their approved channels.
11. Limitations and Unanswered Questions
- No original HAR, ad screenshot or sample bytes: the observed campaign sequence, hash and static properties cannot be independently reproduced.
- No live suspicious-site requests or sample execution; no Authenticode check, extracted strings, imports, resources, embedded URLs or payload analysis completed.
- Current registry registration events and nameservers were verified; historical WHOIS/registrant changes, passive DNS, certificate linkage, infrastructure ownership and actor attribution remain unverified.
- Public reputation visibility is incomplete and time-dependent. Zero pulses/search results do not exclude malicious activity or private records.
- No evidence establishes exploit-based entry, user execution, process injection, persistence, C2, data theft or a malware family.
The priority next artifacts are a timestamped redacted HAR, screenshot of the ad, original download response and the preserved sample from an authorized path. Hash matching, provenance and static call-path analysis should precede a stronger verdict. Any dynamic execution or third-party sample submission requires separate authorization and a dedicated laboratory.
12. Conclusion
The supplied observation describes a plausible advertising-led PDF download funnel ending in a Windows executable. Public references corroborate the publisher page and the legitimate role of Google's click infrastructure; read-only lookups confirm limited indexed information about the intermediate domain and registry registration events for both domains. They do not corroborate the complete redirect chain or establish that the file is malware.
The filename change, future timestamp and high reported entropy are useful investigative leads. They remain reported observations until the original artifacts can be inspected. News4Cyber's current position is therefore a preliminary suspected malvertising investigation, with actionable hunting indicators and explicit evidence gaps, rather than a claim of a confirmed infection or compromise of Google or Petit Futé.
13. References
Primary technical documentation and public metadata checked on 13 October 2026. The original investigator's supplied brief is the source for campaign identifiers, redirect order and sample-specific properties; it is not an independently verified forensic artifact. No private click tokens are included.
- Petit Futé: the referenced hiking article
- Google Ad Manager: finding an ad click string
- Verisign .com registry: pdf-nexus[.]com RDAP record
- Verisign .com registry: source-moonlig[.]com RDAP record
- Microsoft: PE and COFF format
- Microsoft: application manifests
- Microsoft: VirtualAlloc
- MITRE ATT&CK: T1189
- MITRE ATT&CK: T1204.002
- MITRE ATT&CK: T1105
- MITRE ATT&CK: T1055
- urlscan.io: existing scan search and API documentation
- urlscan.io: existing records for pdf-nexus[.]com
- OTX: domain metadata for pdf-nexus[.]com
- OTX: domain metadata for source-moonlig[.]com
- OTX: metadata for the supplied SHA-256
- Splunk: comparison and conditional evaluation functions
- VirusTotal: retrieving an existing file report
- URLhaus: community API
- ThreatFox: community API
Revision policy: update the evidence labels and last-review date when new artifacts are verified. Ghost manages publication dates, canonical URLs and Article metadata natively; the draft has no publication timestamp.