Fjern malware fra WordPress: komplet guide til at finde og slette skadelig kode
Malware på WordPress viser sig sjældent som en pæn fejlmeddelelse. I stedet oplever du redirects, spam i Google, ukendte filer eller en advarsel fra browseren. Den gode nyhed: skadelig kode efterlader spor, og når du ved, hvor du skal kigge, kan du finde og fjerne den systematisk. Denne guide tager dig gennem hele jagten — fra de hurtige scanninger til den manuelle gennemgang, der fanger det, plugins overser.
Hvad er WordPress-malware, og hvordan endte den på dit site
Malware er kode, som en angriber har indsat for at misbruge dit site: sende besøgende videre, vise spam, sende mails, stjæle data eller gemme en bagdør. Den kommer næsten altid ind ad én af tre veje:
- Et sårbart plugin eller tema — langt den hyppigste årsag, især forældede eller nulled-versioner.
- Svage eller lækkede adgangskoder — brute force mod
wp-login.phpeller genbrugte kodeord. - En usikker hosting-konto — hvor et naboinfekteret site på samme server smitter dit.
At forstå indgangen er vigtigt, for hvis du kun fjerner symptomet og ikke hullet, kommer malwaren igen.
Symptomer: redirects, spam-popups, ukendte filer, Google-advarsel
Bekræft først, hvad du har med at gøre. Almindelige symptomer:
- Redirects til ukendte domæner — ofte kun for besøgende fra Google eller kun på mobil.
- Spam-popups eller indsat indhold, du ikke selv har lavet.
- Ukendte filer med tilfældige navne, typisk PHP i
wp-content/uploadseller i roden. - Google-advarsel eller "Sikkerhedsproblemer" i Search Console.
- Udgående spam-mails fra din server, så dit domæne ender på sortlister.
Læg mærke til, hvornår og for hvem symptomet optræder — målrettede redirects er et klassisk tegn på sløret malware.
Plugin-scan vs. server-scan: hvad fanger hvad
Brug begge typer, for de ser forskellige ting:
- Plugin-scanning (Wordfence, MalCare, Solid Security) kører inde fra WordPress, tjekker fil-integritet mod officielle core-filer og matcher kendte signaturer. Hurtigt at komme i gang, men kan belaste serveren og kan snydes af helt ny kode.
- Server-scanning (fx via SSH med værktøjer som
maldet/LMD eller ClamAV, eller en cloud-scanner som MalCare) ser hele filsystemet — også filer uden for WordPress, som plugins ikke når.
# Eksempel: scan med Linux Malware Detect via SSH
maldet -a /sti/til/public_html
En plugin-scan giver dig et hurtigt overblik; en server- eller cloud-scan giver dybden.
Manuel jagt: typiske gemmesteder (base64, eval, gzinflate)
Automatiske scannere er stærke, men den manuelle jagt er det, der fanger den sidste, sløret kode. Søg efter de funktioner, malware oftest bruger til at skjule sig:
grep -RinE "eval\(|base64_decode\(|gzinflate\(|gzuncompress\(|str_rot13\(|create_function\(|assert\(|preg_replace\(.*/e" \
wp-content/ wp-includes/ wp-config.php
Kig især efter:
- Lange strenge af tilsyneladende tilfældige tegn (sløret/base64-kodet).
- PHP-filer i
uploads, hvor der aldrig bør være eksekverbar kode. - For nylig ændrede filer:
find . -type f -name "*.php" -mtime -14 -printf "%TY-%Tm-%Td %p\n" | sort
Vær opmærksom: base64_decode og preg_replace bruges også legitimt af nogle plugins. Find du noget mistænkeligt, så sammenlign med en frisk kopi af samme plugin frem for at slette i blinde.
Du kan se symptomerne, men ikke finde kilden? Skjult malware kan ligge ét sted og virke et helt andet. Jeg finder og fjerner den — fast pris fra 2.000 kr.
Rens wp-content/uploads og temaer for injektioner
Når du har lokaliseret det skadelige, fjern det grundigt:
- Slet ukendte PHP-filer i
uploads— der hører ingen hjemme. - Geninstallér temaer og plugins fra rene kilder frem for at redigere de inficerede filer i hånden:
wp theme install $(wp theme list --field=name) --force
wp plugin install $(wp plugin list --field=name) --force
- Gennemgå databasen for injicerede scripts i indlæg, widgets og
wp_options. - Fjern alt ubrugt — deaktiverede temaer og plugins er stadig kode, en angriber kan udnytte.
Tjek og nulstil fil-tilladelser (644/755)
Forkerte tilladelser gør det nemt for malware at skrive nye filer. Sæt en fornuftig standard:
# Mapper til 755
find /sti/til/public_html -type d -exec chmod 755 {} \;
# Filer til 644
find /sti/til/public_html -type f -exec chmod 644 {} \;
# wp-config.php strammere
chmod 640 wp-config.php
Undgå 777 på alt — det giver i praksis fri skriveadgang til hele verden.
Verificer at sitet er rent: gentest + monitorering
Fjern aldrig malware uden at bekræfte resultatet:
- Kør en ny fuld scanning med både plugin og server/cloud — den skal komme tilbage ren.
- Tjek redirects ved at åbne sitet fra Google, fra mobil og i et inkognito-vindue.
- Bekræft i Search Console, at sikkerhedsproblemerne er væk, og bed om fornyet gennemgang, hvis du var blokeret.
- Slå løbende overvågning til, så du får besked, hvis en fil ændrer sig igen.
Hvorfor malware kommer igen — og hvordan du bryder cyklussen
Den hyppigste grund til en gentagelse er, at en bagdør blev overset, eller at hullet aldrig blev lukket. Bryd cyklussen ved at:
- Fjerne alle bagdøre, ikke kun den synlige malware.
- Opdatere alt og fjerne den sårbare komponent, der lukkede angriberen ind.
- Skifte alle adgangskoder og hemmelige nøgler (salts).
- Hærde sitet bagefter — se den fulde 12-punkts sikkerhedsguide.
- Står sitet helt ned, eller er du under tidspres, så følg hack-oprydningsguiden trin for trin.
Får du fjernet malwaren men ikke årsagen, gentager mønsteret sig. Er du i tvivl om, hvorvidt sitet er helt rent, er en professionel gennemgang ofte billigere end endnu en runde nedetid.