Hjelp, min hjemmeside har blitt hacket!

Her finner du en rekke kommandoer som kan være nyttig for å fjerne virus og skadevare fra Linux webhotell, TWS-kontoer og servere dersom du har blitt hacket. I tillegg bør du også:

  • Endre passord for alle brukerkontoer (SSH/FTP)
  • Endre passord på MySQL-databaser
  • Oppdatere alle programvarekomponenter som du benytter til siste versjon

PS: Hvis du kjører WordPress og har et webhotell eller en TWS-konto hos oss har vi laget et eget verktøy som hjelper deg med å identifisere skadelig kode i WordPress-filer (core).

Shell-kommandoer for å finne skadelig kode.

Viser liste over antall PHP-filer som er sist endret og sorterer de etter antall og dato. Nyttig for å se f.eks hvor mange filer som ble endret en viss dato, for da å skille ut malware infiserte filer fra standard filer.

find . -type f -name "*.php" -print0 | xargs -0 ls -l --full-time | sort -k6 -k7 | awk '{print $6}'| uniq -c| sort -nr

Viser liste over filer endret ved en spesifikk dato, eller dato-span. Linje to spesifiserer resultatet til endret time:minutt:sekund også. Fungerer for å se filer som søket over viser.

find . -newermt '2015-01-01 ! -newermt 2015-05-01 -ls
find . -newermt '2015-11-29 00:00:00' ! -newermt '2015-11-30 23:59:59' -ls

Viser de siste 25 endrede filene på kontoen. Kan minkes/økes ved å redigere 'head -25'

find . -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head -25

Du kan også gjøre en blanding av disse søkene for å liste ut PHP-filer som er endret siden "når" og liste ut antall og path:

find . -newermt '2010-01-01' ! -newermt '2019-02-28' -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head -25 | "grep -v .jpg" / "grep .php"

Siste grep fjerner .jpg-filer eller kun lister ut PHP-filer, slik at du ikke får filer som ikke kan inneholde malware i retur.

Kommandoen under kjører en egen kommando som heter "file" på alle filer på ditt webhotell. file printer ut en del informasjon om hva slags type fil det er, hvor den også lister ut om filen er kjørbar eller ikke altså om det er en "executable" fil. Vi kan så videre søke etter kjørbare filer uten å måtte definere en bestemt filtype eller navn i søkestrengen. 

find . -name "*.*" -exec file {} \; | grep executable

 

Kryptert innhold i filer

Søkene under brukes for å identifisere kryptert innhold i filer. Det krypterte innholdet ligger ofte i funksjoner som $GLOBALS og base64_decode

Søker etter $GLOBALS og innhold. Gir mange false/positives. Du kan identifisere filer som er mistenkelige ved at argumentet i funksjonen er ganske omfattende. (Lang linje med kryptert kode).

grep -rF \$GLOBALS\[ *


Søker etter base64_decode og innhold. Gir mange false/positives. Du kan identifisere filer som er mistenkelige ved at argumentet i funksjonen er ganske omfattende. (Lang linje med kryptert kode).

grep -r base64_decode *


Søker etter filer som inneholder regexp (regular expression). Malware er ofte kryptert kode, eller kommer som regexp. Ved bruk av grep søket her, så kan du vise samtlige filer som inneholder slike uttrykk i en katalog. Søket gir mange false positives, men malware kan gjenkjennes med ekstremt lange linjer med kryptert kode.

grep -rP "(?:\\\\x[A-F0-9]{2}){5}" *


Lister ut filer som inneholder kode for å bruke sendmail (lite brukt).

grep -r /usr/sbin/sendmail *

 

Søker etter Neutrino.

grep -r base64_decode * | grep COOKIE

Dette fanges som oftest opp av malware-scannere som Clamav. Dersom du ikke har installert dette på din server bør du straks gjøre det:

apt install clamav


Husk å sjekk crontab for automatiserte oppgaver.

crontab -l

clamscan

clamscan -i -r <HOME_DIRECTORY>

f.eks. (fra rot katalog, for å komme til din rotkatalog så kan du bare skrive "cd" og trykke Enter):

clamscan -i -r .

...

/var/www/0/87481/www/wp-content/themes/twentytwelve/footer.php: PHP.C99-9 FOUND

/var/www/0/87481/www/wp-content/uploads/2014/09/hmei7mailer.php: PHP.Mailer-7 FOUND

NB! Det er langt fra alt som oppdages med denne scanneren! MÅ kombineres med søkene over!

 

PHP-filer i /uploads/

PHP-filer i /uploads/ kataloger kan ofte være indikasjon på malware, ett kjapt søk som denne under søker etter php filer.

find www/wp-content/uploads/ -name *.php

Ofte returnerer ikke kommandoen noe, og dersom du er usikker på om søket fungerer så kan du søke etter f.eks. *.jpg isteden. Dersom kommandoen returnerer en liste da, og ikke ved *.php så indikerer det at det ikke er noen PHP-filer i katalogen.

Enda en lur søkestreng er å søke etter alle filtyper en mappe/undermapper inneholder. Denne kan ofte vise filer som ikke hører hjemme i uploadskataloger som kan være skadelige osv. 

find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u

Denne strengen gjør følgende: 

Søker alle filer i mappen du står i.
Printer ut alle filtyper (extensions)
Viser en unik sortert liste. 

Har du flere spørsmål? Send oss en henvendelse