A tax notice that got its own timezone wrong
The message impersonates the Income Tax Department, Government of India. It is bilingual Hindi and English, carries a memorandum number, cites two real sections of the Income Tax Act, and threatens prosecution within 72 hours. It is also, in several places, careless.
From: Direct Tax Administration Cell <spyvvlhi@outlook.com> ← free mailbox To: xxx@gajshield.com Subject: Urgent Tax Notice Date: Tue, 1 Sep 2026 16:08:11 +0800 ← India is +0530 X-Mailer:Supmailer 47.0.2 ← bulk mailer Received:from SEYPR02CU001.outbound.protection.outlook.com (mail-koreacentral… [52.103.74.79]) Content-Type: multipart/alternative
- TELL 01The body signs off as Raj Kumar Sharma, Assistant Commissioner of Income Tax, with a contact address at
incometax.gov.in— while the message itself is sent from a freeoutlook.comaccount. - TELL 02The
Dateheader is+0800and the mail is relayed through Microsoft’s Korea Central region. A genuine notice from Aayakar Bhawan, New Delhi would be+0530. - TELL 03The
text/plainalternative is not plain text at all — it opens with leaked CSS (-webkit-text-size-adjust,mso-table-lspace) because the builder dumped the HTML body through a careless converter. - TELL 04The invented reference
No. TAX/GST-IT/2026-204and a flat 72-hour deadline supply the urgency. Sections 271(1)(c) and 276C are real, which is what makes them persuasive.
One detail deserves emphasis for anyone tuning a mail gateway: because the message was sent through a genuine Outlook account, SPF and DKIM pass. Authentication checks alone will not stop this. The signal is in the mismatch between who the message claims to be and the infrastructure that carried it.
The email carries no attachment. Everything hangs on a single link.
From one link to a signed process running attacker code
The link was still serving at the time of analysis. Each stage below was retrieved and hashed directly.
-
01
spam.1788250113.19291PhishingRFC 822
The quarantined message. No attachment, no exploit — a delivery vehicle for one URL.
-
02
hxxps://dajiangcq[.]com/download/7d03c28a7cLivenginx
Serves
application/octet-streamwith aContent-Dispositionfilename. No landing page, no redirect — the URL is a direct file handout. -
03
tax-documents7.zipMaliciousDeflate
A single-entry archive. No password, no decoy document to lend it cover.
-
04
tax-documents8.exeDropperPE32+ x86-6411 sections
An almost empty program whose real cargo sits in its resource section. Imports
WININET, and carries the format string%s\libvlc.dll. -
05
vlc.exe + libvlc.dll, written side by side1 genuine1 counterfeit
The dropper unpacks a real, validly signed VLC media player next to a fake
libvlc.dll. Windows resolves the DLL from the application directory first, so launching genuine VLC executes attacker code inside a trusted, signed process.
Eight kilobytes of program, a megabyte of cargo
The clearest structural signal in tax-documents8.exe is its shape. Executable code accounts for well under one percent of the file. Almost everything else is resource data.
Parsing the resource directory gives exact boundaries for what it carries. This matters: carving on MZ markers alone truncates each file at its last raw section and silently discards the overlay, producing hashes that match nothing on disk.
| Entry | Offset | Size | Contents | MD5 |
|---|---|---|---|---|
| RCDATA 101 | 19,664 | 1,046,424 | PE32+ EXE, 14 sections Genuine VLC |
f0a4d5c3492115bfe2f346bc7bdce396 |
| RCDATA 102 | 1,066,088 | 116,096 | PE32+ DLL, 8 sections Counterfeit |
992228aa3c313c2ee8d85a3ec8e693c0 |
| RT_MANIFEST | 1,182,184 | 1,167 | Application manifest (XML) | 5aa04ce935e78505e230765e85c34355 |
Three reasons the DLL is not VideoLAN’s
Both embedded files claim the same vendor. Both carry the string 1996-2025 VideoLAN and VLC Authors, both name themselves in their version resources, and both appear signed. Telling them apart takes more than metadata.
| Property | RCDATA 101 — vlc.exe | RCDATA 102 — libvlc.dll |
|---|---|---|
| Build toolchain | .buildid, .edata, /4 — MinGW | .00cfg — MSVC (CFG) |
| Exports | 1 — WinMain | 316 — all libvlc_* |
| Code section | 744,960 b | 59,904 b |
| Imports | standard VLC set | KERNEL32, ADVAPI32, msvcrt, libvlc.dll |
| Certificate table | 23,424 b | 23,424 b |
- 01Wrong toolchain. VLC ships as a MinGW build, and the bundled
vlc.exeshows exactly that signature layout. The DLL carries.00cfg, a Control Flow Guard section emitted by MSVC. VideoLAN did not build it. - 02Proxy shape. It re-exports all 316
libvlc_*symbols and then importslibvlc.dllitself, forwarding calls to the real library so VLC keeps working. It does this in 59,904 bytes of code — nowhere near enough to implement the API it advertises. - 03The signature is borrowed. Both certificate tables are 23,424 bytes. Extracted and hashed, they are the same bytes.
One certificate, two files
The certificate blob was lifted out of each file at its recorded offset and hashed independently.
- File size
- 1,046,424 bytes
- Cert offset
- 1,023,000
- Cert size
- 23,424 bytes
- Signer
- C=FR, L=Paris, O=VideoLAN, CN=VideoLAN
- Issuer
- DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1
- File size
- 116,096 bytes
- Cert offset
- 92,672
- Cert size
- 23,424 bytes
- Signer
- C=FR, L=Paris, O=VideoLAN, CN=VideoLAN
- Issuer
- DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1
The attacker copied VideoLAN’s certificate table verbatim onto a file VideoLAN never built.
The certificate itself is real. It chains to DigiCert Trusted Root G4 and names VideoLAN in Paris, with Sectigo timestamping. Nothing about it is forged — it was simply moved.
What this cannot survive is verification. An Authenticode signature commits to a hash of the file it was issued for, so the copied blob will not validate against the DLL’s contents. But it is enough to defeat any check that asks only whether a file has a signature, or reads the publisher name out of it without verifying the digest. That shortcut appears in allowlists, in software inventory tooling, and in more than one EDR policy.
What to block, and what to leave alone
Three MD5 signatures cover the malicious files in this chain. A fourth hash in the sample must be deliberately excluded.
fc5ddf3a3e82778ee71771fb7394dfb6:458611:…virus.fc5ddf3a… tax-documents7.zip 3558891c163b9f3b8e39173ae6f84c1b:1195280:…virus.3558891c… tax-documents8.exe 992228aa3c313c2ee8d85a3ec8e693c0:116096:…virus.992228aa… libvlc.dll (fake)
Do not sign f0a4d5c3492115bfe2f346bc7bdce396
That hash belongs to the genuine, unmodified VLC media player carried inside the dropper. It is a legitimate binary that happens to travel with malware. Signing it would flag every real VLC installation in your estate.
Bundling a clean signed application alongside a malicious library is the entire point of a sideloading loader. Hashing everything a sample contains, without asking what each file actually is, converts that into a false-positive campaign against your own users.
Hashes are the weakest layer here. The tax-documents7 and tax-documents8 naming implies a builder that has already produced at least eight variants, so these three values have a short useful life. More durable controls, in rough order:
- 01Block the domain.
dajiangcq[.]comis the one indicator that survives a rebuild of the payload. - 02Verify signatures, don’t just detect them. Flag any PE whose Authenticode digest fails to validate while carrying a well-known publisher’s certificate. This catches the technique rather than the sample.
- 03Watch for the sideloading shape. An archive that delivers a signed vendor executable together with a same-vendor DLL that is not that vendor’s build is a strong pattern on its own.
- 04Tune mail on mismatch, not on authentication. SPF and DKIM pass here. Government-authority impersonation from consumer mailboxes, bulk-mailer artefacts, and timezone-to-claimed-origin mismatches are the usable signals.
Indicators
URLs are defanged. Hashes are MD5 unless marked otherwise.
| Indicator | Type | Size | Assessment |
|---|---|---|---|
| dajiangcq[.]com | Host | — | Payload delivery |
| hxxps://dajiangcq[.]com/download/7d03c28a7c | URL | — | Direct download |
| c0a1549e5675558738683899b48efaf1 | 26,412 | Phishing lure | |
| fc5ddf3a3e82778ee71771fb7394dfb6 | ZIP | 458,611 | Malicious |
| 3558891c163b9f3b8e39173ae6f84c1b | EXE | 1,195,280 | Dropper |
| 992228aa3c313c2ee8d85a3ec8e693c0 | DLL | 116,096 | Sideloaded payload |
| f0a4d5c3492115bfe2f346bc7bdce396 | EXE | 1,046,424 | Genuine VLC — do not block |
| 30b27babb1cb1a7070968850789e37e7 | Cert blob | 23,424 | Copied onto both files |
| spyvvlhi@outlook.com | Sender | — | Impersonates ITD |