Het oplossen van een WordPress redirect hack

Een gastblog van Ricarco Verboom

Het oplossen van een WordPress redirect hack 1

Een paar weken geleden, nam een vriend met een hostingbedrijf contact op met mij. Er waren een aantal WordPress websites gehackt en hij vroeg mij om er even naar te kijken. Hij had zelf al verschillende controles op de server uitgevoerd, maar kon de smoking gun niet vinden.

Ik vroeg hem een lijstje van WordPress websites, die slachtoffer waren geworden van deze hack en toen kon het puzzelen en uitzoeken beginnen!

“Liever zelf geen WordPress hack oplossen, vraag dan de WPsupporters om hulp.”

WordPress redirect hack in actie

Om te kijken wat er aan de hand was, pakte ik een aantal URLS en bezocht ik de getroffen websites. Het begin bij het laden, dit duurde namelijk best wel lang. Vervolgens kreeg ik de websites wel te zien, maar binnen 2 seconden opende een andere website met een totaal andere URL.

Nu heb ik deze hack al meerdere keren meegemaakt en opgelost, maar ik wist dat het op verschillende manieren werd gedaan. Uiteraard was het direct duidelijk, dat het hier om een redirect hack ging.

Wat doet een WordPress redirect hack precies?

Je voert de URL van je eigen website in en wordt binnen enkele seconden doorverwezen naar een andere website. Vervolgens ga je natuurlijk kijken wat er aan de hand is en probeer je een andere URL, bijvoorbeeld jouwdomein.nl/wp-admin. En ook deze wordt direct doorgelinkt naar een andere website.

Oké, natuurlijk is het nu wel overduidelijk dat je website gehackt is, maar wanneer zelfs /wp-admin en /wp-login.php doorverwijzen naar een andere website, dan wordt het lastig om in te loggen en in het backend van WordPress te controleren wat er aan de hand is.

Het oplossen van een hack

Voordat ik ga uitleggen wat de oplossing is, wil ik nog wel even duidelijk maken dat WordPress op verschillende manieren gehackt kan worden. En de manier waarop ik deze hack kan oplossen, hoeft dus niet altijd voor iedere hack te werken.

Vaak zijn de stappen die je moet maken om een oplossing te vinden wel hetzelfde. Dus de stappen die je zo dadelijk leest, daar kun je altijd mee beginnen om erachter te komen wat er daadwerkelijk aan de hand is.

De hack die ik je ga uitleggen, kan ook op verschillende manieren werken. Het effect is weliswaar hetzelfde, maar er kunnen verschillende soorten aanvallen zijn gedaan. Maar goed, laten we maar snel beginnen!

FTP accounts op de server controleren

Login op je hostingaccount en ga naar FTP instellingen. Hier gaan we eerst kijken of er geen nieuwe FTP-accounts zijn aangemaakt. Blijkt na controle dat er geen andere accounts zijn toegevoegd? Pas dan het wachtwoord van je eigen FTP account aan. Dit doen we om te voorkomen dat een hacker (indien deze het wachtwoord heeft) nogmaals kan inloggen.

Bestanden controleren via FTP

Open nu je FTP software en maak verbinding met de server, zodat je alle bestanden kunt zien. We gaan nu kijken welke bestanden recent zijn aangepast. Dit doe je door simpelweg naar de datums te kijken. Wanneer een bestand of een map recent is aangepast, dan kun je dit hier zien.

In mijn geval waren er geen bestanden aangepast en ook geen bestanden toegevoegd. Maar let op, dit kan in jouw geval misschien wel zo zijn! Kijk vooral naar de datums en controleer vooral bestanden als: wp-config.php, .htaccess en de mappen wp-admin en wp-content. Soms worden aan de genoemde bestanden stukken code toegevoegd en zelfs volledige files aan de mappen die ik zojuist aangaf.

In mijn geval waren er dus geen bestanden/mappen te vinden die waren aangepast, dit maakt dan ook de zoektocht helaas weer iets lastiger. Totdat ik gebeld werd door een bekende, die aangaf dat er een nieuwe gebruiker was toegevoegd aan zijn WordPress website, zonder dat hij dit zelf had gedaan.

Dan gaan dus ALLE alarmbellen rinkelen, maar nu moet het nog opgelost worden! Het werd dan ook tijd om de MYSQL database te checken!

MYSQL database controleren

Let op: wanneer je niet bekend bent met MYSQL. Aanpassingen maken kan namelijk in sommige gevallen meer kwaad doen, dan goed doen! Ik adviseer om er niet aan te zitten, wanneer je er niet mee bekend bent!

Goed, ik ben dus naar de server gegaan en heb ingelogd op phpmyadmin. Vanuit hier kun je aanpassingen maken aan je database. Op het moment dat ik hoorde dat er een nieuwe gebruiker was aangemaakt, wist ik eigenlijk al een stuk beter waar ik moest zoeken. Het belangrijkste is nu, om die nieuwe gebruiker(s) te verwijderen en de redirect weghalen.

Na het inloggen, zoek je in de database naar wp-users. Vervolgens zie je een lijst van alle users en kun je de users die je niet kent. Of e-mails erbij pakken van recent geregistreerde users, deze opzoeken en verwijderen (tenzij je ze kent natuurlijk).

Goed, de users die mogelijk schade hebben toegebracht zijn wellicht verwijderd, maar het lek is er nog steeds!

Toegang tot WordPress terugkrijgen

We gaan er nu eerst voor zorgen, dat we weer toegang tot WordPress krijgen. Wanneer we eenmaal weer toegang hebben, moeten we snel schakelen. Het lek is er namelijk nog steeds en moet snel worden gedicht!

We gaan terug naar de database om de boel te herstellen. Wat er nou eigenlijk is gebeurd, is het volgende:

Er zit ergens een lek, die ervoor gezorgd heeft dat een hacker in staat was om zonder toestemming een gebruikersaccount aan te maken en dan ook nog eens met administratierechten. Waar het lek zit, dat is nog niet te zien maar vaak heeft het te maken met een verouderde plugin/theme die het mogelijk maakt om een SQL-injectie uit te voeren en administratierechten te claimen.

Met een admin account kun je vervolgens heel veel aanpassen, waaronder de website URL. En dat is hier dus gebeurd. Gelukkig kunnen we hem via de database weer aanpassen naar de oorspronkelijke URL.

Zoek in de database naar: wp-options. Hier zie je vervolgens 2 velden staan met siteurl en home. Als het goed is, zie je hier nu een hele rare URL staan. Dit is de URL die naar een schadelijke website linkt. Daarom pas je deze velden aan naar https://(www).jouwdomeinnaam.nl.  Je zult nu weer toegang moeten hebben tot je website.

Testen of je toegang hebt tot je website

Nu kun je via je browser naar je website gaan en heb je als het goed is weer toegang tot je website. Nu kun je naar jouwdomein.nl/wp-admin of jouwdomein.nl/wp-login.php om in te loggen in het administratiegedeelte.

Nu moeten we er snel voor zorgen dat het lek gedicht wordt. We beginnen bij het controleren van de gebruikers. Ga in het administratiegedeelte naar gebruikers en controleer of je hier geen vreemde gebruikers ziet. Indien dit wel het geval is, moet je ze verwijderen.

Plugins updaten

Plugins zijn geweldig om functionaliteit toe te voegen aan een WordPress website, die niet standaard inbegrepen is. Natuurlijk is dit heel handig, maar veel/teveel plugins kunnen een hack gevaar opleveren en backdoors openen, die hackers kunnen gebruiken om WordPress websites te hacken.

Daarom is het belangrijk om plugins tijdig te updaten, of nog liever, automatisch te updaten. Ga naar plugins en kijk of er updates beschikbaar zijn. Indien dit niet het geval is, verwijder dan alsnog de plugins die niet gebruikt worden.

Extra tip: Sommige dure plugins kunnen gratis worden gedownload van verschillende websites. Deze plugins worden ook weleens nulled plugins genoemd. Heb je in het verleden een nulled plugin geïnstalleerd? Dan kun je deze beter verwijderen, er wordt namelijk bijna altijd malware aan dit soort plugins toegevoegd.

Themes updaten

Controleer nu of er themes zijn geïnstalleerd, die een update nodig hebben. Ook de themes die niet zijn geactiveerd, kun je updaten of zelfs verwijderen. Ik weet dat veel beveiligingsplugins dit afraden, maar ik verwijder zelf altijd themes die niet zijn geactiveerd.

Bij themes geldt hetzelfde. Themes krijgen vaak juist updates, doordat ze een lek bevatten. In de updates zijn dit soort lekken dan meestal gedicht. Ook zijn er nulled themes te vinden, ook hier geldt hetzelfde als bij plugins, dat deze vaak malware bevatten. Het is dan een betere optie om voor een origineel theme te kiezen en hier gewoon voor te betalen.

WordPress malware scanner installeren

Ga nu naar plugins en installeer een malware scanner. Ik maak zelf meestal gebruik van Wordfence. Wordfence is een plugin die je gratis kunt installeren en zal je website grondig scannen op malware en eventuele exploits.

Wanneer je deze plugin hebt geïnstalleerd, kun je controleren of er nog malware aanwezig is. Is dit niet het geval? Dan kun je er eigenlijk op rekenen dat het gevaar geweken is. Maar wacht, niet te snel juichen! Hier ging het bij mij namelijk mis!

De volgende dag, bleek de website die ik als test had gebruikt wederom gehackt te zijn! En na lang zoeken, bleek het hier om een theme te gaan, die niet voorzien werd van updates! Het ging om een theme die al zeer lang geen updates heeft gehad en hierdoor is er een backdoor ontstaan, waardoor hackers kinderlijk eenvoudig toegang konden krijgen. Een kleine zoektocht, liet zien dat dit theme zeer gevoelig was voor aanvallen en doordat het theme sporen achterlaat in Google, kunnen hackers dus met een simpele zoekopdracht vinden op welke websites dit theme geïnstalleerd is en een aanval doen.

De klant wilde het oorspronkelijk theme behouden en dus moest er een oplossing komen. Na enkele aanpassingen, was het lek voor 95% gedicht. Toch wist ik dat zolang de naam van dit theme in de broncode bleef staan, het een gevaar zou blijven. Daarom koos ik voor een wat drastischere oplossing, maar hier heb ik wel al eerdere gehackte WordPress websites mee verholpen!

Back-up maken van de gehele WordPress website

Voordat we een extra laag aan beveiliging kunnen toevoegen, moet er eerst een back-up gemaakt worden. Hiervoor kun je gebruik maken van een plugin. Mijn voorkeur is Duplicator. Installeer Duplicator en maak een back-up.

Deze kun je downloaden en wanneer het mis gaat, kun je kinderlijk eenvoudig je website herstellen! Na het downloaden kun je zonder zorgen een extra laag aan beveiliging toevoegen. Beveiliging is trouwens niet het juiste woord, het is namelijk niet echt een beveiliging maar meer een manier om het hackers aanzienlijk moeilijker te maken!

Namen veranderen van gevoelige mappen en files

Elke WordPress website heeft dezelfde structuur. Zo moet je bij elke WordPress inloggen via wp-login.php of direct naar wp-admin gaan. Iedereen weet dit en het zijn dan ook de eerste stapper die een hacker zal nemen om een aanval te doen (meestal bruteforce aanvallen). Wanneer je er dus voor zorgt dat deze files niet bereikbaar zijn, wordt het al een stuk moeilijker.

Het leukste is, dat je dit met veel meer mappen en files kunt doen. Hierdoor wordt het bijvoorbeeld alleen al in de broncode moeilijk om te zien dat het om een WordPress website gaat. Dit biedt natuurlijk verschillende voordelen!

Er is 1 plugin nodig: WP hide & Security enhancer. Wanneer je deze geïnstalleerd hebt, kost het ongeveer een kwartiertje om de namen van verschillende files te herschrijven.

Wp-login.php en wp-admin namen veranderen

We beginnen bij wp-login.php en wp-admin. Dit zijn namelijk de bestanden die het meest gebruikt worden bij aanvallen. De plugin die je geïnstalleerd hebt, geeft je de mogelijkheid om de namen bijvoorbeeld te veranderen naar: administratie.php en /administratie.

Links in het WordPress menu, zie je een knop staan met “WP hide”. Klik daaronder op admin. Verander de wp-login.php naam naar iets anders (vergeet er geen .php achter te zetten. Onderop zie je een veld met “Block default wp-login.php”, klik op “show” en selecteer “yes”.

Nu ga je terug naar boven en zie je naast het tabje “wp-login.php” een ander tabje met “Admin URL”. Klik hierop en pas deze aan naar bijvoorbeeld “administratie”. Boven de tabjes zie je een link staan, kopieer deze, want mocht de volgende stap verkeer gaan, dan kun je deze gebruiken om de boel te herstellen.

Vervolgens kun je bij “admin” weer klikken op “show”, gevolgd door “yes”. Je zal nu worden uitgelogd en moet opnieuw inloggen.

Let op: je moet nu gebruikmaken van /administratie.php of /administratie. Log nu opnieuw in en ga weer in het menu naar “wp hide”. Vervolgens kun je op deze manier nog veel meer aanpassen, onder wp hide zie je de opties rewrite en general / html.

Nog meer bestandsnamen aanpassen

Je hebt het zojuist voor een hacker een stuk moeilijker gemaakt om een aanval te kunnen doen. Wil je het echter nog lastiger maken, dan kun je nog meer bestandsnamen aanpassen. In het menu onder wp hide, zie je nog een aantal opties, waaronder: rewrite en general / HTML.

Begin bij rewrite, en kijk vervolgens naar de tabjes. Ik vind het zelf vooral interessant om de namen van themes, plugins en xml-rpc aan te passen. Omdat ik weet dat hier de meeste aanvallen op gebeuren. Mocht je echter nog meer willen aanpassen, dan kan dat natuurlijk!

Ook onder general / HTML kunnen er nog een aantal dingen worden aangepast. Hier moet je op sommige punten wel oppassen. Er zitten namelijk ook kritische files bij, die na het aanpassen kunnen zorgen voor problemen. Ik adviseer je graag om alleen zaken bij “rewrite” aan te passen!

Zonder problemen alles aangepast?

Nadat je alles hebt aangepast, kun je de plugin “duplicator” weer verwijderen. Wel zou ik ergens de link die je hebt gekopieerd en kunt vinden bij wp hide wel ergens opslaan. Mocht je namelijk ooit niet kunnen inloggen, dan kun je deze link gebruiken!

Ik hoop dat je iets aan deze uitleg hebt gehad en dat ik ervoor heb kunnen zorgen dat er weer een aantal WordPress websites minder vatbaar zijn voor een WordPress redirect hack!

Geef ons een beetje support, en deel met belangstellenden.

Facebook
Google+
Twitter
LinkedIn
WhatsApp

Lees ook:

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *