WordPress website gehackt:
wat moet je doen?

Je website is gehackt. Geen paniek. In dit artikel leggen we stap voor stap uit wat je moet doen, gebaseerd op 21+ jaar ervaring met het opschonen van gehackte WordPress websites.

Het probleem: je weet vaak niet dat je gehackt bent

Vergeet de films waar een hacker je homepage vervangt door een schedel met een boodschap. Vergeet de spam casino links en de doorverwijzingen naar vreemde websites. Dat is amateurwerk uit 2010. Moderne hacks zijn onzichtbaar. Bewust onzichtbaar. Een professionele aanvaller verspilt geen exploits aan iets dat direct ontdekt wordt.

De realiteit is dat de meeste gehackte WordPress websites maandenlang normaal functioneren. De eigenaar merkt niets. De bezoekers merken niets. De website ziet er uit en werkt precies zoals altijd. Maar achter de schermen is de aanvaller al lang binnen. Ze hebben backdoors geinstalleerd, je database gekopieerd, je klantgegevens geextraheerd, je inloggegevens opgeslagen en wachten geduldig. Soms maanden. Soms jaren.

Hoe hacks in werkelijkheid ontdekt worden

In de praktijk worden de meeste hacks niet ontdekt door de website eigenaar. Ze worden ontdekt door:

  • Een datalek melding — klantgegevens duiken op in gelekte databases op het dark web. Maanden of jaren na de oorspronkelijke hack.
  • Je hosting provider — die detecteert dat je server ongewoon veel uitgaand verkeer genereert (spam versturen, DDoS deelname, crypto mining).
  • Professionele server monitoring — dit is hoe het hoort te werken. Een goed beveiligde hosting omgeving met gespecialiseerde monitoring software die alle bestandswijzigingen, database mutaties, ongebruikelijke processen en verdachte uitgaande verbindingen in realtime bijhoudt. Imunify360, file integrity monitoring, automated malware scanning. Een team van developers en systeembeheerders dat die meldingen dagelijks beoordeelt. Dat is hoe wij het doen. De meeste hacks die wij detecteren worden gevonden door onze monitoring, niet door de klant.
  • Per ongeluk — een developer die aan de site werkt en iets vreemds opmerkt in de code of de database. Toevallig, niet structureel.
  • Google Search Console — in zeldzame gevallen. Google detecteert vrijwel alleen de meest grove vormen van malware zoals zichtbare spam pagina's of doorverwijzingen. Subtiele backdoors, data exfiltratie en stille compromitteringen worden niet gedetecteerd. Vertrouw niet op Google als je beveiligingsmonitoring.

Waarom onzichtbaarheid de strategie is

Denk als een aanvaller. Je hebt via een kwetsbare plugin toegang gekregen tot een WordPress website. Wat is waardevoller: de homepage vervangen door spam (waardoor de eigenaar het onmiddellijk merkt en de exploit dicht) of stilletjes een backdoor installeren, de database kopieren met alle klantdata en bestelinformatie, en die toegang maanden bewaren voor toekomstig gebruik? De aanvaller kiest altijd voor optie twee. Een exploit is schaars en waardevol. Je verspilt het niet aan iets dat direct gedetecteerd wordt.

Sterker nog: veel aanvallers repareren de kwetsbaarheid die ze hebben gebruikt om binnen te komen, zodat andere hackers niet via dezelfde weg binnenkomen en de hack ontdekken. Ze willen exclusieve toegang en ze willen die zo lang mogelijk behouden.

En het stopt niet bij je website. Een gehackte WordPress site is het startpunt, niet het eindpunt. Via je wp-config.php komen ze bij je database credentials. Via je database komen ze bij klant e-mailadressen en wachtwoord hashes. Via je serverbestanden vinden ze configuraties die verwijzen naar andere systemen: e-mail accounts, FTP toegang, API keys voor externe diensten. Een gehackte website is de deur naar je complete digitale infrastructuur. Het gaat niet om je website. Het gaat om de data die erdoorheen stroomt en de systemen waarmee die verbonden is.

De werkelijke tijdlijn. Uit onze ervaring met het opschonen van gehackte sites: de gemiddelde tijd tussen de initiële hack en de ontdekking is 3 tot 6 maanden. In sommige gevallen langer dan een jaar. Al die tijd had de aanvaller volledige toegang tot de database, de bestanden en alle data die door de website stroomt. Klantgegevens, bestelinformatie, inloggegevens. Tegen de tijd dat de hack ontdekt wordt, is de data al lang geextraheerd.

Stappenplan: WordPress website gehackt herstellen

Dit stappenplan is gebaseerd op hoe wij in de praktijk gehackte WordPress websites opschonen. Niet met een automatische scan en een knop, maar handmatig en grondig. Elke stap is belangrijk. Sla er geen over.

Stap 1: Schakel PHP uit en zet de site offline

De eerste actie is niet "scan met Wordfence." De eerste actie is de site volledig offline halen en PHP uitschakelen op de server. Zolang PHP actief is, kan de malware zichzelf repliceren, data versturen naar externe servers en actief proberen om detectie te ontwijken. Bij veel hacks wordt malware pas actief als het detecteert dat er een scan draait en verbergt het zichzelf. Door PHP uit te schakelen voordat je iets anders doet, voorkom je dat de malware reageert op je schoonmaakacties.

Verander direct alle wachtwoorden: WordPress admin, FTP/SFTP, database, hosting panel. Als de hacker je inloggegevens heeft, kan die anders terugkomen terwijl je aan het opruimen bent.

Stap 2: Maak een volledige backup en isoleer

Kopieer alle bestanden en de database naar een geisoleerde omgeving. Niet naar dezelfde server of hetzelfde netwerk. Wij gebruiken een offline virtual machine (zonder internet verbinding) voor het analysewerk. Dit voorkomt dat malware met command-and-control servers communiceert tijdens het opschonen. Het voorkomt ook dat je per ongeluk de malware verspreidt naar andere sites op dezelfde server.

Verwijder daarna het gehackte account volledig van de originele server. Niet alleen de bestanden verwijderen maar het hele account. Elke restant kan een herinfectie veroorzaken.

Stap 3: Systematisch opschonen in geisoleerde omgeving

In de geisoleerde omgeving begint het echte werk:

  • Verwijder alle plugins — niet deactiveren maar volledig verwijderen. De database configuratie bewaar je, maar de bestanden gaan weg. Geinfecteerde plugin bestanden zijn de meest voorkomende bron van herinfectie.
  • Verwijder alle ongebruikte themes — elk theme dat je niet actief gebruikt is een potentieel risico. Bewaar alleen het actieve theme.
  • Controleer het actieve theme handmatig — ga door functions.php, header.php, footer.php en alle template bestanden. Zoek naar base64 encoded code, eval() functies, verdachte includes en code die er niet hoort te zijn. Hackers verstoppen vaak een PHP functie die een admin account aanmaakt in je functions.php. Subtiel en ondetecteerbaar door geautomatiseerde scanners.
  • Controleer de database tabel voor tabel — ga door wp_options, wp_posts, wp_postmeta. Zoek naar ingesloten JavaScript, base64 encoded strings en onbekende opties. Controleer de wp_users tabel op accounts die je niet kent en op gewijzigde wachtwoorden van bestaande accounts.
  • Controleer wp-uploads — de uploads map is een favoriet verstopplaats voor malware. PHP bestanden, verborgen .htaccess files, nep-afbeeldingen die eigenlijk PHP scripts zijn. Loop elke directory door.

Stap 4: Schone herinstallatie en vergelijking

Nu het kritische deel: bouw een schone basis. Installeer een verse WordPress installatie en vergelijk de database met de opgeschoonde versie. Importeer alleen de tabellen en rijen waarvan je 100% zeker bent dat ze schoon zijn. Bij twijfel: niet importeren.

Download alle plugins opnieuw van wordpress.org. Gebruik nooit de plugin bestanden van de gehackte installatie, ook niet als ze er schoon uitzien. Activeer plugins een voor een en controleer na elke activering of er geen problemen optreden.

Stap 5: Update alles

Na de schone installatie: update PHP naar de meest recente versie. Bij gehackte sites is PHP vrijwel altijd 4 tot 6 jaar verouderd. Update WordPress core naar de nieuwste versie. Update alle plugins en themes. Verouderde software is bijna altijd de oorzaak van de hack. Door alles te updaten sluit je de deur die de hacker heeft gebruikt om binnen te komen.

Stap 6: Scan en verifieer

Scan de opgeschoonde site met een professionele scanner (wij gebruiken Imunify360). Een geautomatiseerde scan na het handmatige opschoonwerk is een extra verificatie, geen vervanging. De scan bevestigt dat er geen restanten zijn die je hebt gemist.

Stap 7: Monitoren op een geisoleerde server

Zet de opgeschoonde site op een geisoleerde dev server. Niet direct op productie. Laat het een paar dagen draaien en monitor actief op bestandswijzigingen, ongebruikelijke database queries en verdachte uitgaande verbindingen. Sommige backdoors zijn tijdgebonden: ze activeren pas na een bepaalde periode of op een specifiek tijdstip. Een paar dagen monitoring vangt dat op.

Stap 8: Livegang op beveiligde hosting

Als de monitoring geen problemen laat zien, verplaats de site naar een professioneel beveiligde productieserver. Met dagelijkse backups, Imunify360 malware bescherming, brute force bescherming, CloudLinux isolatie en continue monitoring. De server configuratie is minstens zo belangrijk als de WordPress installatie zelf. Een schone WordPress site op een slecht beveiligde server wordt opnieuw gehackt.

"Het verschil tussen onze aanpak en een automatische scan met Wordfence? Wij vinden de backdoor die de scanner niet ziet. De backdoor in je database die een admin account aanmaakt. Het wachtwoord dat maanden geleden stilletjes is gewijzigd. De PHP functie die pas over drie maanden activeert. Dat vind je alleen door handmatig door elke tabel en elk bestand te gaan."

Het stappenplan in het kort.

8 stappen van hack naar herstel.

Offline en isoleren

PHP uitschakelen, site offline, alle wachtwoorden wijzigen.

Backup en verwijderen

Volledige backup naar geisoleerde omgeving. Origineel account volledig verwijderen.

Handmatig opschonen

In een offline VM: plugins verwijderen, themes controleren, database tabel voor tabel doorlopen.

Schone herinstallatie

Verse WordPress, plugins opnieuw downloaden, database vergelijken en alleen schone data importeren.

Updaten, scannen en monitoren

PHP updaten, alles updaten, scannen met Imunify360, monitoren op geisoleerde server.

Hoe WordPress websites gehackt worden

Om een hack te voorkomen moet je begrijpen hoe ze binnenkomen. Dit zijn de meest voorkomende aanvalsvectoren die we in de praktijk tegenkomen:

Verouderde plugins met bekende kwetsbaarheden (CVE's)

Dit is veruit de meest voorkomende oorzaak. Plugins met bekende beveiligingslekken (CVE's) worden actief misbruikt door geautomatiseerde scanners die het hele internet afzoeken naar kwetsbare installaties. Het gaat niet om gerichte aanvallen op jouw site specifiek, maar om bots die miljoenen websites scannen en elke kwetsbare plugin automatisch exploiteren. Een enkele verouderde plugin met een bekende CVE is genoeg.

Wij scannen websites op bekende plugin kwetsbaarheden. Het is niet ongebruikelijk om websites te vinden met 10 tot 15 kritieke CVE's in hun plugins. Dat zijn 10 tot 15 open deuren waar een bot automatisch doorheen kan lopen.

Zwakke wachtwoorden en brute force

WordPress sites waar de standaard gebruikersnaam "admin" niet is gewijzigd, waar gebruikersenumeratie niet is geblokkeerd (je kunt de admin username achterhalen via de REST API) en waar geen brute force bescherming actief is, zijn kwetsbaar voor wachtwoord aanvallen. Bots proberen duizenden wachtwoordcombinaties per uur. Een zwak wachtwoord wordt in minuten gekraakt.

Slechte server configuratie

De meeste hacks beginnen bij een hergebruikt wachtwoord. In ons artikel Jouw wachtwoord staat al op internet leggen we uit hoe credential stuffing werkt.

Een verrassend aantal hosting omgevingen heeft fundamentele beveiligingsproblemen. Open phpMyAdmin panels die publiek toegankelijk zijn. WordPress configuratiebestanden (wp-config.php) die leesbaar zijn via de browser. Backup bestanden die in de webroot staan. Directory listing die is ingeschakeld. Wij hebben bij het scannen van websites zelfs database subdomeinen gevonden die publiek toegankelijk waren: een complete database met alle klantdata, bestellingen en inloggegevens vrij te benaderen voor iedereen die het subdomein kent.

De complete aanvalsketen: hoe een hack er in de praktijk uitziet

Laat ons een realistische aanvalsketen beschrijven die we regelmatig tegenkomen. Een website draait een plugin met een bekende CVE. Een geautomatiseerde bot vindt die kwetsbaarheid. Via de exploit krijgt de aanvaller leestoegang tot bestanden op de server. Het eerste bestand dat ze opvragen: wp-config.php. Daarin staan de database credentials. De volgende stap: controleren of het hosting bedrijf phpMyAdmin open heeft staan (en dat is verrassend vaak het geval). Met de database credentials en phpMyAdmin heeft de aanvaller volledige controle over de database. Ze dumpen de complete database (klantdata, bestelinformatie, wachtwoord hashes). Ze creëren een admin account of wijzigen het wachtwoord van een bestaand account. Ze voegen een backdoor toe via de database. En ze hebben alle tijd van de wereld, want de website eigenaar merkt niets.

Dit is geen theoretisch scenario. Dit is wat we zien als we sites scannen en opschonen. De combinatie van een kwetsbare plugin, een leesbare wp-config.php en een publiek toegankelijke database interface is het recept voor een volledige compromittering. En het begint allemaal bij een enkele verouderde plugin.

Verouderde PHP versie

PHP versies die niet meer worden ondersteund (PHP 7.x en ouder) ontvangen geen beveiligingspatches meer. Bekende kwetsbaarheden in die PHP versies worden niet meer gedicht. Bij vrijwel elke gehackte site die wij opschonen is PHP 4 tot 6 jaar verouderd. Het updaten van PHP is een van de eenvoudigste en meest effectieve beveiligingsmaatregelen die je kunt nemen.

Nulled themes en plugins

Betaalde themes en plugins die gratis worden aangeboden via dubieuze websites bevatten vrijwel altijd malware. De "gratis" versie is de prijs die je betaalt met je veiligheid. De malware wordt meegeleverd in de code en activeert zodra je het theme of de plugin installeert. Gebruik nooit themes of plugins van onbekende bronnen. Download alleen van wordpress.org of direct van de officiele website van de developer.

De verontrustende realiteit: wat onze scanner vindt

We scannen regelmatig websites in onze regio, inclusief sites van andere webbureaus en hun klanten. De resultaten zijn verontrustend. Dit zijn echte bevindingen van onze scanner, zonder namen te noemen:

Website van een webbureau in de regio: 15 kritieke CVE's in twee plugins (een slider plugin en een theme framework). Beide plugins meerdere jaren niet geupdate. Publiek toegankelijk phpMyAdmin panel op een subdomein: de complete database met alle klantdata vrij toegankelijk voor iedereen die het adres kent. 4 publiek vindbare admin gebruikersnamen via de WordPress REST API. Standaard login pagina zonder brute force bescherming. WordPress readme.html en license.txt toegankelijk. Overall grade: F.

Klant websites gebouwd door een ander bureau: Recent opgeleverde websites (letterlijk de nieuwste portfolio items van het bureau) met 3 kritieke CVE's in een marketing automation plugin. CVE's van jaren oud in een net opgeleverde website. Dit betekent dat het bureau standaard verouderde plugin versies installeert bij elke nieuwe klant. Elk project dat ze opleveren is bij de lancering al kwetsbaar. En dit is geen uitzondering: bij het doorlopen van meerdere portfolio items van hetzelfde bureau bleken ze allemaal dezelfde verouderde plugins met dezelfde CVE's te gebruiken.

Wat deze bureaus gemeen hebben: ze gebruiken allemaal dezelfde aanpak. Een gekocht theme met Elementor of een andere pagebuilder. Tientallen plugins voor basisfunctionaliteiten. Geen custom code. Ze installeren het, leveren het op en doen er vervolgens niets meer mee. De plugins worden niet geupdate, de beveiliging wordt niet gemonitored en de klant weet niet dat zijn website een open deur is voor hackers.

Scan je website. Benieuwd of jouw website kwetsbaarheden heeft? Onze scanner checkt op bekende plugin CVE's, verouderde software, publiek toegankelijke gevoelige bestanden, openstaande login pagina's, publieke gebruikersnamen en meer. Scan je website hieronder en zie direct waar de risico's zitten. De resultaten zijn vaak een eye-opener.

Heeft jouw WordPress website kwetsbaarheden?

Scan je website op bekende plugin CVE’s, verouderde software, openstaande beveiligingsproblemen en meer.

Waarom geautomatiseerde scanners niet genoeg zijn

De meeste artikelen over gehackte WordPress sites adviseren: "Installeer Wordfence, scan, en verwijder wat het vindt." Dat is onvoldoende. Dit is waarom:

Backdoors die scanners niet vinden

Hackers die weten wat ze doen, installeren meerdere backdoors op verschillende plekken. Als je een vindt en verwijdert, activeren de andere. De meest voorkomende backdoors die geautomatiseerde scanners missen:

  • Admin account creatie via functions.php — een paar regels PHP code in je functions.php die bij elke paginaload controleren of een specifiek admin account bestaat en het aanmaken als dat niet zo is. Zelfs als je het account verwijdert via WordPress admin, wordt het automatisch opnieuw aangemaakt. Een scanner detecteert dit niet als malware omdat het technisch valide WordPress code is.
  • Wachtwoord wijziging van bestaande accounts — in plaats van een nieuw account aan te maken, wijzigen ze het wachtwoord van een bestaand admin account. Nog subtieler, want er verschijnt geen nieuw account in je gebruikerslijst. En WordPress toont wachtwoorden niet in de admin interface, dus je kunt niet zien dat het is gewijzigd.
  • Tijdgebonden activering — backdoors die pas activeren na een bepaalde datum of na een bepaald aantal dagen. Je schoont je site op, alles lijkt goed, de scanner is schoon. Drie maanden later activeert de backdoor en begint het opnieuw.
  • Database payload — kwaadaardige code opgeslagen in de database (wp_options, wp_posts) die bij het laden van de pagina wordt uitgevoerd. Een bestandsscan vindt dit niet omdat het niet in bestanden staat maar in de database.
  • Verborgen bestanden in wp-uploads — PHP bestanden vermomd als afbeeldingen (.php bestanden met een .jpg extensie, .htaccess regels die PHP uitvoering inschakelen in de uploads map). De uploads map wordt door veel scanners overgeslagen omdat die "alleen afbeeldingen bevat."

Dit is waarom wij handmatig door de database gaan, tabel voor tabel. En waarom we een schone WordPress installatie opzetten en alleen geverifieerde data importeren in plaats van de bestaande installatie te "schoonmaken." Schoonmaken is raden. Een schone herinstallatie is zekerheid.

"Een geautomatiseerde scan na een hack is als een metaaldetector gebruiken in een mijnenveld. Het vindt de meeste mijnen maar je wilt niet de ene missen die het niet vindt. Wij ruimen het hele veld handmatig op en leggen een nieuw veld aan."

Hoe je voorkomt dat je WordPress website gehackt wordt

Voorkomen is goedkoper, sneller en minder stressvol dan genezen. Dit zijn de maatregelen die het verschil maken:

Houd alles up-to-date

WordPress core, plugins en themes moeten geupdate worden zodra er een update beschikbaar is. Beveiligingspatches dichten lekken die actief worden misbruikt. Elke dag dat je wacht met updaten is een dag dat je kwetsbaar bent voor een bekende exploit. Wij testen updates voordat we ze doorvoeren om conflicten te voorkomen, maar de update zelf is niet optioneel.

Minimaliseer plugins

Elke plugin is een potentieel beveiligingslek. Hoe minder plugins, hoe kleiner het aanvalsoppervlak. Verwijder plugins die je niet gebruikt. Vervang zware plugins met veel functionaliteit door lichtgewicht alternatieven die alleen doen wat je nodig hebt. Of laat de functionaliteit custom bouwen als onderdeel van je theme, zodat er geen externe code nodig is.

Sterke wachtwoorden en 2FA

Gebruik lange, unieke wachtwoorden voor elk account. Activeer tweefactorauthenticatie (2FA) voor alle admin accounts. Verwijder of hernoem het standaard "admin" account. Blokkeer gebruikersenumeratie via de REST API. Met deze maatregelen wordt brute force praktisch onmogelijk.

Professionele hosting met beveiliging

De server waarop je website draait is de eerste verdedigingslinie. Onze servers draaien met CloudLinux (elke website geisoleerd), Imunify360 (continue malware scanning), brute force bescherming, WAF (Web Application Firewall), dagelijkse backups en 24/7 monitoring. Als een aanval plaatsvindt, wordt die geblokkeerd voordat de aanvaller bij WordPress komt. Meer over onze hosting.

Dagelijkse backups

Backups redden je niet van een hack maar ze beperken de schade. Als je dagelijkse backups hebt die 30 dagen worden bewaard, kun je altijd terug naar een punt voordat de hack plaatsvond. Zonder backup ben je afhankelijk van handmatig opschonen, wat duurder en risicovol is. Bij onze hosting zijn dagelijkse backups met 30 dagen retentie standaard inbegrepen.

Verberg en beveilig gevoelige bestanden

wp-config.php mag nooit leesbaar zijn via de browser. XML-RPC moet uitgeschakeld zijn (het wordt vrijwel alleen misbruikt voor brute force aanvallen). De WordPress login pagina moet verborgen of beveiligd zijn. De REST API gebruikersendpoint moet geblokkeerd zijn. Versienummers moeten verwijderd zijn uit broncode en URL's. Dit zijn basale hardening maatregelen die elk hosting bureau zou moeten implementeren maar die verrassend vaak ontbreken.

Veelgestelde vragen over gehackte WordPress websites.

Schakel PHP uit op je server en zet de site offline. Verander direct alle wachtwoorden (WordPress, FTP, database, hosting panel). Neem dan contact op met een professional. Probeer niet zelf te scannen terwijl de site nog online is.
In theorie ja, als je technische kennis hebt. In de praktijk missen de meeste doe-het-zelf pogingen backdoors en restanten die later tot herinfectie leiden. Geautomatiseerde scanners vinden niet alles.
Dat hangt af van de ernst en de grootte van de website. Neem contact op voor een inschatting. Bij onze managed hosting klanten is malware verwijdering inbegrepen.
Een grondig opschonen en herinstalleren kost een halve tot een hele dag. Daarna enkele dagen monitoring. Totale doorlooptijd: 3-5 werkdagen.
In 95% van de gevallen: verouderde plugins met bekende CVE’s, zwakke wachtwoorden, verouderde PHP versie of slechte server beveiliging. Scan je website met onze scanner om de kwetsbaarheden te zien.
Ja, als de hack zichtbare gevolgen heeft. Maar de meeste moderne hacks zijn onzichtbaar. Het grotere risico is data verlies, reputatieschade en AVG boetes als klantgegevens lekken. Reken niet op Google om een hack te detecteren.
Omdat niet alle backdoors zijn verwijderd. Hackers installeren meerdere backdoors. Als je er een mist, gebruiken ze die om opnieuw binnen te komen. Daarom gebruiken wij een schone herinstallatie.
Nee. WordPress core is goed beveiligd. Het probleem zit bijna altijd in verouderde plugins, slechte wachtwoorden, verouderde PHP en slechte server configuratie.
Als er persoonsgegevens zijn gelekt ben je onder de AVG verplicht om dit te melden bij de Autoriteit Persoonsgegevens binnen 72 uur. Je moet ook de betrokken personen informeren.
Professionele managed hosting met beveiliging, alle software up-to-date, minimaal plugins, sterke wachtwoorden met 2FA, dagelijkse backups. Lees meer over WordPress beveiliging.
Wordfence biedt basale bescherming maar draait binnen WordPress en kan niet beschermen tegen server-level aanvallen. Echte beveiliging begint op serverniveau met Imunify360 en CloudLinux.
Geen enkele hosting kan 100% garantie geven. Maar onze hosting maakt het maximaal moeilijk: CloudLinux isolatie, Imunify360, WAF, brute force bescherming, dagelijkse backups en proactieve monitoring.

WordPress website gehackt?
Bel ons.

Wij hebben 21+ jaar ervaring met het opschonen en beveiligen van gehackte WordPress websites. Bel ons en we helpen je vandaag nog.