Blootgestelde hackerserver onthult WP-SHELLSTORM backdooring van duizenden WordPress-sites

Een team van cybercriminelen liet een van haar eigen servers drie weken wijd open op het internet staan, en onthulde de interne werking van de operatie: de hacktools, de activiteitenlogboeken en doelwitlijsten met namen van meer dan 1,4 miljoen websites.

Er werd in veel minder gevallen daadwerkelijk ingebroken, maar de blootgestelde bestanden lieten onderzoekers zien hoe een massale site-hackoperatie van binnenuit verloopt.

De operatie, nu gevolgd als WP-SHELLSTORMis wat SOCRadar een webshell-toegangsmakelaardij noemt: een ploeg die op grote schaal sites binnendringt, een verborgen achterdeur (een “webshell”) op elke site plaatst, en pakketten die toegang krijgen voor wederverkoop.

De sterkste activiteit trof WordPress-sites met verouderde plug-ins. Als je WordPress of Joomla gebruikt, zaten de twee fouten die er het meest toe deden in de Breeze caching-plug-in en Joomla’s JCE-editor; ga naar de onderstaande checklist als jij dat bent.

Een vergeten server

Twee teams groeven in dezelfde blootliggende map. Het dreigingsinformatieteam van SOCRadar zag het op 11 juni 2026 op een in de VS gevestigde gehuurde server op 137.175.93(.)126, zonder dat er een wachtwoord op stond. Er zat ongeveer 800 MB in 434 bestanden: webshells, exploit-scripts, scanresultaten, de geschiedenis van de getypte opdrachten van de operator en command-and-control-instellingen.

Ctrl-Alt-Intel had dezelfde directory ook geanalyseerd, nadat ze deze op het open directory-platform van Hunt.io hadden gevonden en op 22 juni gepubliceerd, weken vóór SOCRadars eigen artikel van 9 juli. De blootstelling kwam neer op een eenvoudige fout: de operator startte een eenvoudige Python-webserver om bestanden te verplaatsen en liet deze 22 dagen draaien.

De bemanning ontdekte publiekelijk bekende bugs in website-plug-ins, de meeste in WordPress, en bouwde geautomatiseerde scanners om deze exploits af te vuren op enorme doelwitlijsten afkomstig van FOFA, een Chinese zoekmachine voor op internet aangesloten systemen, vergelijkbaar met Shodan.

Als een site een kwetsbare versie draaide, kon de exploit een webshell uploaden: een klein script waarmee de aanvaller vanaf elke locatie opdrachten op de server kan uitvoeren, bestanden kan lezen, wachtwoorden kan stelen en dieper het netwerk kan ingaan.

De toolkit omvatte 27 bekende tekortkomingen, hoewel een handjevol het meeste werk deed. De grootste oorzaak was een bug in de Breeze caching-plug-in (CVE-2026-3844), waarmee de bemanning op meer dan 45.000 doelen schoot en, naar eigen zeggen, meer dan 17.000 van hen achter de deur wist te zetten.

Daar zit een addertje onder het gras: het werkt alleen als een niet-standaard instelling “Bestanden lokaal hosten – Gravatars” is ingeschakeld, dus de meeste Breeze-installaties zijn nooit zichtbaar geworden.

De cijfers, in duidelijke bewoordingen

Het hoofdcijfer behoeft een kanttekening. De 1,4 miljoen domeinen zijn het aantal domeinen dat op de doellijsten stond, niet het aantal waarin werd ingebroken, en die lijsten omvatten WordPress, Joomla en andere platforms. Het grootste bestand was een lijst met 587.034 Joomla-doelen.

Het daadwerkelijk gecompromitteerde aantal was veel kleiner, en de twee onderzoeksteams maten het anders: de gededupliceerde telling van Ctrl-Alt-Intel vond 25.195 sites met bevestigd of gevalideerd bewijs van compromissen, terwijl SOCRadar, actieve webshells tellend, het live cijfer op meer dan 5.700 schatte.

Eén fout laat de kloof duidelijk zien: een Joomla-bug werd op meer dan 560.000 doelen afgevuurd, maar kwam op slechts 77 daarvan terecht.

Op iemands scanlijst staan ​​is niet hetzelfde als gehackt worden. Houd daar rekening mee wanneer een rapport leidt tot een beangstigend streefcijfer.

De tooling en een eerdere campagne

De belangrijkste achterdeur, een bestand met de naam down.php, was zwaar versluierd, vier lagen diep, en lijkt te zijn afgeleid van een open-source Chinese webshell genaamd BestShell. Eenmaal actief, kon het bestanden beheren, opdrachten uitvoeren, reverse shells openen, het netwerk scannen en controleren welke beveiligingssoftware de host gebruikte.

Voor hun eigen externe toegang gebruikte de bemanning een SNOWLIGHT-dropper om VSell te installeren, een sluipende achterdeur die de procesnaam vermomt als (kworker/0:2) om op te gaan in de kernelthreads in een proceslijst.

Deze twee tools hebben een geschiedenis: in april 2025 koppelde Sysdig deze SNOWLIGHT-naar-VShell-keten aan de vermoedelijke Chinese staatsgroep UNC5174, een activiteit die THN destijds bestreek. VShell zelf is echter een veelgebruikt instrument in Chineessprekende criminele kringen, dus de aanwezigheid ervan alleen wijst niet op een statelijke actor.

De server bevatte ook sporen van een eerdere, heel andere klus. SOCRadar ontdekte dat vóór de luidruchtige WordPress-golf begin mei 2026 dezelfde ploeg een stillere campagne voerde tegen bedrijfs-Java-systemen. Het haalde 613 configuratiebestanden op van 11 systemen van negen bedrijven in fintech, e-commerce, logistiek, gaming en elektronica.

De buit omvatte cloudinlogsleutels voor AWS, Alibaba Cloud, Oracle, Tencent en DigitalOcean, databasewachtwoorden en Alipay RSA-privésleutels. Het leunde op een oude, bekende bug in Nacos, een configuratieserver (CVE-2021-29441), waarmee een aanvaller de login kan overslaan door een enkele webheader te vervalsen.

SOCRadar interpreteert de timing als een reeks: eerst de hoogwaardige bedrijfsreferenties bemachtigen, en weken later overgaan op het grootschaligere achterdeurwerk, een financieringsronde voordat wordt opgeschaald.

Slordig handelswerk

Beide teams beoordelen met middelmatig tot hoog vertrouwen dat de telefoniste Chinees of Chineessprekend is. Ze wijzen op het vloeiende Vereenvoudigde Chinees in de code- en commandogeschiedenis, de afhankelijkheid van FOFA (waarvan de onderzoekers opmerken dat er een Chinees telefoonnummer voor nodig is om te registreren) en de Godzilla- en VShell-tools die de voorkeur genieten in Chineessprekende forums.

SOCRadar gaat nog een stap verder en beschouwt de bemanning als financieel gemotiveerd in plaats van als staatsbestuurd. Namen in de bestanden (tance, chen-kk, chenyk) worden behandeld als losse aanwijzingen, niet als bewijs. Eén los eindje valt op: één enkel IP-adres in Taiwan deed meer dan 42.000 verzoeken om de eigen tools van de bemanning te downloaden. Het kan een tweede operator, een klant of een andere onderzoeker zijn. De logboeken kunnen het niet oplossen.

Voor een groep die een echt capabele gereedschapsketen beheerde, was de bemanning onzorgvuldig. Het liet de server open, liet een FOFA-configuratiebestand achter dat FOFA kan traceren via zijn wetshandhavingskanaal, en liet een onbewerkte commandogeschiedenis achter die het hele ding uiteenzette. Toen het eindelijk merkte dat het ergens tussen 2 en 4 juli was opgemerkt, verwijderde het een reeks logregels. Drie weken te laat.

De blunder is een bekende. In maart 2026 betrapte dezelfde onderzoekswinkel de Russische Fancy Bear (APT28) op dezelfde manier: een vergeten open directory verspreidde de phishing-tools en logs van de groep, in een campagne Hunt.io genaamd Operation Roundish.

Wat nu te doen

Als u een van de beoogde software gebruikt, controleer deze dan vandaag nog. Dit zijn geen obscure bugs: twee ervan worden elders actief uitgebuit.

Wordfence heeft dit voorjaar tienduizenden geblokkeerde aanvallen op de Everest Forms Pro-fout (CVE-2026-3300) gevolgd, en de Joomla JCE-bug (CVE-2026-48907) is een zeer ernstige fout die CISA heeft toegevoegd aan de lijst met bekende uitgebuite kwetsbaarheden.

  • WordPress en Joomla, eerst: patch Breeze (CVE-2026-3844, opgelost in 2.4.5) als de niet-standaard instelling “Host bestanden lokaal – Gravatars” is ingeschakeld; het leverde hier de meeste achterdeurtjes op. Behandel de Joomla JCE-fout (CVE-2026-48907, opgelost in 2.9.99.5) ook als urgent, aangezien deze een maximale ernst heeft en op de actief geëxploiteerde lijst van CISA staat, ook al is deze nauwelijks in deze campagne terechtgekomen.
  • WordPress en Joomla, controleer ook: ThemeREX Addons (CVE-2026-1969), Eenvoudige bestandslijst (CVE-2020-36847), Aangepaste CSS JS PHP (CVE-2026-6433), BerqWP (CVE-2025-7443), Ninja Forms-uploads (CVE-2026-0740), WavePlayer (CVE-2025-12057), WPBookit (CVE-2025-7852) en WP Bestandsbeheer (CVE-2020-25213). Beide rapporten vermelden de Simple File List onder CVE-2025-34085, een nu afgewezen duplicaat; het geldige ID is CVE-2020-36847.
  • Naco’s: upgrade naar 2.2.1 of hoger en schakel authenticatie in (nacos.core.auth.enabled=true). Als uw exemplaar ooit openbaar is geworden, roteert u alle referenties die erin voorkomen, niet alleen de voor de hand liggende.
  • XXL-job en springlaars: sluit niet-geverifieerde uitvoerdereindpunten en schakel /actuator/heapdump uit in productie.
  • Op jacht naar de achterdeurtjes: zoek naar de webshell-bestandsnaampatronen van de crew, zoals .bd.php, .wp-log.php en .brq-*.php. Controleer vervolgens elk proces met de naam (kworker/X:Y). Een echte kernelthread voert geen eigen programma uit, dus het is /proc//exe verwijst naar niets. Het heeft ook geen opdrachtregel en geen netwerkaansluitingen. Een (werknemer) die een van deze zaken laat zien, is een bedrieger. Blokkeer de bekende infrastructuur: 137.175.93(.)126, 43.108.17(.)80 en het domein xs.xxooonline(.)eu(.)cc.

Wat WP-SHELLSTORM de aandacht waard maakt, is niet hoe geavanceerd het is, maar hoe gewoon. Publieke exploits, geautomatiseerd scannen en een doelwitlijst van een miljoen regels lang waren voldoende om sites op grote schaal in gevaar te brengen, geen zero-day vereist. De details zijn alleen openbaar omdat de bemanning vergat de eigen server te sluiten.

The Hacker News heeft contact opgenomen met SOCRadar voor meer details over hun bevindingen en zal dit verhaal bijwerken bij eventuele reacties.

Thijs Van der Does