Regelmatig krijgen wij de vraag: Welke stappen moet ik nemen als mijn wordpress website gehackt is? Om deze vraag te beantwoorden is meer achtergrond informatie nodig maar om de basis te kunnen doen dien je eerst al het van en naar de website verkeer te blokkeren dat kunnen we doen door de website op “suspended” te zetten of door een script zoals dit te plaatsen:
cat <
RewriteCond %{REMOTE_ADDR} !^IPv4$
RewriteCond %{REMOTE_ADDR} !^IPv6$
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{REMOTE_ADDR} !^::1$
RewriteCond %{REMOTE_ADDR} !^185\.104\.29\.124$
RewriteCond %{REMOTE_ADDR} !^2a06:2ec0:1::144$
RewriteRule ^.*$ "-" [R=503,L]
ErrorDocument 503 "
This domain is temporarily unavailable for maintenance.
The site will be back online as soon as possible. Thank you for your patience!
Dit domein is tijdelijk onbereikbaar voor onderhoud.
We zijn zo spoedig mogelijk weer online. Bedankt voor je geduld!
"
Als je geen IPv6 adres hebt, kan je die regel verwijderen, zet bij het IPv4 adres \. in plaats van .
Om je eigen ip adres te vinden kan je naar www.watismijnip.nl welke je dan in het bovenste script kan plaatsen. Het script plaatst dan een .htaccess bestaande op de server met een mededeling dat de website onbereikbaar is voor onderhoud. Wat nu belangrijk is om te doen om alle processen welke de webserver heeft te stoppen:
echo "# Killing lsphp processes";for _pid in $(ps --no-headers -C lsphp | awk '{print $1}');do echo "Killing PID: $_pid";kill -9 "$_pid";done;echo "# Killing php processes";for _pid in $(ps --no-headers -C php | awk '{print $1}');do echo "Killing PID: $_pid";kill -9 "$_pid";done
Zodra deze allemaal afgebroken zijn kan je de site(s) herstellen, zonder dat er files teruggeplaatst kunnen worden. Als je klaar bent kan je de gecreëerde .htaccess file weer verwijderen en is de site terug online. Om bestanden op te sporen die niet juist zijn (niet horen bij WordPress) kan je het onderstaande gebruiken:
USERNAME@server:~/domains$ find ~/domains/*/public_html/wp-content/uploads -type f -name "*.php" -print | grep -v "cache/wpml/twig"
het volgende script is eens script wat je kan gebruiken en kan aanpassen naar jouw wens om herkenbare bestanden te verwijderen:
find ~/domains/*/public_html/wp-content/uploads -type f -name "radio.php" -delete
find ~/domains/*/public_html/wp-content/uploads -type f -name "wp-the1me.php" -delete
find ~/domains/*/public_html/wp-content/uploads -type f -name "wp-scr1pts.php" -delete
find ~/domains/*/public_html/wp-content/uploads -type f -name "wp-l0gin.php" -delete
Ik hoop dat je hier iets aan hebt, mocht je vragen hebben horen wij dat graag van je.