WordPress inficeret med rr.nu virus – mine erfaringer

En ’uskyldig’ logfil ledte mig på sporet af, hvad der havde inficeret min WordPress blog, og mine erfaringer kan måske hjælpe andre.

Jeg er på ingen måde ekspert, men jeg har da lært et og andet af, at min webside blev hacket, og i det følgende skriver jeg noget om, hvad der ledte mig på sporet af rr.nu-viruset, hvad man kan gøre præventivt, og hvad man kan gøre, hvis det sker alligevel.

Men lad mig først beklage dybt, at jeg har bragt mine læsere i fare. Hvis du er en af dem, der blev omdirigeret, anbefaler jeg kraftigt et virusscan af din computer, og hvis dit antivirusprogram ikke reagerede, da du blev omdirigeret, bør du alvorligt overveje at anskaffe et andet!

Nå, til sagen! Som jeg skrev i går, slettede jeg hele WordPress-installationen i fredags, ”gjorde rent,” skiftede password og installerede bloggen forfra.

I går gennemgik jeg minutiøst hele mit website (altså ikke bare WordPress) med mit FTP-program. Fredag konstaterede jeg, at indbruddet måtte være sket den 29. juni, hvor mange PHP-filer i WordPress var ændret ”umotiveret”, så jeg koncentrerede mig om alt fra den 29.6. og frem.

Det tog timer at tjekke det hele, for det er efterhånden et stort site, men der var gevinst: På samme niveau som kataloget med WordPress (og en del andre kataloger) lå et katalog ”.logs” som indeholdt en enkelt tilsyneladende uskyldig tekstfil ”log1.txt”.

Filen indeholdt 20 webadresser, som alle sluttede på ”rr.nu”. Jeg indsatte med dødsforagt en af dem i min browser, og antivirusprogrammet fik et hysterisk anfald. Webadresser var bl.a. det, jeg ledte efter fredag, da jeg granskede PHP-filer, men jeg ledte det forkerte sted.

Jeg overvejede at erstatte webadresserne med ”Smiley was here,” men valgte at slette filen.

En søgning på ”rr.nu” gav omgående alarmerende resultat. Det er en stribe sub-domæner på en server i U.S.A., som er kendte for med virus at omdirigere til sider med malware, og de har bl.a. hacket masser af PHP-baserede sider som WordPress-blogs, Joomla m.fl.

Hvis jeg fredag, da jeg granskede filer, havde vidst, hvad jeg ved nu, ville jeg straks have set, at mine WordPress PHP-filer var inficeret med virus fra rr.nu, for så er der øverst i nogle PHP-filer indsat kode, som ser nogenlunde således ud (dette er bare en stump):

rr.nu viruskode

Bemærk det med ”eval (base 64_decode…” og se evt. 3-Step Fix for your rr.nu WordPress Virus Outbreak.

”eval(base 64_decode…” så jeg adskillige eksempler på, mens jeg forgæves ledte efter uartige links eller en PHP-omdirigering, men på det tidspunkt var koden bare krimskrams for mig. Det havde nu heller ikke ændret på løsningen, nemlig at slette hele skidtet og starte forfra.

Der er nogen, der hævder, at de kan ”rense” inficerede WordPress-installationer, men virus har det med at mutere, og kommer den digitale Klorin mon ud i alle kroge?

Hvordan beskytte sig?

Man kan beskytte sig, så godt man formår, men man skal også være praktisk og tænke på, hvordan man kan genskabe siden, hvis uheldet alligevel er ude (som i mit tilfælde).

Man kan komme langt ved at ændre sin .htaccess fil (fx som beskrevet her) og evt. lave flere .htaccess-filer, men det er temmelig langhåret. Der er plugins, som kan hjælpe, men man bevæger sig på tynd is, fordi meget kan være serverspecifikt, og man risikerer pludselig at have lukket sig selv ude, og det var jo ikke meningen. Det er effektivt, men det er for viderekomne.

De gamle travere gælder stadig

Et godt password skal man have; men selvom mit gamle password var på 20 karakterer og (i praksis) umuligt at bryde, kom hackerne ind alligevel. De må have benyttet sig af en ”bagdør,” og brugbare ”bagdøre” kan være forældet software som fx de plugins, man bruger for at give WordPress øget funktionalitet.

Sørg derfor altid for at have sidste version af WordPress, dit tema og dine plugins. Drop brugen af gamle plugins, som ikke opdateres! Find et nyere alternativ eller glæd dig over, at bloggen pludselig er blevet hurtigere.

Hvordan opdage at din blog er blevet virusramt?

Da jeg ikke selv oplevede at blive omdirigeret til en anden side, svævede jeg i uvidenhed om, at min side var kompromitteret. Man kan købe sig til løsninger, men det helt enkle er at gøre som følger:

Hold jævnligt øje med dine filers datomærkning – fx med et FTP-program. I mit tilfælde kunne jeg (efterfølgende) se, at adskillige PHP-filer havde ændret dato den 29. juni. PHP-filer er programfiler, og de ændres ikke, medmindre de overskrives som ved en opdatering, eller hvis nogen (hackere) ændrer dem.

Det tager kun et øjeblik, og hvis man ser, at nogle af filerne har ændret dato (og man ikke har opdateret den dag), er der ugler i mosen. Det er ikke nok at se på katalogets dato – den ændrer sig ikke nødvendigvis, fordi en fil er ændret.

Tjek datoen på ”kernefiler” som .htaccess, wp-config.php og dit temas header.php. wp-config ligger i WordPress’ rod, og temaet ligger i wp-content/themes/.

Når uheldet er sket

Brug et FTP-program og download en kopi af dine uploads (altså billeder og den slags) og sørg for at bevare samme katalogstruktur som på serveren. Hvis der er PHP-filer eller scripts imellem, så slet dem – de hører ikke hjemme her!

Lav en XML-eksport af bloggens indhold (ekskl. billeder) hvis du ikke har en backup i forvejen. XML-filen kan være kompromitteret, men medmindre databasen er inficeret, vil virus ændre en side, i det øjeblik den genereres dynamisk, og derfor kan XML-filen godt være sund og rask.

Hvis du ikke kan huske det hele, så tag notater om din opsætning, og hvordan dine widgets er sat op. Kopiér din blogroll.

Slet hele WordPress-installationen (hele installationen inklusive plugins og databasen) og skift FTP- og brugerpassword. Jeg vil ikke afvise, at det kan være muligt at ”desinficere,” men en fysisk sletning er det sikreste.

Tjek for ”gøgeunger” andre steder på websitet, hvis altså du har mere og andet end bare WordPress. Et virusscan af din lokale computer er heller ikke af vejen. Installér derefter en jomfruelig version af WordPress og upload den backup, du foretrækker.

Hvis du bruger en XML-fil, kan du jo lige søge på fx ”javascript” og lignende for at se, om der er gøgeunger i filen. Du kan fx åbne filen i din browser eller i Notesblok – det sker der ikke noget ved. Hvis filen er meget stor, kan det være nødvendigt at dele den op i mindre portioner, når den skal importeres.

Der er selvfølgelig andre backupløsninger, som nemt kan findes ved en søgning. Når blogindlæg m.v. er importeret, er det tid for backup’en af dine billeder (”Uploads”).

Jeg ved godt, at meget af det, jeg har skrevet, kun kan lade sig gøre for installationer på private websites, men dem er der immervæk også nogle stykker af, og de er måske også de mest sårbare.

Vi kan alle rammes af indbrud – spørg bare Pentagon! Det, der ærgrer mig mest, er, at jeg ikke opdagede det tidligere og derved udsatte mine læsere for unødig risiko. I fremtiden vil jeg bruge mit FTP-program langt oftere for at tjekke datoer.

Pas på derude!

 

10 tanker om "WordPress inficeret med rr.nu virus – mine erfaringer"

  1. Mette

    Sikke en omgang, men efter hvad jeg kan forstå på min ‘omgangskreds’ af andre bloggere, er vi langt fra de eneste, der har haft uindbudne gæster. Så nu vil jeg følge de mange gode tips til at holde min http sti ren.

    Svar
    1. Eric

      Ja, det er grove løjer. Her tror man, at man bare kan skrive løs, men først skal man have et forsvarsministerium.

      Svar
  2. Stegemüller

    Jeg læser først dette vigtige indlæg nu. Hold da op en hovedrengøring du har været i gang med. Jeg er meget imponeret over, at du kunne finde ud af det. Jeg ville stå som Moses ved Det røde Hav, hvis det skulle ske for mig- og lige nu minder du mig om at tage en backup. Jeg er ellers ret godt sikret med backup hjemme på min egen pc, men jeg mangler da helt klart en strategi for min blog, og det er som du skriver jo netop flere års arbejde, der ligger der.

    Jeg kontakter dig, hvis jeg bliver hacked 🙂

    Svar
    1. Eric

      Ja, det var noget af et arbejde! Sørg for backuo af dine uploads (billeder osv.) i samme katalogstruktur som i WordPress-katalogerne. Og få så WordPress til at lave en eksport.

      Så kan man, som jeg gjorde, bare slette hele skidtet på serveren (inkl. database), installere en frisk version og uploade sine backups. Tidskrævende, nuvel, men enkelt.

      Svar
  3. Inge

    Sikke en omgang du har været igennem.. Jeg må altså indrømme at jeg havde givet op længe før dig.. 🙂
    Imponerende flot arbejde du har gennemført.

    Svar
    1. Eric

      Man giver ikke op, når flere års arbejde er på spil! Så bliver man (jeg) cool og systematisk og helmer ikke, før problemet er løst på den ene eller anden måde.

      Men indrømmet: Det var ikke lige det, jeg havde planlagt for weekenden, og tanken om hjul og stejle er blevet mig ganske sympatisk.

      Svar
  4. Ellen

    Tak for den gode beskrivelsen – jeg håber dæleme ikke, at der er sket noget hos mig, for jeg ville nok aldrig kunne finde ud af det, selv om du vist har beskrevet det, så selv sådan en som mig burde kunne finde ud af det 🙂
    Jeg håber alt er i orden nu.
    Men jeg lærer aldrig at forstå, hvorfor nogen synes det er så evigt sjovt at skabe den ballade for andre. Hvad pokker får de ud af det?

    Svar
    1. Eric

      Velbekom. Du har nok ikke så meget at bekymre dig om, da du er hostet hos WordPress. Skulle noget ske, kontakter du bare Support og læner dig tilbage. 😉

      Efter man lige har været hacket, skal man ikke være for stor i slaget, men ja: Jeg er ret sikker på at kyllingen nu er fri for både salmonella og andet skidt. Jeg har gransket emnet grundigt og (med hjælp) lavet langhårede .htaccess-filer, som skulle gøre det vanskeligere at gentage spøgen. Næppe umuligt, men væsentligt vanskeligere.

      Til det sidste spørgsmål, hvad de får ud af det, er svaret nok simpelt: penge og/eller pagerank som kan konverteres til penge på den ene eller anden måde. Med de evner, de har, er de ikke uintelligente – de er blot skrupelløse ***huller.

      Svar

Skriv et svar til Inge Annuller svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *