Iskanje nazadnje spremenjenih datotek

To najlažje storite z naslednjim ukazom, ki vam poišče .PHP datoteke, ki so bile spremenjene 1 dan nazaj:

find . -name "*.php" -mtime -1 -print | less

V primeru, da napad na vaše spletne strani opazite dovolj hitro, boste okužene datoteke najlaže našli tako, da preprosto pregledate PHP datoteke, ki so bile nazadnje modificirane v zadnjih dneh ali tednih.

V redkih primerih se zlonamerna koda lahko skriva (oz. je enkapsulirana) tudi v drugih tipih datotek (.jpg, .gif, .png in podobno).

S tem ukazom lahko najdete vse .PHP datoteke, ki so bile spremenjene med 10.09.2015 in 10.10.2015:

find . -name "*.php" -newermt "2015-09-10" ! -newermt "2015-10-10" | less

 

Iskanje zlonamernih datotek glede na njihovo vsebino

Zlonamerne datoteke pogosto vsebujejo določeno vrsto programske kode, ki jo je možno najti z naslednjimi ukazi:

grep -rlF --include=*.php "rot13" . | less
grep -rlF --include=*.php "eval(base64" . | less
grep -rlF --include=*.php "base64_decode" . | less
grep -rlF --include=*.php "Array('1'" . | less
grep -rlF --include=*.php "array_diff_ukey" . | less
grep -rlF --include=*.php "GLOBALS['" . | less
grep -rlF --include=*.php "%x" . | less
grep -rlF --include=*.php "x6" . | less
grep -rlF --include=*.php "x62" . | less
grep -rlF --include=*.php "s20" . | less
grep -rlF --include=*.php "s21" . | less
grep -rlF --include=*.php "s22" . | less
grep -rlF --include=*.php "r42" . | less
grep -rlF --include=*.php "ndd" . | less
grep -rlF --include=*.php "PHP_OS" . | less
grep -rlF --include=*.php "FilesMan" . | less
grep -rlF --include=*.php "cwd" . | less
grep -rlF --include=*.php "base'.(32*2)" . | less
grep -rlF --include=*.php "_de'.'code" . | less
grep -rlF --include=*.php "isset($_GET[w" . | less
grep -rlF --include=*.php "multipart/form-data" . | less
grep -rlF --include=*.php "r13" . | less
grep -rlF --include=*.php "sF" . | less
grep -rlF --include=*.php "and strlen" . | less
grep -rlF --include=*.php "ignore_user_abort" . | less
grep -rlF --include=*.php "set_time_limit" . | less
grep -rlF --include=*.php "safe_mode" . | less
grep -rlF --include=*.php "(.(_(:" . | less
grep -rlF --include=*.php "//##" . | less
grep -rlF --include=*.php "Name: Docs" . | less
grep -rlF --include=*.php ".= isset" . | less
grep -rlF --include=*.php "< strlen" . | less
grep -rlF --include=*.php "<?php              " . | less
find . -path "​*/tmp/*​.php" | less
find . -path "​*/media/*.php" | less
find . -name ".*php" | less
find . -name '*[0-9].php' | less
find . -path "*/uploads/*.php" | less
find . -path "*/images/*.php" | less
find . -path "*/img/*.php" | less
find . -path "*/js/*.php" | less
find . -path "*/css/*.php" | less

Seveda pa se je potrebno upoštevati naslednje:

  • Ti ukazi bodo našli tudi veliko datotek, ki ne vsebujejo zlonamerne kode. Takemu dogodku se reče ti.i. “false positive”. Zato je pri vseh datotekah potreben tudi ročen pregled posamezne datoteke, razen če ste 100% prepričani, da je zlonamerna.
  • Ni nujno, da boste s temi ukazi našli vse zlonamerne oz. okužene datoteke.

Kako očistiti okužene spletne strani

Z zgoraj omenjenimi ukazi bomo našli tri (3) različne tipe datotek:

  1. datoteke, ki so v celoti zlonamerne,
  2. legitimne datoteke, ki so samo okužene z vrinjeno zlonamerno kodo,
  3. legitimne datoteke, ki niso okužene (“false positive“).

Prve datoteke (točka 1), ki ne vsebujejo nič drugega kot zlonamerno kodo, lahko v celoti pobrišete.

Druge datoteke, ki so omenjene pod točko 2, je potrebno ročno očistiti. To storite tako, da datoteko odprete v vašem urejevalniku kode (lahko uporabite tudi vgrajen cPanel urejevalnik) in zlonamerno kodo ročno odstranite.

Legitimne in neokužene datoteke, omenjene pri točki 3, pa lahko ignorirate. Pri iskanju se te datoteke znajdejo med rezultati samo zato, ker vsebujejo podobne znake kot okužene datoteke, ampak v resnici niso škodljive.