Post

Fingerprinting and Mapping UAC‑0099 Infrastructure

Discovering Identifiers From UAC-0099 Infrastructure To Build a Distinct Fingerprint

Fingerprinting and Mapping UAC‑0099 Infrastructure

The infrastructure of the threat actor UAC-0099 was analyzed to uncover additional C2 servers and a revealing fingerprint of their MATCHBOIL C2. The group’s infrastructure was intended to be behind Cloudflare, but likely due to mistakes in setting up the C2 servers, they could still be identified.

In addition to identifying MATCHBOIL C2 servers, the analysis revealed other infrastructure associated with UAC-0099. The analysis also confirmed the findings ESET made about the way UAC-0099 sets up their infrastructure and revealed additional identifying infrastructure characteristics.

Key Findings

  • UAC-0099 infrastructure is often set up in similar fashion, using nginx & Let’s Encrypt
  • The group reuses the same domain registrars
  • The ASN for the C2 servers has always been the same
  • MATCHBOIL C2 responds in a very curious way, even to scanners such as Modat Magnify & FOFA
  • UAC-0099 likes cats

Malware Campaign But With Cat Pics

UAC-0099 is a threat actor that has been active since at least 2022. The threat actor commonly targets Ukrainian targets. The first mentions of the group were by the Computer Emergency Response Team of Ukraine (CERT-UA). ESET characterizes the threat actor as Russia-aligned and as working as an initial access broker for Sandworm. Mandiant also connects UAC-0099 to APT44, which is also known as Sandworm. Sandworm is most well known for being attributed to the Russian military intelligence service GRU and targeting the Ukrainian electric grid with destructive attacks.

UAC-0099 has been known to deploy a downloader called MATCHBOIL. The group uses MATCHBOIL as a first-stage downloader to deliver a second-stage payload from a C2 server and install it on the victim’s system. MATCHBOIL is distributed by spearphishing emails, which often direct victims to execute a malicious file that is hosted on a file sharing site. MATCHBOIL has been around since at least 2024 and has seen new variants as recently as April 2026. MATCHBOIL, or its spreading mechanism, does not appear particularly interesting or advanced. The malware actually appears quite crude, using some less than convincing graphical user interfaces as forms of lures. But I have to admit, the cat pictures did pique my interest.

GUI Lure GUI shown to victim after running MATCHBOIL identified by ESET

MATCHBOIL Infrastructure

In their report ESET identifies two IP addresses and four domains used by UAC-0099 as MATCHBOIL C2 servers. They also note the threat actor uses VPS services, such as BitLaunch to host their C2 servers, Cloudflare to hide the C2 servers real IP addresses and Let’s Encrypt certificates for the C2 servers. It turns out, their infrastructure setup had left a bunch of clues that could be used to build a fingerprint.

IndicatorDescriptionFirst seen
virtualdailyplanner[.]proMATCHBOIL C22025‑11‑10
telemetry-conf[.]comMATCHBOIL C22025‑08‑12
flycloud-service[.]comMATCHBOIL C22026‑03‑03
airarticlegenerate[.]comMATCHBOIL C22025‑05‑07
64.95.10[.]223MATCHBOIL C2, flycloud-service[.]com resolved here2026‑03‑03
64.95.13[.]210MATCHBOIL C2, airarticlegenerate[.]com resolved here2025‑05‑07

Domain Analysis

The domain analysis revealed some additional pivot points and a pattern. The pivot points were the real IP addresses behind telemetry-conf[.]com and virtualdailyplanner[.]pro, which ESET had not managed to identify. The IP addresses were identified from Validin’s DNS history data.

Real IP addresses identified via Validin Real hosts behind malicious domains identified via Validin

Whois data for the domains revealed a clear pattern. While the registrant information for all of the domains was redacted by privacy features, the registrar used was the same for three of the four domains.

Whois data DevExpanse and Hosting Concepts registrars used by the threat actor.

Host Analysis

Because the infrastructure identified by ESET was already dated and only a few IP addresses were identified, my expectations for new findings were not high. However, the historical data did have some promising leads.

FOFA had successfully recorded the response from the likely C2 service for two of the IP addresses: 64.95.12[.]130 for telemetry-conf[.]com and 64.95.10[.]223 for flycloud-service[.]com. The services on these hosts did not initially appear very similar, for example they had a different nginx version and JARM hash. But some similarities could still be seen:

  • ASN was the same: 399629
  • The headers were the same, except the nginx version
  • JA3s values were the same
  • HTTP response body was similar

Similar HTTP headers Similar HTTP headers for both hosts, except for the nginx version.

The HTTP response body proved to be the smoking gun: both services replied with a different, seemingly random, 10-character string that was highly suspicious and indicative of a C2 server. Turns out this 10-character string changes every time the C2 responds.

C2 reply Reply from the C2 servers.

These identifiers were combined into a search query for FOFA that, at least currently, reveals only true positive findings: asn="399629" && header="Transfer-Encoding: chunked" && header="Content-Type: text/plain; charset=utf-8" && (header="Server: nginx/1.24.0 (Ubuntu)" || header="Server: nginx/1.18.0 (Ubuntu)") && header!="Cache-Control: no-store".

This query revealed a bunch of previously unidentified C2 servers:

IPDomainFirst seen on FOFA
192.153.57[.]148exchange-cab-center[.]com2026-09-16
64.94.85[.]94thunderbird-smp-extension[.]com2026-08-08
64.94.85[.]179api-available-checker[.]com2026-03-04
64.95.10[.]87gold-kauf-limited[.]bar2026-10-02
64.95.11[.]193industriesbetbikeupdate[.]com2026-09-30
64.94.84[.]227remote-fileviewer[.]com2026-06-18
64.95.13[.]135cloud-fileengine[.]com2026-06-28
64.95.10[.]235activation-planner[.]pro2026-04-06

These hosts all returned the similar 10-character string and identical headers, outside the nginx versions. This is already solid proof these are part of the C2 infrastructure for UAC-0099, almost certainly specifically for MATCHBOIL. As further confirmation, these newly identified domains were all registered with either DevExpanse or Hosting Concepts and the certificates used for the hosts were generated with Let’s Encrypt. Further matching the infrastructure identifiers seen by ESET.

Using Modat Magnify, and the historical visibility the platform provides, it was possible to identify one additional host that had been running the same C2 service: 64.95.12[.]170/cache-extension-api-tool[.]icu.

Modat finding Modat Magnify revealed another MATCHBOIL host.

Beyond MATCHBOIL

While broadening the search query to identify more MATCHBOIL C2 servers, another suspicious host was found: 64.95.11[.]27/firefox-app-update[.]com. While this service did not reply with the same headers or HTTP content, some similarities were there: it was on the same ASN, had the same JA3s value, domain was registered via Hosting Concepts and the domain name was similar to the other identified UAC-0099 domains. Turns out this domain had already been connected to UAC-0099 back in 2024.

UAC-0099 Domain Blast from the past.

This prompted a broader look into similar hosts within the same ASN 399629. Some additional UAC-0099 hosts could be identified, some with lower confidence levels than others. This FOFA query was used to identify them, which also includes some false positive findings:

header="HTTP/1.1 404 Not Found" && header="Connection: close" && (header="Server: nginx/1.24.0 (Ubuntu)" || header="Server: nginx/1.18.0 (Ubuntu)") && asn="399629" && cert.issuer.org="Let's Encrypt" && (header="Content-Length: 14" || header="Content-Length: 0") && jarm!="27d40d40d00040d00042d43d000000d2e61cae37a985f75ecafb81b33ca523"

IPDomainFirst seenConfidence
64.94.84[.]99white-check-security[.]tools2025-10-26High
64.95.13[.]21virtualtelemetryassistant[.]com2025-12-12High
64.95.10[.]28icore-hw-updatings[.]com2026-07-24Medium
64.95.13[.]27files.korotuk[.]com2026-09-04Low
64.94.85[.]156customs-kiev.com[.]ua2026-09-28High

Same same, but different Highly likely UAC-0099 connected infrastructure.

These IP addresses hosted a varying set of services that had different fingerprints. Some responded with Content-Length: 0, while others with Content-Length: 14. Some services used nginx/1.18.0, while others nginx/1.24.0. The domains that were used had all been registered with either DevExpanse or Hosting Concepts (customs-kiev.com[.]ua was registered using Regery UA, DevExpanse is the operator for Regery). Most of these IP addresses and domain names already have a poor reputation on Virustotal, some with malicious files communicating with them. It is possible these hosts are C2 servers for a different malware or they were simply set up in a different way. However, not all of the hosts can be linked to UAC-0099 with high certainty, due to only finding circumstantial links and no smoking gun like the HTTP reply from the MATCHBOIL C2 servers.

Conclusion

The UAC-0099 infrastructure identified by ESET was analyzed, and infrastructure fingerprints were developed based on various identifying characteristics. In addition to discovering additional MATCHBOIL infrastructure, other UAC-0099 related infrastructure was also identified. All of the additional infrastructure was identified based on the threat actor’s repeated use of the same ASN and domain registrars, registering similar domain names and poorly configured C2 services. It would appear that OPSEC is not a priority for the group, at least as far as infrastructure goes.

UAC-0099 MATCHBOIL fingerprints (note these queries are based on the headers instead of the HTTP reply that was the clearest indicator):

FOFA: asn="399629" && header="Transfer-Encoding: chunked" && header="Content-Type: text/plain; charset=utf-8" && (header="Server: nginx/1.24.0 (Ubuntu)" || header="Server: nginx/1.18.0 (Ubuntu)") && header!="Cache-Control: no-store"

MODAT: same_service(port=443 protocol="http" transport="tcp" banner_hex=485454502f312e3120323030204f4b0d0a5365727665723a206e67696e782f312e31382e3020285562756e7475290d0a446174653a2052454441435445440d0a436f6e74656e742d547970653a20746578742f706c61696e3b20636861727365743d7574662d380d0a5472616e736665722d456e636f64696e673a206368756e6b65640d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a0d0a) asn=399629

Unknown UAC-0099 infrastructure fingerprint (note this is a broad query that also finds false positives):

FOFA: header="HTTP/1.1 404 Not Found" && header="Connection: close" && (header="Server: nginx/1.24.0 (Ubuntu)" || header="Server: nginx/1.18.0 (Ubuntu)") && asn="399629" && cert.issuer.org="Let's Encrypt" && (header="Content-Length: 14" || header="Content-Length: 0") && jarm!="27d40d40d00040d00042d43d000000d2e61cae37a985f75ecafb81b33ca523"

Initial indicators by ESET:

IndicatorDescriptionFirst seen
virtualdailyplanner[.]proMATCHBOIL C22025‑11‑10
telemetry-conf[.]comMATCHBOIL C22025‑08‑12
flycloud-service[.]comMATCHBOIL C22026‑03‑03
airarticlegenerate[.]comMATCHBOIL C22025‑05‑07
64.95.10[.]223Host for flycloud-service[.]com2026‑03‑03
64.95.13[.]210Host for airarticlegenerate[.]com2025‑05‑07

Additional indicators:

IndicatorDescriptionFirst seenConfidence
64.94.84[.]99Host for virtualdailyplanner[.]pro2025-11-10High
64.95.12[.]130Host for telemetry-conf[.]com2025-08-14High
exchange-cab-center[.]comMATCHBOIL C2 Domain2026-07-28High
192.153.57[.]148Host for exchange-cab-center[.]com2026-07-28High
thunderbird-smp-extension[.]comMATCHBOIL C2 Domain2026-06-19High
64.94.85[.]94Host for thunderbird-smp-extension[.]com2026-06-19High
api-available-checker[.]comMATCHBOIL C2 Domain2026-03-04High
64.94.85[.]179Host for api-available-checker[.]com2026-03-04High
gold-kauf-limited[.]barMATCHBOIL C2 Domain2026-10-09High
64.95.10[.]87Host for gold-kauf-limited[.]bar2026-10-09High
industriesbetbikeupdate[.]comMATCHBOIL C2 Domain2026-09-24High
64.95.11[.]193Host for industriesbetbikeupdate[.]com2026-09-24High
remote-fileviewer[.]comMATCHBOIL C2 Domain2026-06-18High
64.94.84[.]227Host for remote-fileviewer[.]com2026-06-18High
cloud-fileengine[.]comMATCHBOIL C2 Domain2026-06-17High
64.95.13[.]135Host for cloud-fileengine[.]com2026-06-17High
activation-planner[.]proMATCHBOIL C2 Domain2026-04-06High
64.95.10[.]235Host for activation-planner[.]pro2026-04-06High
cache-extension-api-tool[.]icuMATCHBOIL C2 Domain2026-08-31High
64.95.12[.]170Host for cache-extension-api-tool[.]icu2026-08-31High
white-check-security[.]toolsUAC-0099 Infra2025-10-25High
64.94.84[.]99Host for white-check-security[.]tools2025-10-25High
virtualtelemetryassistant[.]comUAC-0099 Infra2025-08-28High
64.95.13[.]21Host for virtualtelemetryassistant[.]com2025-08-28High
icore-hw-updatings[.]comUAC-00992026-06-17Medium
64.95.10[.]28Host for icore-hw-updatings[.]com2026-06-17Medium
customs-kiev.com[.]uaUAC-0099 Infra2026-09-28High
64.94.85[.]156Host for customs-kiev.com[.]ua2026-09-28High
This post is licensed under CC BY 4.0 by the author.