Threat research

Following the refund: how fake South African government sites led to a global phishing kit

Two phishing domains from VMRay UniqueSignal led to a dedicated server hosting phishing pages for multiple countries' governments, banks and registrars.

Robin Dimyanoglu External Threat Researcher / Platform Security Engineer

· 8 min read

Imagine you get an SMS promising a tax refund about $3,000 and you tap the link. The page that loads looks almost identical to the tax authority's own website. South Africa's revenue service, SARS, put out a public warning about exactly this kind of lure in late July, citing a R48,900 figure.[1]

Figure 1. Original South African Revenue Service website
The real South African Revenue Service website, marked “Original website”: SARS logo, main navigation, eFiling login and register links, and a Latest News column.
Figure 2. Phishing page impersonating South African Revenue Service
A phishing page marked “Phishing page”: SARS logo and a “Tax Return Status Dashboard” header above a “Security Check” box asking the visitor to confirm they are human, with a Cloudflare badge.

I found the first two sitting quietly in the VMRay UniqueSignal threat feed, then spent an afternoon finding out what they were connected to.

Two entries in the VMRay UniqueSignal threat feed: justice-gov-za.weebly.com, created 30 July 2026, and ncpg-gov-za.weebly.com, created 1 August 2026, both by author vmray with heuristics labels.

UniqueSignal is VMRay's continuously-updated feed of freshly observed, sandbox-verified indicators. In a typical workflow, an analyst takes one of these indicators and pushes it into a blocklist. This time I will take the same indicator further to see where it leads us.

The two domains (justice-gov-za.weebly[.]com and ncpg-gov-za.weebly[.]com) landed in the UniqueSignal feed. VirusTotal first saw them resolve on July 20th and July 31st respectively.

Figure 3. Fake Dept. of Justice login, first pDNS 20 July 2026 (justice-gov-za.weebly[.]com):
A fake login page with the logo of South Africa’s Department of Justice and Constitutional Development, asking for email address, username and password, with an “Update Now” button.
Figure 4. Fake National Council on Problem Gambling login, first pDNS 31 July 2026 (ncpg-gov-za.weebly[.]com):
A fake login page with the logo of the National Council on Problem Gambling (NCPG), asking for email address, username and password, with an “Update Now” button.

What I uncovered a few pivots later was a multi-country phishing operation impersonating government agencies, banks, registrars and other organizations around the world.

Scan counts from the text. Lure domains and countries counted from the Indicators of Compromise table.

Pivot One: The Naming Convention

Let's search our first two leads on VirusTotal:

  • justice-gov-za.weebly[.]com
  • ncpg-gov-za.weebly[.]com

Both sites point to the same two IP addresses (74.115.51[.]8 and 74.115.51[.]9), which belong to Weebly's shared hosting infrastructure (AS27647). They also sit behind the same wildcard SSL certificate covering *.weebly.com that is shared across every free Weebly site. None of that is pivotable though. Thousands of legitimate Weebly sites share those IPs and that certificate.

The naming convention itself however, turned out to be the one usable fingerprint.

VirusTotal Intelligence: entity:domain and domain:*-gov-za.weebly.com

This pivot added one sibling: 4373-kznhealth-gov-za.weebly[.]com, impersonating KwaZulu-Natal's Department of Health.

As a next step, I dropped .weebly.com from the query entirely to see whether the same naming pattern showed up on other providers. A custom domain would open up new pivoting opportunities that Weebly's shared hosting couldn't offer.

VirusTotal Intelligence: entity:domain and domain:*gov-za*

This returned a much larger and noisier set. I checked each result to see whether the domain served an impersonation page. The Indicators of Compromise table at the bottom lists each domain with the organization it impersonates and the hosting provider. Where the page didn't name the organization it impersonates, the table lists it as unknown.

Pivot Two: Ghosty Networks Hosting

domain:*gov-za* query on URL and website scanner - urlscan.io[2] returned 1,302 historical scans against this naming pattern. Here’s the Urlscan report for one specific SARS lure.

The SARS Example

Examining this result showed the page is titled "Tax Return Status Dashboard - SARS". The page loads an antibot.js script, then a Cloudflare Turnstile challenge before serving content. This antibot + turnstile gate is standard in commercial kits. It hides the lure from scanners and researchers.

The Dead End: Page Title

Next, I tried the page title itself as a pivot.[3] Only one domain came back as a result.

Urlscan: page.title:"Tax Return Status Dashboard - SARS"

Figure 5. Querying the page title on URL and website scanner - urlscan.io
urlscan.io search for page.title “Tax Return Status Dashboard - SARS” returning two results, both sars-gov-za.vetactivity.ro/captcha.html, on IP 46.151.182.230, AS205759 Ghosty Networks LLC, geolocated in the Netherlands.

The Shared IP Address

Coming up empty on the title put me back on the SARS lure's (sars-gov-za.vetactivity[.]ro) own infrastructure. The domain resolves to 46.151.182[.]230 which belongs to Ghosty Networks LLC (AS205759). Intrinsec classifies Ghosty Networks as a bulletproof network, citing its use in March 2026 malspam campaigns and its likely links to Optibounce and AnonRDP.[4] That's worth pivoting on. So I ran page.ip:46.151.182.230 on Urlscan.[5] It came back with 372 historical scans.

Figure 6. Querying the host IP address on URL and website scanner - urlscan.io
urlscan.io search for page.ip “46.151.182.230” showing 372 results, among them captcha.html pages on etax.onestaprod.ro, www.secure-vmi.energy-report.ro and etex-poland.energy-report.ro, all on AS205759 Ghosty Networks LLC.

This query turned up six instances of a Polish tax-authority lure all titled "e-Urząd Skarbowy - Twoje dane podatkowe" and run through the identical captcha.html/antibot flow as the SARS page.

  • etax.vetactivity[.]ro
  • etaxpanel.vetactivity[.]ro
  • etax.clinicaactmedica[.]ro
  • etaxpanel.clinicaactmedica[.]ro
  • etax.onestaprod[.]ro
  • etex-poland.energy-report[.]ro
ArtifactValue
Bot-check filecaptcha.html
File hash (antibot.js)095b95643a6c7ddbe2a70bd28e00556e2c2bf9b4eb83df93074d80fc1c9b60c0

Note: Because Cloudflare ties each Turnstile sitekey to a single account, the same sitekey showing up across multiple domains is a strong signal they belong to the same operator, even when the sitekey itself can't be used as a search pivot.

To tell which domains the attacker owns outright versus which they've compromised, compare passive DNS history at the apex against the subdomain. A compromised domain shows years of stable apex history that only diverges recently, while the apex keeps resolving elsewhere. An attacker-owned domain has no such split. The Ownership column in the Indicators of Compromise table applies this test to every domain.

Pivoting this IP directly shows dedicated infrastructure that hosted numerous phishing kit deployments. SARS is a South African entry in a cluster that already covers multiple countries' tax authorities, banks and registrars.

BrandCountrySectorHostWHOISFirst pDNS
Crédit AgricoleFranceBankingca24-credit-agricole.vetactivity[.]ro2021-10-022026-07-23
ÍslandsbankiIcelandBankingislanbsdanki.clinicaactmedica[.]ro2014-11-112026-06-27
cdmonSpainDomain registrarcdmon.hahn-polyfilms[.]com2005-04-292026-08-13
VerificationBelarusHosting panelhoster-by[.]org2026-07-132026-07-13
VautronGermanyDomain registrarvautron.vetactivity[.]ro2021-10-022026-08-06
WebhostoneGermanyHosting/registrarwebhostone-de.vetactivity[.]ro2021-10-022026-08-17
1984 HostingIcelandHosting/registrar1984-hosting.vetactivity[.]ro2021-10-022026-08-18
Skatturinn (RSK)IcelandTax authorityskatturinn.onestaprod[.]ro2013-02-192026-09-04
VMILithuaniaTax authorityvmi.onestaprod[.]ro2013-02-192026-09-04
e& enterpriseUAETelecomnic-ae.energy-report[.]ro2017-04-282026-08-27
OpenAIUSASoftwarecheckout-openai-llc.onestaprod[.]ro2013-02-192026-09-09
Figure 7. Timeline of the Phishing Kit Activity

What This Means for Defenders

Two Weebly URLs in the UniqueSignal feed turned into a number of government lures. One of those lures led to something bigger. One IP hosting the same kit under multiple countries' brands.

The following detection actions are advised:

  • Block 46.151.182[.]230 and watch AS205759 for new hosting of the kit.
  • Hunt for the captcha.html path with the antibot.js hash in urlscan and in proxy logs that record file hashes. The SARS and Polish tax lures share this flow.
  • Monitor new *-gov-za domains, including *.weebly.com and *.pages.dev subdomains. On shared platforms the name is the only selective fingerprint.
Figure 8. Polish Digital Tax Fraud - Step 1
Fake e-Urząd Skarbowy page, step 1: a “Your tax details” form asking for a PESEL number and date of birth, with a “Processing…” button.
Figure 9. Polish Digital Tax Fraud - Step 3
Fake e-Urząd Skarbowy page, step 3: an “Identity verification and withdrawal” form asking for name, PESEL number, phone, email, IBAN and bank code to complete a refund of PLN 1,850.00.

MITRE ATT&CK Mapping

TacticTechniqueWhere it shows up
Resource DevelopmentT1583.001 Acquire Infrastructure: DomainsLook-alike *-gov-za domains, plus attacker-registered brand domains such as hoster-by[.]org
Resource DevelopmentT1583.003 Acquire Infrastructure: Virtual Private ServerDedicated kit server at 46.151.182[.]230 (Ghosty Networks, AS205759)
Resource DevelopmentT1583.006 Acquire Infrastructure: Web ServicesWeebly and Cloudflare Pages lures
Resource DevelopmentT1584.001 Compromise Infrastructure: Domainsvetactivity[.]ro, onestaprod[.]ro, clinicaactmedica[.]ro, energy-report[.]ro, hahn-polyfilms[.]com, aniamis[.]ro and koeller-solutions[.]de (assessed from pDNS, not confirmed)
Initial AccessT1566.002 Phishing: Spearphishing LinkSMS and email lures (per SARS's public alert, not observed directly)
Defense EvasionT1656 ImpersonationGovernment, bank and registrar brand clones
Defense EvasionT1497 Virtualization/Sandbox Evasionantibot.js and Cloudflare Turnstile gate (closest fit for bot evasion)
ReconnaissanceT1598.003 Phishing for Information: Spearphishing LinkCredential and card harvesting pages

Indicators of Compromise

First seen is the date of the earliest VirusTotal passive DNS record for the domain. It shows when VirusTotal first saw the domain resolve, so the lure may have been live earlier.

First seenIndicatorImp. CountryImpersonatesHosting providerOwnership (pDNS)
-46.151.182[.]230--Ghosty NetworksShared
-antibot.js hash (SHA-256): 095b95643a6c7ddbe2a70bd28e00556e2c2bf9b4eb83df93074d80fc1c9b60c0----
2025-05-214373-kznhealth-gov-za.weebly[.]comSouth AfricaKZN Dept. of HealthWeeblyFree platform
2025-07-11www-saps-gov-za-careers.pages[.]devSouth AfricaSAPS careers portalCloudflareFree platform
2025-07-15erecruitmentincidents-saps-gov-za.pages[.]devSouth AfricaSAPS recruitmentCloudflareFree platform
2025-07-17sars-gov-za.pages[.]devSouth AfricaSouth African Revenue ServiceCloudflareFree platform
2025-08-02dalrrd-gov-za.pages[.]devSouth AfricaDept. of Agriculture, Land ReformCloudflareFree platform
2025-08-05natis-gov-za[.]orgSouth AfricaNATIS (licence/fines)Oracle, then AmazonAttacker-owned
2025-08-06natis-gov-za[.]comSouth AfricaNATIS (licence/fines)Oracle, then AmazonAttacker-owned
2025-08-15emadlangeni-gov-za.pages[.]devSouth AfricaeMadlangeni local municipalityCloudflareFree platform
2025-09-03education-fs-gov-za.pages[.]devSouth AfricaFree State Dept. of EducationCloudflareFree platform
2026-01-03track.mail.dws-gov-za[.]coSouth AfricaDept. of Water & SanitationAmazonAttacker-owned
2026-01-12dot-gov-za[.]bidSouth AfricaDept. of TransportContaboAttacker-owned
2026-04-05www-intsikayethu-gov-za.pages[.]devSouth AfricaIntsika Yethu local municipalityCloudflareFree platform
2026-04-15smade.aniamis[.]rounknownunknownMaroc Telecom, then Ghosty NetworksCompromised
2026-04-17track.mail.dot-gov-za[.]bidSouth AfricaDept. of TransportCloudflareAttacker-owned
2026-05-19kgetlengrivier-gov-za.pages[.]devSouth AfricaKgetlengrivier local municipalityCloudflareFree platform
2026-06-16dcs-gov-za[.]orgSouth AfricaDept. of Correctional ServicesAmazonAttacker-owned
2026-06-17chat.clinicaactmedica[.]rounknownunknownGhosty NetworksCompromised
2026-06-19etax.clinicaactmedica[.]roPolande-Urząd Skarbowy (Polish tax authority)Ghosty Networks, then Cyber_FolksCompromised
2026-06-27islanbsdanki.clinicaactmedica[.]roIcelandÍslandsbanki (Icelandic bank)Ghosty NetworksCompromised
2026-07-09etaxpanel.clinicaactmedica[.]roPolande-Urząd Skarbowy (Polish tax authority)Ghosty Networks, then Cyber_FolksCompromised
2026-07-10etaxpanel.vetactivity[.]roPolande-Urząd Skarbowy (Polish tax authority)Ghosty NetworksCompromised
2026-07-13hoster-by[.]orgBelarusVerification (hosting panel)Ghosty NetworksAttacker-owned
2026-07-20justice-gov-za.weebly[.]comSouth AfricaDept. of JusticeWeeblyFree platform
2026-07-23ca24-credit-agricole.vetactivity[.]roFranceCrédit Agricole (bank)Ghosty NetworksCompromised
2026-07-30hoster.vetactivity[.]roKazakhstanᐈ Купить хостинг в Казахстане. Регистрация доменов .KZ (hosting panel)Ghosty NetworksCompromised
2026-07-31ncpg-gov-za.weebly[.]comSouth AfricaNational Council on Problem GamblingWeeblyFree platform
2026-08-03etax.vetactivity[.]roPolande-Urząd Skarbowy (Polish tax authority)Ghosty NetworksCompromised
2026-08-04elester.vetactivity[.]roGermanyELSTER (German tax portal)Ghosty NetworksCompromised
2026-08-04interdominios.vetactivity[.]roSpainInterdominios (Spanish registrar)Ghosty NetworksCompromised
2026-08-06vautron.vetactivity[.]roGermanyVautron (German registrar)Ghosty NetworksCompromised
2026-08-07sportsplus-gov-za[.]phSouth AfricaSport bodyAkamaiAttacker-owned
2026-08-08sars-gov-za.vetactivity[.]roSouth AfricaSouth African Revenue ServiceGhosty NetworksCompromised
2026-08-08www.sars-gov-za.vetactivity[.]roSouth AfricaSouth African Revenue ServiceGhosty NetworksCompromised
2026-08-11natis-gov-za.centroayuda[.]esSouth AfricaNATIS (licence/fines)Team InternetAttacker-owned
2026-08-12bma-gov-za-alexistoto.pages[.]devSouth AfricaBorder Management AuthorityCloudflareFree platform
2026-08-13cdmon.hahn-polyfilms[.]comSpaincdmon (Spanish registrar)Ghosty NetworksCompromised
2026-08-17webhostone-de.vetactivity[.]roGermanyWebhostone (German hosting/registrar)Ghosty NetworksCompromised
2026-08-181984-hosting.vetactivity[.]roIceland1984 Hosting (Icelandic hosting/registrar)Ghosty NetworksCompromised
2026-08-24etex-poland.energy-report[.]roPolande-Urząd Skarbowy (Polish tax authority)ᐈ Купить хостинг в Казахстане. Регистрация доменов .KZ, then Ghosty NetworksCompromised
2026-08-27nic-ae.energy-report[.]roUAEe& enterprise (UAE telecom)Ghosty NetworksCompromised
2026-09-01account.energy-report[.]rounknownunknownGhosty NetworksCompromised
2026-09-02secure-vmi.energy-report[.]roLithuaniaVMI (Lithuanian tax authority)Ghosty NetworksCompromised
2026-09-02login-taw.energy-report[.]rounknownunknownGhosty NetworksCompromised
2026-09-02intoz.koeller-solutions[.]deGermanyKoeller Solutions (company brand)Ghosty NetworksCompromised
2026-09-04skatturinn.onestaprod[.]roIcelandSkatturinn / RSK (Icelandic tax authority)Ghosty NetworksCompromised
2026-09-04vmi.onestaprod[.]roLithuaniaVMI (Lithuanian tax authority)Ghosty NetworksCompromised
2026-09-05refund.onestaprod[.]rounknownunknownGhosty NetworksCompromised
2026-09-08etax.onestaprod[.]roPolande-Urząd Skarbowy (Polish tax authority)Ghosty NetworksCompromised
2026-09-09checkout-openai-llc.onestaprod[.]roUSAOpenAI (checkout / card theft)Cyber_Folks, then Ghosty NetworksCompromised
2026-09-10linkguard.onestaprod[.]roIcelandSkatturinn / RSK (Icelandic tax authority)Ghosty NetworksCompromised
  1. [1] Scam alert - 'Tax Return Notification' | South African Revenue Service
  2. [2] Search - urlscan.io
  3. [3] Search - urlscan.io
  4. [4] Pivoting on a malspam infrastructure delivering JS malware backed by bulletproof networks
  5. [5] Search - urlscan.io

Frequently asked questions

What did this research find?

Two phishing domains from the VMRay UniqueSignal feed, both impersonating South African government bodies on Weebly, led to a dedicated server at 46.151.182[.]230 on Ghosty Networks (AS205759). That server hosted the same phishing kit under the brands of tax authorities, banks, registrars and other organizations in multiple countries, from South Africa and Poland to Iceland, Germany and the UAE.

How did the investigation move from two domains to the wider operation?

In three pivots. The shared *-gov-za naming convention surfaced more South African lures on Weebly, Cloudflare Pages and custom domains. A urlscan search on that pattern led to a SARS lure hosted on 46.151.182[.]230. Searching that IP returned 372 historical scans, including the Polish tax-authority lures and the other brands in the Indicators of Compromise table.

Why is the domain name the only usable fingerprint on Weebly and Cloudflare Pages?

Free sites on these platforms share IP addresses and a wildcard SSL certificate with thousands of legitimate sites, so neither identifies the operator. The naming pattern, such as *-gov-za, is the one selective signal.

How does the kit hide its pages from scanners?

The lure pages load an antibot.js script and then a Cloudflare Turnstile challenge, served through a captcha.html page, before showing any content. The SARS and Polish tax lures use the identical flow.

How can you tell a compromised domain from one the attacker registered?

Compare passive DNS history at the apex domain with the subdomain. A compromised domain shows years of stable apex history and only the subdomain diverges recently. An attacker-owned domain has no such split.

What should defenders do?

Block 46.151.182[.]230 and watch AS205759 for new hosting of the kit. Hunt for the captcha.html path with the antibot.js hash (SHA-256 095b95643a6c7ddbe2a70bd28e00556e2c2bf9b4eb83df93074d80fc1c9b60c0) in urlscan and in proxy logs. Monitor new *-gov-za domains, including subdomains on *.weebly.com and *.pages.dev.

Written by

Robin Dimyanoglu

Robin Dimyanoglu

External Threat Researcher / Platform Security Engineer

Robin Dimyanoglu is a Platform Security Engineer with over eight years of experience in Penetration Testing, DevSecOps, Cyber Threat Intelligence, Malware Reverse Engineering, and instructing. Robin is an active member of the cyber security community and has participated in multiple conferences as a speaker, particularly on his research related to Early Warning Intelligence and Predictive Cyber Defense. He actively develops and publishes methodologies on PredictiveDefense.io and is the author of the book Geopolitical Cyber Threat Intelligence. Robin previously worked at several consultancy firms, delivering threat intelligence to leading clients by reverse engineering Windows/PE and Linux/ELF binaries using tools like IDA Pro, WinDbg, Sysinternals, Rekall, and Fakenet. He also delivered hands-on training for SOC teams focused on reverse engineering and malware analysis.