Head Mare — PhantomCore & PhantomGraph via Trojanized TrueConf Server
Executive Summary
Head Mare — a hacktivist/APT-style threat group — has been exploiting two vulnerabilities in unpatched TrueConf Server videoconferencing software since at least July 2026, per Kaspersky ICS-CERT (published 2026-08-12; Kaspersky's own advisories dated 2026-08-11 and 2026-08-07). KLCERT-26-057 (CVE-2026-72529, CWE-306 missing authentication, CVSS 3.1 9.8: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) lets an unauthenticated remote attacker with network access to TCP/4307 — open by default — invoke an undocumented function and run a malicious script inside TrueConf's isolated processing environment. KLCERT-26-058 (CVE-2026-72530, CWE-94 code injection) then lets that script break out of the isolated environment entirely, executing arbitrary code as NT AUTHORITY\SYSTEM on the underlying host.
From SYSTEM, the actor replaces the legitimate …\public\js\locale.php file with a PHP web shell for persistent access, then substitutes the TrueConf Client installer hosted on the compromised server with a trojanized, non-digitally-signed build. Any org member who subsequently connects to that server and accepts the prompted "update" downloads a backdoored installer carrying PhantomCore (a DLL-based backdoor performing system reconnaissance, credential theft including LSASS memory dumping, and C2) and/or PhantomGraph (a two-module backdoor — SysExcSvc.dll / SysReadSvc.dll — that blends its command-and-control with legitimate Microsoft OneDrive traffic). A related Linux backdoor/rootkit variant, deployed against TrueConf Server's Linux build, uses GitHub as its C2 channel and hides via systemd services named to resemble Microsoft OMI and Acronis Cyber Protect components.
Targeting is concentrated on Russian organizations in instrumentation, electronics, transportation, energy, IT, and software development. TrueConf shipped fixed versions 5.3.9 / 5.4.9 / 5.5.5 on 2026-06-18 — roughly seven weeks before Kaspersky's public disclosure — meaning any organization still unpatched at disclosure time had already had a known exploitation window against it.
Highest-value defensive angle: the SysExcSvc/SysReadSvc DLL-drop-plus-service-registration pattern and the PhantomCore DLL masquerading as a Windows CRT redirection stub in the TrueConf client profile are both exact, low-noise behavioral signatures (Q3–Q5 below) that fire regardless of C2 domain rotation, and are strong Custom IOA candidates.
⚠ Patch TrueConf Server to 5.3.9 / 5.4.9 / 5.5.5 (or later) first. Every detection and hardening control in this pack compensates for a vulnerability chain that has had a public fix since 2026-06-18 — closing it removes the entire initial-access vector in one step.
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry Forward |
|---|---|---|---|
| 1 | Kaspersky ICS-CERT report (direct fetch) | Primary disclosure: actor, attack chain, malware components, core IOC set | yes |
| 1 | Securelist (Kaspersky GReAT) technical writeup (direct fetch) | Most complete IOC set observed — 20 hashes, 15 file paths, detection names, full domain/IP list | yes |
| 1 | KLCERT-26-057 advisory (direct fetch) | CVE-2026-72529, CVSS 3.1 9.8 vector, affected/patched versions | yes |
| 1 | KLCERT-26-058 advisory (direct fetch) | CVE-2026-72530, CWE-94, CVSS vector (numeric score field rendered anomalously — flagged, not carried forward as-is) | partial |
| 1 | Kaspersky press release (direct fetch) | Corroborates actor name, timeline, patch dates, top-line recommendations | yes |
| 2 | The Hacker News writeup | Corroborates chain + CVSS 9.3/9.5 figures; separately reports an unrelated "HelloNet"/ViPNet campaign in the same article | partial |
| 2 | BleepingComputer | Corroborates chain, sectors, PhantomGraph OneDrive C2, LSASS dumping; no independent IOC table | partial |
| 2 | Rescana threat-intel writeup | Corroborates core hash/IP/domain set independently | yes |
| 2 | GBHackers analysis | Corroborates chain, adds Linux-backdoor GitHub-C2 detail; one truncated 7-char hash fragment excluded as unverifiable | partial |
Verification notes (per standing practice — vendor claims are checked, not assumed):
- CVE numbers (CVE-2026-72529 / CVE-2026-72530) appear on the direct Kaspersky ICS-CERT advisory pages and are corroborated independently by The Hacker News — treated as confirmed.
- KLCERT-26-058's advisory page rendered a CVSS numeric base score of
0.0to the fetch tool alongside a high-severity vector string (AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H) — almost certainly a page-rendering artifact, not the actual score. This pack cites the corroborated 9.5 figure from The Hacker News and flags the discrepancy rather than silently using either raw number. - The Hacker News article also covers a separate, unrelated "HelloNet" campaign against ViPNet update infrastructure (HelloInjector/HelloProxy/HelloExecutor/HelloCleaner/HelloBackdoor). That is a different actor and toolset and is explicitly out of scope for this pack — not included in any IOC, query, or hardening control below.
- One GBHackers-reported "hash" for a Linux backdoor variant (
4333f52) is only 7 hex characters — not a valid full MD5 — and does not match either confirmed Linux-backdoor MD5 in the Securelist source. Dropped as unverifiable rather than shipped. - Every atomic indicator shipped in §4/§10 traces to at least one saved source snapshot in
HeadMare-PhantomCore-Hunt-sources/(fetched 2026-08-25); see §18 for the full source list with access dates.
Hunt Brief & Attack Chain
Hunt hypotheses (ordered by fidelity)
- H1 (high): TrueConf Server process spawns a shell or script interpreter — no legitimate TrueConf workflow does this; strongly indicates KLCERT-26-057/058 exploitation. Falcon:
ProcessRollup2. - H2 (high): A PhantomCore DLL is written to
%LOCALAPPDATA%\TrueConf\Client\api-ms-win-crt-time-l1-1-0-2.dll— an exact-name masquerade of a Windows CRT redirection stub that never legitimately appears in a per-user app-data folder. Falcon:PeFileWritten/NewExecutableWritten. - H3 (high): PhantomGraph's
SysExcSvc.dll/SysReadSvc.dllpair is written toC:\Windows\System32\inetsrv\and registered as Windows services. Falcon: file-write +ProcessRollup2(sc.exe). - H4 (high): A trojanized, unsigned TrueConf client installer executes on an endpoint. Falcon:
ProcessRollup2+ Authenticode enrichment. - H5 (high): Registry persistence is written to the specific CLSID
{0340F119-A598-4ed9-B0AC-6F6A12D3E755}\InprocServer32key observed in this campaign. Falcon:RegGenericValueUpdate/AsepValueUpdate. - H6 (medium-high): LSASS-targeting command lines (credential dumping) execute on a host that also shows H1–H3. Falcon:
ProcessRollup2. - H7 (medium): A non-browser, non-OneDrive-client process resolves/connects to OneDrive or Microsoft Graph domains — the PhantomGraph C2 blending channel. Falcon:
DnsRequest+ProcessRollup2join. - H8 (medium): On Linux hosts, an unexpected process (not git/curl/CI tooling) resolves GitHub or raw.githubusercontent.com — the Linux backdoor's C2 channel. Falcon:
DnsRequest+ProcessRollup2join. - H9 (medium): A systemd service is enabled under the names
omiclusterorschedul2-bin, mimicking Microsoft OMI / Acronis Cyber Protect. Falcon:ProcessRollup2(systemctl).
Attack chain
| Step | Action | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 | Unauthenticated connection to TrueConf Server on TCP/4307 | Firewall/proxy logs, TrueConf application logs (no Falcon visibility into the app-layer protocol) | N6 — network egress/ingress log review for unexpected 4307 sources |
| 2 | KLCERT-26-057: malicious script executes inside TrueConf's isolated environment | TrueConf app/audit logs (sandboxed execution; not host-level EDR-visible until step 3) | N1 — TrueConf application-log review |
| 3 | KLCERT-26-058: sandbox escape → code execution as NT AUTHORITY\SYSTEM | ProcessRollup2 — first host-visible moment; unexplained SYSTEM-context children of the TrueConf process | Q1 / H1 |
| 4 | …\public\js\locale.php replaced with a PHP web shell | File integrity monitoring / web-server access logs (not a PE — no Falcon file-write event covers arbitrary script content) | N2 / N3 — FIM + web-log review (documented gap for CQL) |
| 5 | Legitimate TrueConf Client installer on the server replaced with a trojanized, unsigned build | ProcessRollup2 + Authenticode enrichment | Q2 / H4 |
| 6 | Org member connects to compromised server, downloads/runs the fake "update" | ProcessRollup2 | Q2 / N5 — signature-verification sweep |
| 7 | PhantomCore DLL dropped & persisted via registry CLSID hijack | File-write + RegGenericValueUpdate | Q3, Q9 / H2, H5 |
| 8 | PhantomGraph DLL pair dropped to System32\inetsrv and registered as services | File-write + ProcessRollup2 (sc.exe) | Q4, Q5 / H3 |
| 9 | System reconnaissance + LSASS memory dumping for credential theft | ProcessRollup2 | Q6 / H6 |
| 10 | C2: PhantomGraph via Microsoft OneDrive; Linux backdoor via GitHub; SSH reverse tunnels observed | DnsRequest + NetworkConnectIP4 | Q7, Q8, Q11 / H7, H8 |
Gap: steps 1–2 (unauthenticated exploitation inside TrueConf's own sandboxed script environment) have no Falcon EDR visibility — they happen before or below the point where host telemetry is generated. Detection starts at step 3 (sandbox escape to SYSTEM). Close this gap with TrueConf/web-server application logging and network-layer monitoring of port 4307 (see §7 native hunts).
Consolidated IOC Table
| Type | Value | Confidence | Action | Context | Expiry |
|---|---|---|---|---|---|
| md5 | 4d27b4eb1c5dbb3d8160f29b8119523e | high | detect | Web shell (locale.php) | 2027-02-25 |
| md5 | 748c9f8cb1065000616204935f96207f | high | detect | Trojanized installer (trueconf_windows_update.exe) | 2027-02-25 |
| md5 | c5a460e4e68a088f6e51b2c6474642ec | high | detect | PhantomCore backdoor DLL | 2027-02-25 |
| md5 | 129462164a7d52e9ea8560b60f0412c5 | high | detect | PhantomCore artifact (doc.txt) | 2027-02-25 |
| md5 | ec0bf4a2186a88874e9f26f07cfeb532 | high | detect | PhantomCore artifact (usocacheddata.txt) | 2027-02-25 |
| md5 | b348642146ea34771e5785c5857950f5 | high | detect | PhantomCore variant | 2027-02-25 |
| md5 | c915cb6c2aeb863ee8479238e1644217 | high | detect | PhantomCore artifact (doc.txt) | 2027-02-25 |
| md5 | 0e79996d9483d1e44fea32b0a48c2c19 | high | detect | PhantomCore artifact (doc.txt) | 2027-02-25 |
| md5 | 2bb75c20e778eb5c416965bd4d4259b1 | high | detect | PhantomCore variant (trueconf_windows_client_x64 build) | 2027-02-25 |
| md5 | b3a6fee3307f1c26841fd5c603e2b013 | high | detect | PhantomCore artifact (usocacheddata.txt) | 2027-02-25 |
| md5 | 8fcc3e4ccbf1725d9989fb464abf3561 | high | detect | PhantomCore artifact (usocacheddata.txt) | 2027-02-25 |
| md5 | 489f43be558b2679284ceabed7adc4f3 | high | detect | PhantomGraph (sysexcsvc.dll) | 2027-02-25 |
| md5 | dd1fd2b459b97b7d59375cb8383cd19a | high | detect | PhantomGraph (sysreadsvc.dll) | 2027-02-25 |
| md5 | 0e4541c3153ec5ed01497f19cf4f63d0 | high | detect | PhantomGraph variant (sysexcsvc.dll) | 2027-02-25 |
| md5 | 12d4e8f5295f2ef7e0f9bfc0f4830939 | high | detect | PhantomGraph variant (sysexcsvc.dll) | 2027-02-25 |
| md5 | 7f267006cac10f341c356b62fe493527 | high | detect | PhantomGraph variant (sysexcsvc.dll) | 2027-02-25 |
| md5 | ee2861d5965e8730708cd1da8a93fa4c | high | detect | PhantomGraph variant (sysexcsvc.dll) | 2027-02-25 |
| md5 | c3a2abe8756910f42582b04a44ea3514 | high | detect | Linux backdoor (ELF) | 2027-02-25 |
| md5 | 43f435c3c437bc879a2d7d4634f43494 | high | detect | Linux backdoor (ELF) | 2027-02-25 |
| md5 | aee9642b45b099cb7f3053b9b680b425 | high | detect | Linux rootkit component | 2027-02-25 |
| ipv4 | 81.177.32.12 | high | detect | Head Mare C2 | 2027-02-25 |
| ipv4 | 194.87.239.71 | high | detect | Head Mare C2 (SSH observed) | 2027-02-25 |
| ipv4 | 194.87.93.153 | high | detect | Head Mare C2 (SSH observed) | 2027-02-25 |
| ipv4 | 38.244.205.244 | high | detect | Head Mare C2 | 2027-02-25 |
| ipv4 | 31.59.102.61 | high | detect | Head Mare C2 | 2027-02-25 |
| domain | penzadogshelter.site | high | detect | Head Mare C2 | 2027-02-25 |
| domain | trendy-market.site | high | detect | Head Mare C2 | 2027-02-25 |
| domain | bright-deals.site | high | detect | Head Mare C2 | 2027-02-25 |
| domain | nova-stream.site | high | detect | Head Mare C2 | 2027-02-25 |
| domain | rinomobile.ink | high | detect | Head Mare C2 | 2027-02-25 |
| domain | urbanpixel.store | high | detect | Head Mare C2 | 2027-02-25 |
| domain | flexish.shop | high | detect | Head Mare C2 | 2027-02-25 |
| domain | media-hub.today | high | detect | Head Mare C2 | 2027-02-25 |
| domain | cosmetic-deals.store | high | detect | Head Mare C2 | 2027-02-25 |
| domain | vks.gossopka.forum | high | detect | Head Mare C2 | 2027-02-25 |
| filepath | C:\Program Files\TrueConf Server\httpconf\site\public\js\locale.php | high | hunt | Web shell drop location | 2026-11-25 |
| filepath | C:\Windows\System32\inetsrv\SysExcSvc.dll / SysReadSvc.dll | high | hunt | PhantomGraph module drop location | 2026-11-25 |
| filepath | %LOCALAPPDATA%\TrueConf\Client\api-ms-win-crt-time-l1-1-0-2.dll | high | hunt | PhantomCore drop location (CRT-stub masquerade) | 2026-11-25 |
| filepath | /etc/systemd/system/omicluster.service, schedul2-bin.service | high | hunt | Linux backdoor persistence units | 2026-11-25 |
| filepath | /opt/acronis/bin/schedul2-bin ; /omi/bin/omicluster | high | hunt | Linux backdoor binary drop locations | 2026-11-25 |
| registry | HKEY_CURRENT_USER\Software\Classes\CLSID\{0340F119-A598-4ed9-B0AC-6F6A12D3E755}\InprocServer32 | high | hunt | Persistence key | 2026-11-25 |
| servicename | SysExcSvc, SysReadSvc | high | hunt | PhantomGraph service names | 2026-11-25 |
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| TrueConf Server (Windows) | Process execution, file-write, network (Falcon); app/audit logs (native) | Critical | Falcon has no visibility into TrueConf's own isolated script-execution sandbox (pre-escape); detection starts post-escape |
| TrueConf Server (Linux) | Process execution, file-write, network, DNS (Falcon); systemd/journal logs (native) | Critical | Same sandbox-visibility gap as Windows; Linux rootkit component may hide from userland enumeration |
| Windows endpoints running TrueConf Client | Process execution, file-write, registry, Authenticode enrichment | High | Low — well covered by Q2–Q6, Q9 |
| Microsoft OneDrive / M365 tenant (PhantomGraph C2) | DNS/network egress (Falcon endpoint side); Entra/Graph audit logs (cloud side, not Falcon-native) | Medium-High | Falcon only sees the local process-to-domain edge, not OneDrive-side API activity; needs M365/Entra correlation to see the full channel |
| GitHub (Linux backdoor C2) | DNS/network egress (Falcon endpoint side) | Medium | No GitHub-side visibility; repo/gist content used for C2 is invisible to EDR |
| LSASS / credential store on any compromised host | Process execution (commandline-based detection) | Critical | Low — commandline-pattern detection is well-established; direct memory-access telemetry not exposed in this data model |
ATT&CK Mapping
| Tactic | Technique ID | Technique Name | Observed Behavior |
|---|---|---|---|
| Initial Access | T1190 | Exploit Public-Facing Application | Unauthenticated RCE against TrueConf Server via TCP/4307 (KLCERT-26-057) |
| Privilege Escalation / Defense Evasion | T1611 | Escape to Host | Sandbox breakout from TrueConf's isolated environment to SYSTEM (KLCERT-26-058) |
| Persistence | T1505.003 | Web Shell | locale.php replaced with a PHP web shell |
| Initial Access / Persistence | T1195.002 | Compromise Software Supply Chain | Trojanized, unsigned TrueConf client installer served as a fake "update" |
| Defense Evasion | T1027 / T1036.005 | Obfuscated/Masqueraded Files | PhantomCore DLL named to match a legitimate Windows CRT redirection stub; unsigned installer |
| Persistence | T1543.003 | Windows Service | SysExcSvc / SysReadSvc registered as Windows services |
| Persistence | T1543.002 | Systemd Service | Linux backdoor units omicluster.service, schedul2-bin.service |
| Persistence | T1546.015 | Component Object Model Hijacking | Registry write to a specific CLSID's InprocServer32 |
| Credential Access | T1003.001 | OS Credential Dumping: LSASS Memory | PhantomCore performs LSASS memory dumping for credential theft |
| Discovery | T1082 / T1083 | System Information / File and Directory Discovery | PhantomCore system reconnaissance commands |
| Command and Control | T1102 / T1567.002 | Web Service / Exfiltration to Cloud Storage | PhantomGraph C2 blended into Microsoft OneDrive traffic |
| Command and Control | T1102.001 / T1567.001 | Dead Drop Resolver / Exfil to Code Repository | Linux backdoor C2 via GitHub |
| Command and Control / Lateral Movement | T1572 | Protocol Tunneling | SSH reverse tunnels observed post-exploitation |
Native Audit-Log Hunts
These checks cover attack-chain steps 1–2 and the web-shell drop (step 4) — none of which are visible in standard Falcon endpoint telemetry (see the coverage gap noted in §3).
| # | Hunt | Where | What to look for |
|---|---|---|---|
| N1 | TrueConf Server application/audit log review | TrueConf Server native logs | Unauthenticated sessions on TCP/4307; script-execution events inside the isolated environment with no corresponding authenticated user session |
| N2 | File integrity monitoring on the web root | FIM agent / Get-FileHash baseline sweep | Hash or mtime drift on ...\httpconf\site\public\js\locale.php and the ClientInstFiles\ directory outside a known maintenance/patch window |
| N3 | Web-server access log review | IIS/reverse-proxy logs in front of TrueConf, if present | POST requests to locale.php with unusual body content or source IPs outside expected client ranges |
| N4 | M365 / Entra Graph API audit review | Microsoft 365 Defender / Entra sign-in & audit logs, Cloud App Security | Graph API calls to OneDrive resources from app registrations / service principals not tied to normal end-user OneDrive sync activity, especially from IP ranges matching compromised TrueConf server egress |
| N5 | Fleet-wide Authenticode signature sweep | Get-AuthenticodeSignature against all TrueConf Client installation/update directories | Any TrueConf client binary with Status -ne 'Valid' or a missing publisher chain |
| N6 | Firewall/proxy egress log review | Perimeter firewall, DNS sinkhole, proxy logs | Any traffic to the 5 published C2 IPs or 10 domains in §4/§10 — covers hosts without Falcon coverage, and inbound connections to 4307 from unexpected sources |
CrowdStrike LogScale CQL Hunt Queries
Looks for: a TrueConf Server process spawning cmd/powershell/cscript/wscript/mshta/rundll32/reg — the first host-visible moment of KLCERT-26-057/058 exploitation.
// HUNT: TrueConf Server process spawning a command or script interpreter (KLCERT-26-057/058 RCE + sandbox escape) // MITRE: T1190, T1611, T1059 // CONF: high // FP: low // COST: low // REQUIRES: ProcessRollup2 (process execution telemetry) on TrueConf Server hosts // FALSE POSITIVES: administrator-run maintenance scripts launched from a TrueConf Server console session #event_simpleName = ProcessRollup2 | ParentBaseFileName = /^trueconf.*\.exe$/i | FileName = /^(cmd|powershell|pwsh|cscript|wscript|mshta|rundll32|reg)(\.exe)?$/i | table([@timestamp, aid, ComputerName, ParentBaseFileName, FileName, CommandLine, UserName], limit=200) | sort(@timestamp, order=desc)
Looks for: a TrueConf client/installer/update binary executing with no Authenticode hash present. FP: unsigned internal test/pre-release builds pushed by IT.
// HUNT: TrueConf client installer executed without a valid Authenticode signature (trojanized "update") // MITRE: T1195.002, T1036.005, T1027 // CONF: high // FP: medium // COST: low // REQUIRES: ProcessRollup2 with Authenticode/signature enrichment enabled // FALSE POSITIVES: unsigned internal test/pre-release builds pushed by IT without a code-signing pass // TUNING: baseline AuthenticodeHashData population for known-good signed installers in your tenant first, then exclude ComputerName values used for internal packaging/QA before promoting to an IOA #event_simpleName = ProcessRollup2 | FileName = /^trueconf.*(client|update|install).*\.exe$/i | AuthenticodeHashData = "" | table([@timestamp, aid, ComputerName, FileName, ImageFileName, SHA256HashData, CommandLine, UserName], limit=200) | sort(@timestamp, order=desc)
Looks for: the exact PhantomCore drop path/filename — a fake api-ms-win-crt-time-l1-1-0-2.dll inside the per-user TrueConf client folder.
// HUNT: PhantomCore backdoor DLL dropped under the TrueConf client user-profile path, masquerading as a Windows CRT redirection stub // MITRE: T1036.005, T1574.002, T1027 // CONF: high // FP: low // COST: low // REQUIRES: PeFileWritten / NewExecutableWritten file-write telemetry // FALSE POSITIVES: none expected — genuine api-ms-win-crt-*.dll redirection stubs ship inside System32\downlevel, never inside a per-user TrueConf client folder #event_simpleName = /PeFileWritten|NewExecutableWritten/ | TargetFileName = /\\TrueConf\\Client\\api-ms-win-crt-time-l1-1-0-2\.dll$/i | table([@timestamp, aid, ComputerName, TargetFileName, SHA256HashData, ContextBaseFileName], limit=200) | sort(@timestamp, order=desc)
Looks for: SysExcSvc.dll / SysReadSvc.dll written to System32\inetsrv — not a stock Windows/IIS file pairing.
// HUNT: PhantomGraph SysExcSvc.dll / SysReadSvc.dll written into System32\inetsrv // MITRE: T1036.005, T1543.003, T1027 // CONF: high // FP: low // COST: low // REQUIRES: PeFileWritten / NewExecutableWritten file-write telemetry // FALSE POSITIVES: none expected — these two filenames and this directory pairing are not part of a stock Windows or IIS install #event_simpleName = /PeFileWritten|NewExecutableWritten/ | TargetFileName = /\\System32\\inetsrv\\Sys(ExcSvc|ReadSvc)\.dll$/i | table([@timestamp, aid, ComputerName, TargetFileName, SHA256HashData, ContextBaseFileName], limit=200) | sort(@timestamp, order=desc)
Looks for: sc.exe create/config commandlines naming SysExcSvc/SysReadSvc.
// HUNT: Service registered for the PhantomGraph SysExcSvc / SysReadSvc component names // MITRE: T1543.003 // CONF: high // FP: low // COST: low // REQUIRES: ProcessRollup2 (sc.exe invocation telemetry) // FALSE POSITIVES: none expected for these two literal service names #event_simpleName = ProcessRollup2 | FileName = /^sc(\.exe)?$/i | CommandLine = /(create|config).*Sys(ExcSvc|ReadSvc)/i | table([@timestamp, aid, ComputerName, CommandLine, UserName, ParentBaseFileName], limit=200) | sort(@timestamp, order=desc)
Looks for: commandlines referencing lsass/sekurlsa/procdump-lsass/comsvcs MiniDump — PhantomCore's credential-theft step. FP: rundll32/comsvcs.dll MiniDump also appears in some legitimate crash-dump/diagnostic tooling.
// HUNT: LSASS credential-dumping commandline patterns (PhantomCore credential theft) // MITRE: T1003.001 // CONF: high // FP: medium // COST: low // REQUIRES: ProcessRollup2 // FALSE POSITIVES: rundll32/comsvcs.dll MiniDump is also used by some legitimate crash-dump and EDR-adjacent tooling // TUNING: cross-check ParentBaseFileName against your approved crash-dump/diagnostic tooling before alerting; exclude known vendor health-check processes by ComputerName/UserName allowlist #event_simpleName = ProcessRollup2 | CommandLine = /(lsass|sekurlsa|procdump.*lsass|comsvcs\.dll.*minidump|rundll32.*comsvcs)/i | table([@timestamp, aid, ComputerName, FileName, ParentBaseFileName, CommandLine, UserName], limit=200) | sort(@timestamp, order=desc)
Looks for: DNS resolution of OneDrive/SharePoint/Graph domains by a process that is not the OneDrive client or a browser. FP: line-of-business apps, backup agents, DLP connectors, and Office components that legitimately call the Graph API.
// HUNT: DNS queries to Microsoft OneDrive / Graph API domains from a process other than the OneDrive client or a browser (PhantomGraph OneDrive C2 channel) // MITRE: T1567.002, T1102 // CONF: medium // FP: high // COST: medium // REQUIRES: DnsRequest + ProcessRollup2 correlation via ContextProcessId_decimal // FALSE POSITIVES: line-of-business apps, backup agents, DLP connectors, and Office components that legitimately call the Graph API or SharePoint domains directly // TUNING: baseline every non-OneDrive process on the TrueConf-adjacent host fleet that legitimately resolves *.sharepoint.com / graph.microsoft.com and add it to the exclusion list below before promoting to an IOA; scope first to TrueConf Server hosts and hosts that recently hit Q2/Q3/Q4 #event_simpleName = DnsRequest | DomainName = /(onedrive\.live\.com|.*-my\.sharepoint\.com|graph\.microsoft\.com)$/i | rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal) | join(query={#event_simpleName = ProcessRollup2}, field=TargetProcessId_decimal) | !in(FileName, values=["OneDrive.exe","msedge.exe","chrome.exe","firefox.exe","iexplore.exe","explorer.exe","Teams.exe","outlook.exe"], ignoreCase=true) | table([@timestamp, aid, ComputerName, DomainName, FileName, ImageFileName, CommandLine, UserName], limit=500) | sort(@timestamp, order=desc)
Looks for: DNS resolution of github.com/raw.githubusercontent.com by a non-git/non-CI process on Linux. FP: CI/CD runners and package managers legitimately reach GitHub.
// HUNT: DNS queries to GitHub / raw.githubusercontent.com from an unexpected process on a Linux host (Linux backdoor GitHub C2 channel) // MITRE: T1567.001, T1102.001 // CONF: medium // FP: medium // COST: medium // REQUIRES: DnsRequest + ProcessRollup2 correlation via ContextProcessId_decimal on Linux hosts // FALSE POSITIVES: CI/CD runners, package managers, and developer tooling that legitimately reach GitHub from a Linux build host // TUNING: extend the FileName exclusion list for hosts that run legitimate CI/CD or package-manager tooling; scope this hunt first to TrueConf Server / instrumentation-electronics-transport-energy Linux hosts that have no business reaching GitHub #event_simpleName = DnsRequest | DomainName = /(github\.com|raw\.githubusercontent\.com|githubusercontent\.com)$/i | rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal) | join(query={#event_simpleName = ProcessRollup2}, field=TargetProcessId_decimal) | !in(FileName, values=["git","curl","wget","github-runner","dockerd","containerd"], ignoreCase=true) | table([@timestamp, aid, ComputerName, DomainName, FileName, ImageFileName, CommandLine, UserName], limit=500) | sort(@timestamp, order=desc)
Looks for: a registry write to the exact CLSID {0340F119-A598-4ed9-B0AC-6F6A12D3E755}\InprocServer32 observed in this campaign.
// HUNT: Registry write to the specific CLSID InprocServer32 key used for PhantomCore/PhantomGraph persistence // MITRE: T1546.015, T1112 // CONF: high // FP: low // COST: low // REQUIRES: RegGenericValueUpdate / AsepValueUpdate registry telemetry // FALSE POSITIVES: none expected — a legitimate COM component reusing this literal GUID is not expected in a standard Windows install #event_simpleName = /RegGenericValueUpdate|AsepValueUpdate/ | RegObjectName = /\\Software\\Classes\\CLSID\\\{0340F119-A598-4ed9-B0AC-6F6A12D3E755\}\\InprocServer32/i | table([@timestamp, aid, ComputerName, RegObjectName, RegValueName, RegStringValue, UserName], limit=200) | sort(@timestamp, order=desc)
Looks for: systemctl enable/start for omicluster or schedul2-bin. FP: environments genuinely running Microsoft OMI or Acronis Cyber Protect under these exact unit names.
// HUNT: systemd service enabled for the Head Mare Linux backdoor persistence names, masquerading as Microsoft OMI or Acronis backup tooling // MITRE: T1543.002, T1036.005 // CONF: medium // FP: medium // COST: low // REQUIRES: ProcessRollup2 (systemctl invocation telemetry) on Linux hosts // FALSE POSITIVES: environments that genuinely run Microsoft OMI or Acronis Cyber Protect under these exact unit names // TUNING: if OMI or Acronis Cyber Protect are legitimately deployed, cross-check the underlying binary path and SHA256HashData against the vendor's known-good release before treating a hit as malicious — the actor deliberately reused these product-adjacent names to blend in #event_simpleName = ProcessRollup2 | FileName = /^systemctl$/i | CommandLine = /(enable|start).*(omicluster|schedul2-bin)/i | table([@timestamp, aid, ComputerName, CommandLine, UserName], limit=200) | sort(@timestamp, order=desc)
Looks for: outbound connections to any of the 5 published C2 IPs (SSH reverse-tunnel hosts included).
// HUNT: Outbound connection to published Head Mare C2 infrastructure IP addresses // MITRE: T1572, T1071, T1571 // CONF: high // FP: low // COST: low // REQUIRES: NetworkConnectIP4 // FALSE POSITIVES: none expected — these are dedicated attacker-controlled hosts, not shared/CDN infrastructure; re-verify each IP is still live before long-term blocking #event_simpleName = NetworkConnectIP4 | in(RemoteAddressIP4, values=["81.177.32.12","194.87.239.71","194.87.93.153","38.244.205.244","31.59.102.61"]) | table([@timestamp, aid, ComputerName, RemoteAddressIP4, RemotePort, ContextBaseFileName, CommandLine], limit=max) | sort(@timestamp, order=desc)
CrowdStrike Custom IOA Recommendations
| IOA Name | Field Patterns | Benign Exclusions | Deployment Path |
|---|---|---|---|
| IOA-1 · TrueConf → shell/script child (Q1) | Parent trueconf*.exe; Child cmd/powershell/pwsh/cscript/wscript/mshta/rundll32/reg | Admin-run maintenance scripts (allow-list by host/change-ticket) | Endpoint Security → Custom IOA → Process Creation, Detect |
| IOA-2 · PhantomCore CRT-stub masquerade (Q3) | File written to TargetFileName = \TrueConf\Client\api-ms-win-crt-time-l1-1-0-2.dll | None expected | Custom IOA → File Write, Detect+Block |
| IOA-3 · PhantomGraph inetsrv DLL drop (Q4) | File written to TargetFileName = \System32\inetsrv\Sys(ExcSvc|ReadSvc).dll | None expected | Custom IOA → File Write, Detect+Block |
| IOA-4 · SysExcSvc/SysReadSvc service registration (Q5) | sc.exe create/config commandline containing SysExcSvc or SysReadSvc | None expected | Custom IOA → Process Creation, Detect |
| IOA-5 · Known CLSID InprocServer32 write (Q9) | RegObjectName matching CLSID\{0340F119-A598-4ed9-B0AC-6F6A12D3E755}\InprocServer32 | None expected | Custom IOA → Registry Write, Detect |
| IOA-6 · Head Mare C2 IP contact (Q11) | RemoteAddressIP4 in published C2 IP set | None expected; re-verify liveness before enabling Block | Custom IOA → Network Connection, Detect+Block |
// TUNING: lines are baselined in your tenant.Machine-Readable IOC Appendix
Every value below traces to a saved source snapshot in HeadMare-PhantomCore-Hunt-sources/ — see §18.
type,value,action,severity,expiration,description,tags md5,4d27b4eb1c5dbb3d8160f29b8119523e,detect,critical,2027-02-25,Head Mare web shell (locale.php),campaign:HeadMare md5,748c9f8cb1065000616204935f96207f,detect,critical,2027-02-25,Head Mare trojanized TrueConf installer,campaign:HeadMare md5,c5a460e4e68a088f6e51b2c6474642ec,detect,critical,2027-02-25,PhantomCore backdoor DLL,campaign:HeadMare md5,129462164a7d52e9ea8560b60f0412c5,detect,high,2027-02-25,PhantomCore artifact (doc.txt),campaign:HeadMare md5,ec0bf4a2186a88874e9f26f07cfeb532,detect,high,2027-02-25,PhantomCore artifact (usocacheddata.txt),campaign:HeadMare md5,b348642146ea34771e5785c5857950f5,detect,high,2027-02-25,PhantomCore variant,campaign:HeadMare md5,c915cb6c2aeb863ee8479238e1644217,detect,high,2027-02-25,PhantomCore artifact (doc.txt),campaign:HeadMare md5,0e79996d9483d1e44fea32b0a48c2c19,detect,high,2027-02-25,PhantomCore artifact (doc.txt),campaign:HeadMare md5,2bb75c20e778eb5c416965bd4d4259b1,detect,high,2027-02-25,PhantomCore variant installer build,campaign:HeadMare md5,b3a6fee3307f1c26841fd5c603e2b013,detect,high,2027-02-25,PhantomCore artifact (usocacheddata.txt),campaign:HeadMare md5,8fcc3e4ccbf1725d9989fb464abf3561,detect,high,2027-02-25,PhantomCore artifact (usocacheddata.txt),campaign:HeadMare md5,489f43be558b2679284ceabed7adc4f3,detect,critical,2027-02-25,PhantomGraph sysexcsvc.dll,campaign:HeadMare md5,dd1fd2b459b97b7d59375cb8383cd19a,detect,critical,2027-02-25,PhantomGraph sysreadsvc.dll,campaign:HeadMare md5,0e4541c3153ec5ed01497f19cf4f63d0,detect,high,2027-02-25,PhantomGraph variant sysexcsvc.dll,campaign:HeadMare md5,12d4e8f5295f2ef7e0f9bfc0f4830939,detect,high,2027-02-25,PhantomGraph variant sysexcsvc.dll,campaign:HeadMare md5,7f267006cac10f341c356b62fe493527,detect,high,2027-02-25,PhantomGraph variant sysexcsvc.dll,campaign:HeadMare md5,ee2861d5965e8730708cd1da8a93fa4c,detect,high,2027-02-25,PhantomGraph variant sysexcsvc.dll,campaign:HeadMare md5,c3a2abe8756910f42582b04a44ea3514,detect,high,2027-02-25,Linux backdoor ELF,campaign:HeadMare md5,43f435c3c437bc879a2d7d4634f43494,detect,high,2027-02-25,Linux backdoor ELF,campaign:HeadMare md5,aee9642b45b099cb7f3053b9b680b425,detect,high,2027-02-25,Linux rootkit component,campaign:HeadMare ipv4,81.177.32.12,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare ipv4,194.87.239.71,detect,high,2027-02-25,Head Mare C2 (SSH observed),campaign:HeadMare ipv4,194.87.93.153,detect,high,2027-02-25,Head Mare C2 (SSH observed),campaign:HeadMare ipv4,38.244.205.244,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare ipv4,31.59.102.61,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,penzadogshelter.site,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,trendy-market.site,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,bright-deals.site,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,nova-stream.site,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,rinomobile.ink,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,urbanpixel.store,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,flexish.shop,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,media-hub.today,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,cosmetic-deals.store,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare domain,vks.gossopka.forum,detect,high,2027-02-25,Head Mare C2,campaign:HeadMare
Web shell: C:\Program Files\TrueConf Server\httpconf\site\public\js\locale.php
PhantomGraph: C:\Windows\System32\inetsrv\SysExcSvc.dll
C:\Windows\System32\inetsrv\SysReadSvc.dll
C:\Windows\System32\inetsrv\graphi-refresh.dat
C:\Windows\System32\inetsrv\share\input_*.txt
C:\Windows\System32\inetsrv\share\output_*.txt
%TEMP%\cmd_cmd_*.bat
PhantomCore: %LOCALAPPDATA%\TrueConf\Client\api-ms-win-crt-time-l1-1-0-2.dll
Linux backdoor: /etc/systemd/system/omicluster.service
/etc/systemd/system/schedul2-bin.service
/opt/acronis/bin/schedul2-bin
/omi/bin/omicluster
/usr/lib64/libzvbi-tchain.so.2
/var/tmp/cx2
Registry: HKCU\Software\Classes\CLSID\{0340F119-A598-4ed9-B0AC-6F6A12D3E755}\InprocServer32
Services: SysExcSvc, SysReadSvc
Actor: Head Mare
Backdoors: PhantomCore (Windows, DLL), PhantomGraph (Windows, SysExcSvc.dll/SysReadSvc.dll),
Linux backdoor/rootkit (ELF, GitHub C2)
Vulnerabilities: KLCERT-26-057 / CVE-2026-72529 (CVSS 9.8, missing auth, port 4307/TCP)
KLCERT-26-058 / CVE-2026-72530 (CVSS ~9.5, sandbox escape to SYSTEM)
Kaspersky detections:
Backdoor.PHP.WebShell.abi
Backdoor.Win64.PhantomCore.dt / HEUR:Backdoor.Win64.PhantomCore.gen / UDS:Backdoor.Win64.PhantomCore.a
Trojan.Win64.Agent.smgvnc / Trojan.Win64.Agent.smgvnb
Trojan.Win64.PhantomGraph.gen
HEUR:Backdoor.Linux.Agent.fb / HEUR:Backdoor.Linux.PhantomHook.a / HEUR:Backdoor.Linux.PhantomReact.a
# TrueConf Server version check (run on each server)
# Confirm version >= 5.3.9 (5.3.x), >= 5.4.9 (5.4.x), or >= 5.5.5 (5.5.x)
# Anything below these on the 5.3/5.4/5.5 lines, or any pre-5.3 build, is vulnerable
# Fleet-wide Authenticode check (PowerShell, run against TrueConf client install dirs)
Get-ChildItem -Path "$env:LOCALAPPDATA\TrueConf\Client","C:\Program Files\TrueConf*" `
-Recurse -Include *.exe,*.dll -ErrorAction SilentlyContinue |
Get-AuthenticodeSignature |
Where-Object { $_.Status -ne 'Valid' } |
Select-Object Path, Status, StatusMessage
# Port exposure check
# Confirm TCP/4307 is NOT reachable from untrusted/unauthenticated network segments
# netstat -ano | findstr 4307 (Windows) / ss -tlnp | grep 4307 (Linux)
Detection Validation Gates
| Gate | Requirement |
|---|---|
| Telemetry ready | Confirm ProcessRollup2, PeFileWritten/NewExecutableWritten, RegGenericValueUpdate/AsepValueUpdate, DnsRequest, and NetworkConnectIP4 are all flowing for every TrueConf Server host and endpoint in scope, plus Authenticode enrichment for Q2 |
| Benign baseline | Run Q7/Q8 in hunt-only mode for at least 7 days to capture legitimate OneDrive/Graph and GitHub-reaching processes on the in-scope fleet before writing exclusions; confirm Q10 against any known OMI/Acronis deployments |
| Positive tests | Lab-verify Q1 (spawn a benign script child from a test TrueConf process), Q5 (register a test service literally named SysExcSvc in a sandbox), and Q9 (write a throwaway value under the exact CLSID in an isolated VM) each return a row before relying on them in production |
| Promotion | Promote IOA-1 through IOA-6 (§9) only after the above; keep Q2, Q6, Q7, Q8, Q10 as tuned hunt queries until their FP-medium/high exclusions are baselined |
Hardening — Tiered & Deployable
The entire attack chain depends on one unpatched vulnerability pair. Patching removes the initial-access vector outright; everything else here is defense-in-depth for organizations that cannot patch immediately or want to catch a prior compromise.
- Patch TrueConf Server to 5.3.9 / 5.4.9 / 5.5.5 or later — M1051 (Update Software). Closes KLCERT-26-057 and KLCERT-26-058 outright.
- Restrict TCP/4307 to a trusted management network only (host firewall / security group / ACL) — M1030 (Network Segmentation). Removes the unauthenticated exposure even before patching completes.
- Verify Authenticode signatures on every deployed TrueConf Client installer fleet-wide; quarantine any unsigned copy — M1045 (Code Signing). See the Patch/Signature Audit block in §10.
- Reset credentials for any account on a host confirmed to have had port 4307 reachable without authentication — M1027 (Password Policies).
- Enforce a publisher/signature rule (AppLocker or WDAC) requiring a valid TrueConf code-signing certificate before a TrueConf client installer can execute — M1045.
- Enable Credential Guard and LSA Protection (RunAsPPL) fleet-wide — M1043 (Credential Access Protection). Directly blocks the LSASS-dumping step (Q6).
- Egress-filter/monitor OneDrive Graph API and GitHub raw-content domains for non-standard initiating processes — M1037 (Filter Network Traffic).
- Deploy Q1–Q11 as scheduled searches, with FP-medium/high queries (Q2, Q6, Q7, Q8, Q10) in detect-only mode pending the tuning baseline in §11.
- Move TrueConf Server's management/control-plane port behind a VPN or reverse-proxy with authentication in front of it, rather than exposing 4307 directly — M1030. ⚠ best-practice, no formal benchmark for this specific product/port; the underlying control (segment management interfaces from user-facing ones) is standard network-architecture guidance.
- Establish a formal patch-cadence SLA and recurring vulnerability scanning for on-prem collaboration/videoconferencing infrastructure — M1016 (Vulnerability Scanning). A seven-week gap between patch release and public disclosure is the exact window this closes.
- Extend application allow-listing (WDAC) fleet-wide to cover all collaboration-software client installers, not just TrueConf — M1038 (Execution Prevention).
Deployable Playbooks
Playbook 1 — Patch TrueConf Server
1. Inventory every TrueConf Server instance (Windows and Linux) and record its current version. Prerequisites: administrative access to each TrueConf Server host; maintenance window scheduled. Reboot required: yes (TrueConf Server service restart; full OS reboot typically not required — confirm in vendor release notes for your build). Rollback: snapshot/VM checkpoint before patching; TrueConf supports rollback to the prior installed version via its installer if the upgrade fails validation. 2. Download and apply 5.3.9 / 5.4.9 / 5.5.5 (or later) from TrueConf's official distribution channel, verifying the installer's own signature before running it. Prerequisites: step 1 complete; verified download source. Reboot required: yes, TrueConf Server service restart. Rollback: restore the pre-patch snapshot/checkpoint if the service fails to start cleanly post-patch. 3. Re-run the Patch/Signature Audit block (§10) against every server to confirm the new version string and confirm no residual web-shell/backdoor artifacts remain from a prior compromise. Prerequisites: steps 1-2 complete. Reboot required: no. Rollback: none required — read-only verification step.
Playbook 2 — Restrict TCP/4307 exposure (Windows host firewall example)
1. Identify the legitimate management/client source IP ranges that must reach port 4307.
Prerequisites: network diagram or firewall-flow log review to avoid breaking legitimate access.
Reboot required: no.
Rollback: none required — planning step.
2. Create a scoped inbound firewall rule allowing 4307/TCP only from those ranges, then set the
default rule for 4307 to Block:
New-NetFirewallRule -DisplayName "TrueConf-4307-Restrict-Allow" -Direction Inbound -Protocol TCP `
-LocalPort 4307 -RemoteAddress <trusted-CIDR-list> -Action Allow
New-NetFirewallRule -DisplayName "TrueConf-4307-Restrict-Block" -Direction Inbound -Protocol TCP `
-LocalPort 4307 -Action Block
Prerequisites: administrative access; trusted CIDR list from step 1.
Reboot required: no.
Rollback: Remove-NetFirewallRule -DisplayName "TrueConf-4307-Restrict-Allow","TrueConf-4307-Restrict-Block"
restores the prior (open) state immediately.
3. Validate from an out-of-scope test host that 4307 is unreachable, and from an in-scope host that
it still connects.
Prerequisites: step 2 complete.
Reboot required: no.
Rollback: none required — verification step.
Playbook 3 — Enable Credential Guard + LSA Protection (RunAsPPL)
1. Confirm hardware/firmware prerequisites (UEFI, Secure Boot, virtualization extensions enabled)
on target hosts.
Prerequisites: Windows 10/11 Enterprise or Server 2016+; UEFI Secure Boot enabled; VBS-capable CPU.
Reboot required: no (assessment only).
Rollback: none required.
2. Enable LSA Protection via registry:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" `
-Value 1 -PropertyType DWord -Force
Prerequisites: step 1 confirmed; pilot ring identified (this can break third-party credential-provider
plugins that are not PPL-compatible — test before fleet-wide rollout).
Reboot required: yes.
Rollback: Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -Value 0,
then reboot.
3. Enable Credential Guard via Group Policy (Computer Configuration > Administrative Templates > System
> Device Guard > Turn On Virtualization Based Security), or via registry equivalent, then reboot.
Prerequisites: step 1 confirmed.
Reboot required: yes.
Rollback: disable the GPO setting (or set EnableVirtualizationBasedSecurity=0), reboot, then run
DG_Readiness_Tool.ps1 -Disable if VBS was independently enabled.
4. Confirm via CQL Q6 spot-check that LSASS-targeting commandline attempts on hardened hosts now fail
(comsvcs.dll MiniDump against a PPL-protected lsass.exe returns access-denied).
Prerequisites: steps 2-3 complete and rebooted.
Reboot required: no.
Rollback: none required — verification step.
Playbook 4 — Egress monitoring for OneDrive/GitHub C2 abuse
1. Deploy Q7 and Q8 (§8) as scheduled searches in detect-only (hunt) mode. Prerequisites: DnsRequest and ProcessRollup2 telemetry confirmed flowing (§11 Gate 1). Reboot required: no. Rollback: disable the scheduled search — no endpoint state is changed by a detect-only query. 2. Baseline 7-14 days of hits, build the FileName/ComputerName exclusion list per each query's // TUNING: line, and re-deploy with exclusions applied. Prerequisites: step 1 complete; SOC capacity to triage the initial baseline volume. Reboot required: no. Rollback: revert to the unfiltered query if the exclusion list proves too broad (re-run step 1's version). 3. Where a proxy/firewall supports it, add a monitor-only (not block, to avoid breaking legitimate OneDrive/GitHub use) alert rule for the same domain set restricted to non-standard source processes or unmanaged hosts outside Falcon coverage. Prerequisites: proxy/firewall with per-process or per-application visibility. Reboot required: no. Rollback: remove the proxy/firewall rule — no endpoint state changed.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain the TrueConf Server host and any endpoint with confirmed Q1/Q3/Q4/Q5/Q9/Q11 hits; preserve memory and disk images before any patch/reset | SOC L2 / IR | Containment timestamps; Q1-Q11 hit list; memory/disk images |
| Triage | Determine whether the server was used only as a delivery point or was itself pivoted from; enumerate every endpoint that downloaded the trojanized installer (Q2); check for LSASS access (Q6) indicating credential theft | IR | Web/access-log review; installer-download list; Q6 hit list |
| Eradicate | Remove the web shell and restore locale.php from a known-good source; remove SysExcSvc/SysReadSvc services and their DLLs; remove the PhantomCore DLL and its registry CLSID entry; remove Linux backdoor systemd units and binaries; rotate any credentials touched by LSASS access | IR | Removal log; before/after file-hash comparison; credential-rotation record |
| Recover | Reinstall/patch TrueConf Server to 5.3.9/5.4.9/5.5.5+ from a verified-clean source; redistribute a verified-signed client installer to all affected users; rebuild any host with confirmed SYSTEM-level compromise rather than attempting in-place cleanup | IR + IT | Patch confirmation; new installer hash distributed; rebuild tickets |
| Harden | Apply §12 Immediate + Near-term controls; promote IOA-1 through IOA-6; enable egress monitoring for the published C2 set; confirm port 4307 restriction is in place | Detection Eng | IOAs enabled; firewall rule diff; monitoring dashboard live |
⚠ Do not simply patch and move on if a server shows Q1/Q3/Q4/Q9 hits — the sandbox-escape-to-SYSTEM step means the attacker had full host control. Treat any positive hit as a confirmed compromise requiring full IR triage, not just a patch-and-close.
Detection Coverage Map
| Technique | Behavior | CQL | Native / IOA | Coverage |
|---|---|---|---|---|
| T1190 | Unauthenticated exploitation via TCP/4307 | — | N1, N6 | GAP no Falcon visibility pre-escape |
| T1611 | Sandbox escape to SYSTEM | Q1 | IOA-1 | Good |
| T1505.003 | Web shell (locale.php) | — | N2, N3 | GAP no PE/script-content telemetry — FIM/web-log only |
| T1195.002 / T1027 | Trojanized, unsigned client installer | Q2 | N5 | Partial FP medium, tuning required before IOA |
| T1036.005 / T1574.002 | PhantomCore CRT-stub masquerade | Q3 | IOA-2 | Good |
| T1543.003 | PhantomGraph DLL drop + service | Q4, Q5 | IOA-3, IOA-4 | Good |
| T1546.015 | CLSID InprocServer32 persistence | Q9 | IOA-5 | Good |
| T1003.001 | LSASS credential dumping | Q6 | — | Partial commandline-based; FP medium |
| T1567.002 / T1102 | PhantomGraph C2 via OneDrive | Q7 | N4 | Partial FP high, needs baseline; cloud-side visibility gap |
| T1567.001 / T1102.001 | Linux backdoor C2 via GitHub | Q8 | — | Partial FP medium, needs baseline |
| T1543.002 / T1036.005 | Linux systemd persistence (OMI/Acronis masquerade) | Q10 | — | Partial verify against real OMI/Acronis deployments |
| T1572 / T1071 | SSH reverse tunnel / C2 IP contact | Q11 | IOA-6 | Good while IPs remain live |
Validation gates: confirm the required telemetry list in §11 is flowing before relying on any query; baseline Q7/Q8/Q10 for 7-14 days before promoting; lab-test Q1/Q5/Q9 positive cases. The two GAP rows (unauthenticated port-4307 exploitation and the web-shell file drop) cannot be closed with Falcon endpoint telemetry alone — they require TrueConf application logging, web-server access logs, and file-integrity monitoring (N1-N3).
Hunt Summary Ticket
TITLE: Hunt — Head Mare / PhantomCore + PhantomGraph via trojanized TrueConf Server
SEVERITY: Critical (unauthenticated RCE to SYSTEM; supply-chain-style installer trojanization;
patch available 7 weeks before public disclosure)
SCOPE: TrueConf Server (Windows + Linux); Windows/Linux endpoints running TrueConf Client;
M365/OneDrive tenant (C2 channel); GitHub egress (Linux backdoor C2 channel)
HYPOTHESIS: Unauthenticated TCP/4307 exploit (KLCERT-26-057) -> sandbox escape to SYSTEM
(KLCERT-26-058) -> locale.php web shell -> trojanized client installer ->
PhantomCore (Windows DLL, LSASS dumping) / PhantomGraph (SysExcSvc/SysReadSvc,
OneDrive C2) / Linux backdoor (GitHub C2) -> SSH reverse tunnels.
QUERIES RUN: Native N1 TrueConf app-log review | N2 FIM on locale.php | N3 web-log review |
N4 M365/Entra Graph audit | N5 Authenticode sweep | N6 firewall/egress review
CQL Q1 TrueConf->shell child | Q2 unsigned installer | Q3 PhantomCore DLL drop |
Q4 PhantomGraph DLL drop | Q5 SysExcSvc/SysReadSvc service reg | Q6 LSASS commandline |
Q7 OneDrive C2 | Q8 GitHub C2 | Q9 CLSID persistence | Q10 systemd masquerade |
Q11 known C2 IP contact
DO FIRST: Confirm TrueConf Server version fleet-wide (patch to 5.3.9/5.4.9/5.5.5+); run Q1, Q3,
Q4, Q5, Q9, Q11 (low-FP, high-CONF) immediately; restrict TCP/4307 exposure
FINDINGS:
GAPS: No Falcon visibility into TrueConf's isolated script-execution sandbox pre-escape
(T1190); web shell drop is a non-PE file write with no covering Falcon file event
(T1505.003) — FIM/web-log only; OneDrive-side C2 content invisible to endpoint
telemetry alone
ACTIONS: Patch TrueConf Server; restrict port 4307; verify installer signatures fleet-wide;
enable Credential Guard/RunAsPPL; promote IOA-1 through IOA-6; baseline and tune
Q2/Q6/Q7/Q8/Q10 before promotion; deploy egress monitoring for published C2 set
OWNER: HuntPack
VERSION: v0.1 - 2026-08-25