Een gehackte WordPress website herstellen, hoe doe je dat?

WordPress is inmiddels het meest gebruikte open-source content management system (CMS) ter wereld. Miljoenen website-eigenaren maken er op dagelijkse basis gebruik van om hun bezoekers een uitstekende ervaring te geven. Door de populariteit dat WordPress kent, is het een platform waar veel mensen dagelijks hun steentje aan bijdragen. Zo kent het platform zijn eigen ontwikkelaars, maar ook worden er thema’s en plug-ins door externe ontwikkelaars gemaakt. Echter zorgt deze populariteit er ook voor dat veel cybercriminelen hun pijlen op het CMS richten.

Voor velen is WordPress hun dagelijks brood. Het is dan ook best een schokkende ervaring voor de eigenaar als de website, waarin zoveel werk en tijd is gestoken, door een hack ineens niet meer (correct) werkt. Via een digitale inbraak zullen cybercriminelen bijvoorbeeld proberen om spam te versturen, phishing-pagina’s te genereren of simpelweg malware (kwaadaardige software) te verspreiden. Je kunt begrijpen dat een dergelijke aanval effecten met zich meebrengt die extreem schadelijk voor de website en zijn reputatie zijn.

Als je dit artikel hebt gevonden schat ik de kans aanwezig dat je denkt dat jouw WordPress website is gehackt. Ik snap dat deze situatie erg stresserend is, maar probeer niet in paniek te raken. In dit artikel help ik je te controleren of je website wel écht gehackt is en om deze weer hackvrij te maken als dat inderdaad zo is.

Is de website wel echt gehackt?

Vaak raken mensen in paniek op het moment dat de website zich anders dan verwacht gedraagt. Dit kan bijvoorbeeld zijn omdat een deel van het thema niet goed werkt, of wanneer er spamberichten onder een artikel zijn geplaatst. Het is daarom belangrijk om stil te staan bij de verschillen tussen een website die simpelweg niet goed werkt en daadwerkelijk is gehackt. Een gehackte website kun je bijvoorbeeld herkennen doordat deze:

  • Bezoekers geven aan dat zij naar malafide pagina’s worden doorgestuurd bij het bezoeken van jouw website. Neem deze meldingen altijd serieus, zelfs als het probleem niet lokaal te reproduceren is. Sommige hacks zijn namelijk slim genoeg om een beheerder te herkennen. Hiermee voorkomt de hacker dat een beheerder de gehackte inhoud te zien krijgt, om zo ontdekking te voorkomen.
  • Er wordt een rode pagina getoond zodra de website via Google wordt bezocht. Op deze pagina wordt geschreven dat de website is geïnfecteerd en deze in staat is om bezoekers te besmetten met kwaadaardige software.
  • Er zijn vreemde resultaten op Google zichtbaar op het moment dat er gezocht wordt op ‘site:domeinnaam.nl’ (vervang ‘domeinnaam.nl’ met jouw internetadres). Omdat deze zoekopdracht alle geïndexeerde pagina’s van een specifieke domeinnaam laat zien, is dit een perfecte manier om te zien wat Google op de website heeft aangetroffen. Als er resultaten naar voren komen die niet herkenbaar zijn, kan dit een teken van een hack zijn.
  • Op de website worden advertenties getoond die niet door de beheerder zijn geplaatst. Hiermee kan de hacker geld verdienen met het verkeer op de website. Hierbij geldt opnieuw dat dit niet altijd voor de beheerder zichtbaar is. Luister daarom goed naar bezoekers op het moment dat zij een melding maken over vreemde of storende advertenties.

Zodra is vastgesteld dat de website daadwerkelijk is gehackt, is het noodzaak om zo snel mogelijk aan de slag te gaan met de herstelprocedure. Dit om te voorkomen dat bezoekers worden geïnfecteerd met malware, spam wordt verstuurd of zoekmachines de gehackte pagina’s indexeren, waardoor de opgelopen (reputatie)schade alleen maar toeneemt. Hiervoor is wel toegang tot het administrator-paneel van WordPress nodig. Heb je dit niet? Kijk dan of je een back-up hebt of contacteer je hostingprovider om te zien hoe zij je kunnen helpen.

Tip: Werkt het beheerpaneel niet? Het kan helpen om een verse WordPress-installatie vanaf WordPress.org te downloaden, deze uit te pakken, de ‘wp-content’-map weg te gooien en de overgebleven bestanden vervolgens die in de FTP-locatie staan te laten overschrijven. Zorg er wel eerst voor dat er een back-up is gemaakt.

Stap 1: Maak direct een back-up van de website en database

Voordat het herstellen van de website daadwerkelijk kan worden gedaan, dient de WordPress-website eerst te worden geback-upt. Dit moet om twee redenen gedaan worden.

Allereerst bestaat er een kans dat de hostingprovider de website verwijdert op het moment dat zij de hack detecteren. Dit kan worden gedaan om te voorkomen dat de gehackte website een grote hoeveelheid van de beschikbare systeembronnen van de webserver in beslag neemt, maar ook om andere websites op het platform te beschermen tegen een potentiële infectie.

Ten tweede is een back-up nodig voor het geval de herstelprocedure niet verloopt zoals verwacht. Zonder fatsoenlijke back-up ben je namelijk verder van huis zodra het mis gaat, zeker wanneer er ook geen oudere back-up is. Houd er hierbij rekening mee dat zowel de FTP-locatie, waar de bestanden van de website zich in bevinden, als de bijbehorende database geback-upt moeten worden.

Stap 2: Scan de lokale (werk)omgeving

Het kan voorkomen dat een website wordt gehackt doordat de beheerder via een geïnfecteerd of onbeveiligd netwerk verbinding maakt met de website. Doordat de gebruikersgegevens op deze manier buitgemaakt kunnen worden, heeft de aanvaller de digitale sleutel in handen om zichzelf binnen te kunnen laten. Voorkom daarom dat over een publiekelijk netwerk verbinding wordt gemaakt met de website, zeker als het via een niet-versleutelde http-verbinding is.

Verder kunnen lokale virussen of malware deze informatie ook buitmaken. Scan daarom alle computers, laptops en mobiele apparaten op kwaadaardige software. Zo wordt de onderschepping van belangrijke informatie voorkomen, ook na de herstelprocedure.

Een goede combinatie van software dat hiervoor gebruikt kan worden is Avast en MalwareBytes. Deze zijn ook nog eens volledig gratis! Dit advies geldt overigens zowel voor Windows-, macOS- als Linux-apparaten.

Stap 3: Update WordPress naar de laatste versie

Vaak kan een website worden gehackt doordat deze oude code bevat. In veel gevallen is dergelijke code aanwezig doordat verouderde plug-ins of thema’s niet door de beheerder zijn geüpdatet naar de laatst beschikbare versie.

Ook WordPress zelf ontvangt regelmatig nieuwe updates. Zodra dit basisonderhoud niet plaatsvindt, wordt de kans op een hack steeds groter. Nieuwe updates optimaliseren namelijk niet alleen code waardoor de website beter en sneller gaat werken, maar ook beveiligingslekken worden hiermee gedicht.

Stap 4: Schoon WordPress op en verwijder oude bestanden

Ook al is de laatste versie van een plug-in geïnstalleerd, als deze jaren geleden is uitgebracht zorgt dit nog steeds voor een potentieel veiligheidsrisico. Probeer daarom moderne vervangers te vinden voor dergelijke plug-ins, of verwijder deze simpelweg. Verwijder ook alle plug-ins en thema’s die niet langer gebruikt worden. Ook al voegen deze namelijk niets aan de website toe, omdat de bestanden nog steeds via het internet toegankelijk zijn kan dit een veiligheidsrisico opleveren.

Verwijder ook eventuele back-ups of oude websites die in een onderliggende map aanwezig zijn. Ook deze zijn namelijk nog steeds via het internet toegankelijk en kunnen daarom misbruikt worden.

Stap 5: Scan de website om de hack te vinden

Om alle gehackte bestanden te vinden, dient WordFence te worden geïnstalleerd. Dit is een gratis firewall-plug-in die het mogelijk maakt om een geavanceerde scan uit te voeren op de bestanden van de website. Ook heeft WordFence de mogelijkheid om bestanden en mappen buiten de WordPress-installatie te scannen, door de broncode van deze na te lopen. Bij specifieke kenmerken van gevaarlijke code zal hier een melding van worden gemaakt.

Tot slot is een van belangrijkste eigenschappen van WordFence de mogelijkheid om WordPress-bestanden, waaronder die van plug-ins en thema’s die via WordPress.org worden aangeboden, te vergelijken met de variant die door de ontwikkelaar is uitgebracht. De beheerder krijgt gevonden verschillen in de scanresultaten te zien, waarna besloten kan worden wat hiermee moet worden gedaan.

Voordat de daadwerkelijke scan uitgevoerd mag worden, dienen de volgende opties binnen de instellingen van WordFence te worden ingeschakeld:

  • Scan theme files against repository versions for changes
  • Scan plugin files against repository versions for changes

Wanneer de bovenstaande opties aan staan kan de scan worden uitgevoerd. De andere relevante opties horen namelijk standaard aan te staan. WordFence zal de scan opstarten en toont de resultaten meteen op dezelfde pagina. Het kan enkele minuten duren voordat de scan volledig is afgerond, wat afhankelijk is van de grootte van de website en de snelheid van de webserver. Wacht daarom tot de scan volledig is afgerond en loop vervolgens de resultaten langs. Deze resultaten geven een duidelijk beeld van de aangetaste bestanden.

Vervolgens kan worden aangeven wat met deze bestanden gedaan moet worden, waarbij gekozen kan worden om het bestand te verwijderen of te vervangen met het originele bestand zoals deze door de ontwikkelaar is uitgebracht.

Ook aanpassingen die de eigenaar van de website heeft uitgevoerd, zoals vaak in het ‘functions.php’-bestand vaak wordt gedaan, worden getoond. Loop in dit soort gevallen het bestand even handmatig na om te voorkomen dat belangrijke wijzigingen ongedaan gemaakt worden.

Zoals eerder aangegeven zal WordFence ook bestanden controleren die los staan van de WordPress-installatie. Dit wordt gedaan om te voorkomen dat er zogeheten backdoors (achterdeuren voor hackers) aanwezig blijven die een toekomstige hack eenvoudiger maken. Deze bestanden kunnen vanzelfsprekend niet automatisch door WordFence worden vervangen, en het is daarom noodzakelijk om deze handmatig na te lopen.

Stap 6: Check de gebruikers en pas alle wachtwoorden aan

Na het uitvoeren van de vorige stap moet de website als het goed is volledig hackvrij zijn. Echter kunnen wachtwoorden die ten tijde van de hack werden gebruikt nog steeds zijn buitgemaakt, wat een toekomstige hack eenvoudiger maakt.

Het is daarom noodzakelijk om meteen alle relevante wachtwoorden aan te passen. Pas de wachtwoorden van alle beheerdersaccounts, de FTP-locatie, de database en eventueel ook het wachtwoord van het beheerderspaneel van de hostingomgeving (DirectAdmin, cPanel, Plesk, etc.) aan. Hiermee wordt voorkomen dat een hacker ongeautoriseerde toegang krijgt met oude wachtwoorden.

Het is aan te raden om wachtwoorden in te stellen met minimaal 12 karakters. Deze moeten bestaan uit (hoofd)letters, cijfers en speciale karakters. Een passwordmanager als KeePass kan helpen bij het ‘onthouden’ van dergelijke wachtwoorden. Een alternatief is om een korte woordencombinatie of zin te gebruiken die voor hackers extreem lastig te achterhalen is. Denk hierbij bijvoorbeeld aan het wachtwoord ‘Sander!Voetbal@Aardbei#967’.

Loop ook de geregistreerde gebruikers na (eventueel ook in de database als de technische kennis hiervoor aanwezig is) om te controleren of er nieuwe beheerdersaccounts door de hacker zijn aangemaakt. Verwijder deze meteen om een toekomstige hack te voorkomen.

Stap 7: Genereer nieuwe geheime sleutels

Ook al is het wachtwoord van een beheerdersaccount aangepast, een lopende sessie kan ervoor zorgen dat de hacker nog steeds toegang heeft tot de beheeromgeving. Hiervoor wordt gebruik gemaakt van sessiecookies. Om deze sessie af te breken moeten nieuwe geheime sleutels worden ingesteld.

De huidige sleutels staan in het ‘wp-config.php’-bestand en kunnen worden herkent door de grote hoeveelheid willekeurige karakters, met daarvoor AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT en NONCE_SALT. Klik op deze link om een nieuwe set geheime sleutels te genereren en vervang die met de sleutels in het ‘wp-config.php’-bestand. Lopende sessies worden na het opslaan van dit bestand ongeldig, waarmee de hacker definitief wordt buitengesloten.

Stap 8: Scan de website opnieuw

Nadat alle stappen in dit artikel zijn uitgevoerd zou de website op de meest recente WordPress-versie moeten draaien. Ook zijn alle gehackte bestanden gerepareerd, zijn er geen oude back-ups meer aanwezig in de hostingomgeving en is de hacker volledig buitengesloten door het aanpassen van de wachtwoorden in combinatie met het afbreken van lopende sessies.

Scan daarom de website voor een laatste keer met WordFence om er zeker van te zijn dat er geen gehackte bestanden meer aanwezig zijn. Als de scan succesvol wordt afgerond zonder meldingen, dan zou de hack volledig verholpen moeten zijn.

Zodra alle stappen zijn uitgevoerd

Gefeliciteerd, je hebt je website weer helemaal draaiende gekregen! Met deze ervaring zal je in de toekomst ongetwijfeld beter op het onderhoud letten. Probeer regelmatig back-ups te maken, gebruik alleen maar sterke wachtwoord, houd WordPress en onderliggende thema’s en plug-ins up-to-date, beperk het aantal gebruikte plug-ins en controleer de reputatie ervan alvorens deze te installeren.

Met deze tips minimaliseer je de kans op een nieuwe hack. Vraag ook eens bij je hostingprovider wat zij doen op het gebied van beveiliging. Het kan nooit kwaad om hier een inzicht in te krijgen.


avatar

Over Jeffrey van Leeuwen

Jeffrey is Team Leader bij de technische servicedesk van Argeweb.



Reacties zijn gesloten.