Roland Kamphuis Rotating Header Image

Posts Tagged ‘hacker’

Tips tegen aanvallers op WordPress

Een aantal tips om je wordpress website te beschermen tegen aanvallen en hackers:

  1. Maak regelmatig backups of controleer of je hosting bedrijf dat doet
    Een backup geeft je de mogelijkheid om snel een werkende versie weer terug te zetten
    (Wij bij IceHosting maken iedere dag een backup, en die worden 7 dagen bewaard)
  2. Update wordpress inclusief plugins en thema’s regelmatig
    Gelukkig heeft wordpress sinds kort een automatische update functie. Activeer deze! Echter moeten plugins en thema’s nog steeds met de hand geupdate worden.
  3. Zorg dat ieder domein op een eigen user staat
    Wij maken bij Icehosting gebruik van openbasedir, waarmee per user voorkomen wordt dat deze bestanden buiten zijn eigen website kan aanpassen. Staan alle domeinen opdezelfde user, dan kan een hacker zonder problemen naar een ander domein gaan en die ook infecteren.
  4. Verwijder plugins en thema’s die niet gebruikt worden
    Een niet gebruikte plugin of thema kan ook lekken bevatten en daarmee loop je onnodig risico
  5. Installeer de plugin wordfence
    Deze kan je WordPress installatie scannen en helpen beveiligen tegen aanvallers.
  6. Soms moet je afscheid nemen van een plugin
    Als een ontwikkelaar stopt met onderhouden van zijn plugin kunnen in de toekomst mogelijke lekken ontdekt worden. Op zo’n moment wordt het tijd om opzoek te gaan naar een alternatieve plugin en de oude plugin te verwijderen.

Indien je geen tijd of kennis hebt om een WordPress site te onderhouden kan het een goed idee zijn om een partij te vragen of die het onderhoud voor jouw kunnen uitvoeren. Dit onderhoud kunnen wij bij IceHosting ook voor je uitvoeren.

Wat te doen bij een gehackte wordpress website?

Help mijn WordPress site is gehacked!

Dat is helaas een kreet die ik helaas vaak te horen krijg. Veel mensen en bedrijven maken tegenwoordig gebruik van het een gratis open source script WordPress  om prachtige websites te bouwen. WordPress is immers open source en daarmee gratis. Eenmaal gebouwd denken de eigenaren dat de website klaar is en geen acties meer benodigd zijn. (of de site wordt door een ontwikkelaar opgeleverd aan een klant waarna de klant zelf de site moet gaan beheren maar die vindt het wel prima zo). En hier gaat het juist mis!

Een nadeel van opensource is dat de code open is en iedereen toegang heeft om de code te bekijken. Zo kan een kwaadwillende een fout in de code vinden (ook wel lek genoemd) en die gebruiken om toegang te krijgen tot je website.
Wordpress doet er gelukkig alles aan om zo snel mogelijk een patch uit te brengen (update) om dit lek te dichten.
Daarom is het erg belangrijk dat je regelmatig WordPress inclusief plugins en thema’s update naar de laatste versie. Helaas wordt dit vaak vergeten  (“kost tijd” en “de site werkt toch prima zo”) en loopt de website kans gehacked te worden.

Wat moet je doen om de wordpress site weer toegankelijk te maken?

Indien backup
Zet een backup terug van de website voordat die gehacked was. Of vraag of je hosting partij een backup heeft.

Indien geen backup

  1. verwijder alle bestanden behalve de wp-content map, wp-config.php en .htaccess
  2. Open de wp-config.php en kijk of daar geen rare code in staat (zie screenshot voor voorbeelden)
  3. open het .htaccess bestand en zorg dat die er als volgt uitziet:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

  4. Download wordpress vanaf wordpress.com en pak de zip file uit.
  5. Upload alle bestanden van de zip file middels ftp naar de server toe, let op dat je de wp-content map niet overschijft!
  6. Login op de wp-admin sectie
    1. Zorg dat wordpress geupdate is naar de laatste versie
    2. Update alle plugins naar de laatste versie of verwijder plugins die je niet nodig hebt
    3. Update alle themas naar de laatste versie
  7. Installeer de wordfence plugin

    Wordfence scant wordpress op infecties en beschermt tegen aanvallers

    1. Activeer de firewall mode
      De firewall mode beschermt je wordpress website tegen attacks. Altijd handig om actief te hebben. Volg de stappen zoals gevraagd door wordfence. Bij Apache + mod_php betekend dat de plugin een stukje code aan de .htaccess zal toevoegen:

      # Wordfence WAF
      <IfModule mod_php5.c>
      php_value auto_prepend_file ‘/home/<user>/public_html/wordfence-waf.php’
      </IfModule>
      <Files “.user.ini”>
      <IfModule mod_authz_core.c>
      Require all denied
      </IfModule>
      <IfModule !mod_authz_core.c>
      Order deny,allow
      Deny from all
      </IfModule>
      </Files>

      # END Wordfence WAF

    2. Doe een complete scan van de website
      1. Repareer de gevonden core bestanden
      2. Verwijder de gevonden bestanden die niet thuis horen
  8. Check de gebruikers tabblad in wordpress of er geen rare users zijn aangemaakt die niet thuis horen op jouw website.

Indien je bij stap 6 geen werkende wp-login krijgt, kan het zijn dat bepaalde plugins geinfecteerd zijn en daarmee niet bruikbaar. Verplaats de wp-content/plugins/ map tijdelijk naar wp-content/plugins_oud/. Download daarna de geinstalleerde plugins opnieuw.

Wat doen hackers dan met mijn website?

Grote kans dat jouw website zelf helemaal niet interessant is voor de hackers. Vaak gebruiken ze je website alleen maar om duizenden spam mails te versturen of om phising websites te hosten. Op die manier kunnen ze naar een slachtoffer een mail sturen met mededeling dat hun bankpas verlopen is, en dat ze even moeten inloggen met hun internetbankieren code om een nieuwe bankpas aan te vragen. En als een slachtoffer niet goed oplet hebben de hackers gegevens buit gemaakt.
Of ze lanceren aanvallen vanaf jouw website op andere websites.

Tips om hacken te voorkomen?

Tot slot, bekijk hier een aantal tips om gehackte WordPress websites te voorkomen.

Screenshots infecties

Infectiebestanden wordpress

 

Voorbeeld inhoud hacked bestand

Radio interview over hack SIDN

Afgelopen donderdag kreeg ik een mailtje van EnschedeFM met de vraag of ik in de uitzending wou komen en wat meer kon vertellen over de hack van SIDN. SIDN was namelijk de dag ervoor gehackt en in het radio programma #deverbinding wouden ze daar even aandacht aan besteden. Gezien ik goed contact heb met TV Enschede FM, deelnemer van SIDN en ook gevestigd in Enschede was het ook niet een gekke keuze om mij uit te nodigen.

Ik was via telefoon live in de uitzending diezelfde middag (11 juli 13), en ik vond het interview prima verlopen.

Luister naar het fragment:

tvenschedefm

Joomla hackers

De laatste tijd maak ik vaak mee dat Joomla sites gehacked worden van klanten. Het zijn meestal oude Joomla installaties die al maanden/jaren niet meer geupdate zijn. De hackers hebben blijkbaar ergens een injectie ontdekt om op die manier bestanden in de /tmp map te plaatsen. Deze map moet chmod 777 hebben bij installatie van joomla, dus is het aardig eenvoudig voor de hacker om daar bestanden in te plaatsen.
Ten tweede plaatsen ze dus vaak een dos scriptje, en gaan ze vervolgens met het scriptje aan de slag om andere servers/sites te dossen. De server gooit zijn complete uplink helemaal vol met verkeer richting het ip die de aanval moet ontvangen. Ik heb meegemaakt dat er meerdere servers opeens een volledige gbit gingen trekken en daarmee sommige uplink providers van ons overbelasten wat als resultaat onze eigen bereikbaarheid van het netwerk ook aantasten.

Gelukkig hebben we goede monitoring en kon ik snel ingrijpen door ten eerste de servers terug te zetten naar 100mbit, en daarna de server te onderzoeken. Bij een van de gevallen kwam ik een leuke case tegen. z
Ik zie een hacker zijn php hackscript aanroepen met “b11770.php?action=udp&host=xx.xx.xx.xx”, heb ik snel het script aangepast en $_GET[‘host’] = $_SERVER[‘REMOTE_ADDR’]; bovenaan toegevoegd. Toen was het wachten tot hij het script opnieuw aanriep, want met die regel zou de hacker dus niet meer zijn xx.xx.xx.xx ip aanvallen, maar gaat de aanval opeens naar het ip van de hacker zelfs. En voilla, na 2 minuten riep de hacker zijn script aan en ging er een flinke attack richting zijn eigen ip. Wonderbaarlijk riep hij het script nog 3 keer aan voordat hij erachter kwam dat zijn eigen script een aanval op hemzelf lanceerden en staakte eindelijk zijn acties… (waarschijnlijk opzoek naar een nieuwe niet-geupdate joomla site).

php_dos

Ruzzie met een hacker

Af en toe gebeurd het nog dat er een server geïnfecteerd raakt en dat de server allerlei nevenactiviteiten vertoond. Vaak komen deze hackers binnen via lekken in php-scripts. De hackers zetten een script aan om zo bijv. andere machines te infecteren, wachtwoorden te verzamelen of andere websites plat halen.

Zo werd ik deze ochtend wakker met een tiental abuse mails in de mailbox. Dus ik log in op die machine die blijkbaar andere machines aan het brute-forcen was (niet technische term: alle user/wachtwoord combinaties proberen op andere servers).
Ik kom er al snel achter dat de hacker via roundcube binnen is gekomen en begin om alle schade ongedaan te maken. Ik stop als eerste het script van de hacker en gooi alle bestanden van hem weg, vervolgens begin ik apache te patchen zodat ik zeker weet dat daar ook geen lek in zat. Terwijl ik dat aan het doen ben ontvang ik het bericht “ha” van een andere ingelogde gebruiker. Blijkt die gebruiker de hacker te zijn die op hetzelfde moment ook nog ingelogd was. En nog geen seconde later verlies ik de connectie met de server (ofwel de hacker had mij eruit gegooid). Opnieuw connecten leverde geen resultaat op.
Dus ik bel de klant op van de server en controleer samen met hem of de backups van afgelopen nacht goed zijn. (zodat ik het systeem kan aanpakken, en in geval dat de hacker iets heeft geïnfecteerd of verwijderd het hele systeem opnieuw kan inrichten).
Maargoed, ik kon nog steeds de server niet in. Dus pakte ik het grover aan en rebooten de server met de APC switch. Door continue de server te pingen kon ik op de eerste seconde inloggen.
Ik moest snel zijn, want ik moest de lek nog dichten. Dus snel het updaten van roundcube aangezet, en voordat dat klaar was, was meneer hacker ook weer ingelogd. Dus ik noteer snel zijn ip en ban hem van de server. Ik dacht, dat is te makkelijk, dus ik maakte mijn borst al nat voor geval de hacker terug zou komen van een ander ip of een botnet zou inzetten. Opeens kreeg ik weer een timeout van de server, en stond verbaasd te kijken want de hacker kon mij er niet uit hebben gegooid omdat ik hem eerder had kunnen blokkeren. Uit ergernis probeer ik op een andere machine van mij in te loggen om vanaf daar naar de server te verbinden. Blijkt die server ook plat. Toen ik google.nl intypte in de browser leek het niet de servers te zijn maar mijn internet verbinding die plat was.

Ik keek in mijn thuis router (DD-WRT) en zag dat ik een flinke inkomende attack binnenkreeg. Ofwel die hacker had in die kleine tijd voordat ik hem geblokkeerd had mijn ip genoteerd en op mijn ip een dos gestart.
Dus ik pakte mijn mobiel (lang leve de internet op de telefoon) en logde via Vodafone dus opnieuw in op die server. Daar bleek alles na mijn blokkade rustig te zijn en heb ik rustig de server verder af kunnen beveiligen. De server nog gecontroleerd op mogelijk backdoors, rootkits en geïnfecteerde bestanden. De server draait inmiddels weer als een zonnetje.
De dos aanval op mijn thuis-internet verbinding hield na 20 min op.

Mijn dank gaat dan ook weer uit voor roundcube, mogen ze daar eens leren veilige code schrijven. (Dit is niet de eerste keer dat de versie van roundcube lek is, zie ook hier). Mocht je nog roundcube versie 0.5 draaien, update hem snel mogelijk naar 0.7!  (Geen idee over versie 0.6 een lek bevat, na dit voorval heb ik alle versies geupdate naar 0.7).