Trenutno stanje: PHP2Shell. Dve kritični ranljivosti PHP (CVSS 9,2) omogočata izvedbo škodljive kode brez prijave. Popravki od 21. 10. 2026.Kaj je zdaj treba storiti →

Prepoznavanje in odstranitev webshella

Kako na spletnih strežnikih PHP najdete stranska vrata, ne da bi uničili sledi, in zakaj samo brisanje redko zadošča.

Stanje 5 min branjaPriročniki

Na kratko: Webshell prepoznate po novih ali spremenjenih datotekah PHP na netipičnih mestih, po tujih procesih uporabnika spletnega strežnika in po nenavadnih povezavah. Preden karkoli izbrišete, zavarujte sledi in kodo obnovite iz čistega vira. Sam popravek stranskih vrat ne odstrani.

Zakaj so webshelli po PHP2Shell tema

Ranljivosti CVE-2026-109618 in CVE-2026-109619 v samem PHP omogočata izvajanje škodljive kode na daljavo brez prijave. Očiten cilj po uspešnem napadu so trajna stranska vrata, torej webshell. Ta ostane, tudi če je PHP medtem posodobljen.

Po poročilih medijev je bil prvi poskus napada opažen že 17. 10. 2026, popravki so sledili 21. 10. Kdor je bil v tem obdobju ranljiv, naj ciljno pregleda sistem. Potrjeni Indicators of Compromise zaenkrat niso objavljeni. Iskanje zato temelji na nepravilnostih v vedenju, ne na gotovem seznamu.

Ukrepajte takoj

Če webshell najdete na strežniku s podatki strank: ničesar ne brišite na hitro. Najprej zavarujte dokaze, nato strežnik izolirajte in načrtujte nadaljnjo obravnavo.

Kako prepoznate webshell: pregled datotek

Večina webshellov so datoteke PHP v spletni mapi. Sumljive so datoteke, ki so nastale ali bile spremenjene po 17. 10., datoteke PHP v mapah za nalaganje in predpomnilnik ter datoteke z zakrito kodo. Naslednji ukazi nič ne spremenijo, samo naštevajo:

# Datoteke PHP, spremenjene od 17. 10. 2026
find /var/www -type f -name "*.php*" -newermt "2026-10-17" -ls

# Datoteke PHP v mapah za nalaganje, predpomnilnik ali tmp
find /var/www -type f -name "*.php*" \( -path "*upload*" -o -path "*cache*" -o -path "*tmp*" \) -ls

# Značilno zakrivanje: eval v kombinaciji z dekodiranjem
grep -rlE "eval\s*\(\s*(base64_decode|gzinflate|str_rot13|gzuncompress)" /var/www --include="*.php"

# Nenavadno dolge vrstice pogosto kažejo na pakirano kodo
grep -rlE ".{3000,}" /var/www --include="*.php"

Zadetki so namigi, ne dokazi. Nekateri vtičniki zakonito uporabljajo kodirano kodo. Sumljive datoteke primerjajte z izvirnim paketom proizvajalca. Najzanesljivejša je primerjava s kontrolnimi vsotami ali sistemom za nadzor različic, kot je Git:

# Odstopanja od zadnjega znanega stanja v repozitoriju Git
git -C /var/www/projekt status --porcelain

Časovni žig je lahko ponarejen. Zato se ne zanašajte samo na datum spremembe datoteke.

Katere značilnosti naredijo datoteko sumljivo

Značilnost Zakaj je opazna
Datoteka PHP v mapi za nalaganje ali slike Tam bi morali biti samo mediji
Dvojna končnica, kot je .jpg.php ali .php.png Maskiranje kot neškodljiva datoteka
Zelo dolge vrstice brez preloma Značilno za pakirano ali šifrirano kodo
Ime datoteke podobno jedrni datoteki, a je ni v izvirnem paketu Maskiranje v znanem okolju
Lastnik ali pravice odstopajo od sosednjih datotek Datoteka je bila ustvarjena po drugi poti

Več značilnosti kot se jih sestavi, večja je verjetnost najdbe. Sumljive datoteke odpirajte samo kot besedilo, nikoli prek brskalnika, saj bi klic prek spletne strani kodo izvedel.

Pregled procesov, povezav in cron opravil

Aktivni webshell pogosto pusti sledi zunaj datotečnega sistema. Uporabnik spletnega strežnika, na primer www-data, apache ali nginx, običajno ne zaganja lupin, omrežnih orodij ali prevajalnikov.

# Procesi tipičnih uporabnikov spletnega strežnika
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx)"

# Odprte omrežne povezave s pripadajočim procesom
sudo ss -tunap | grep -E "php|www-data|apache|nginx"

# Načrtovana opravila uporabnika spletnega strežnika
sudo crontab -u www-data -l
ls -la /etc/cron.d /var/spool/cron 2>/dev/null

Sumljive so trajne odhodne povezave na neznane cilje, procesi z skrivnostnimi imeni in cron opravila, ki iz interneta nalagajo datoteke. Preverite tudi dnevnike dostopov glede zahtev na datoteke, ki jih prej ni bilo. Kako, opisuje vodnik Analiza dnevnikov spletnega strežnika po napadu.

Zavarujte sledi, preden odstranjujete

Kdor najprej briše, izgubi odgovor na najpomembnejša vprašanja: kako je napadalec prišel noter, kaj je videl, kateri podatki so prizadeti? Te odgovore potrebujete za morebitno prijavo po GDPR, za zavarovalnice in za odločitev, ali so ogroženi še drugi sistemi.

Smiselno zaporedje:

  1. Dokumentirajte stanje: seznam procesov, omrežne povezave, prijavljeni uporabniki.
  2. Sumljive datoteke in dnevnike kopirajte s kontrolno vsoto, ne da bi jih odprli ali izvedli.
  3. Če je mogoče, ustvarite sliko sistema ali posnetek (snapshot) virtualnega stroja.
  4. Strežnik odklopite z omrežja ali dostop močno omejite.

Pri sistemih z občutljivimi podatki ali morebitnim pravnim sporom naj bo zavarovanje izvedeno forenzično čisto. Ozadje najdete na strani IT-forenzika po napadu na spletni strežnik.

Pravilna odstranitev webshellov

Brisanje posamezne datoteke je redko konec. Napadalci pogosto vzpostavijo več dostopov: dodatne datoteke na skritih mestih, vnose v konfiguracijskih datotekah, kot sta .htaccess ali .user.ini, nove skrbniške račune v aplikaciji ali cron opravila. Zanesljivo čiščenje sledi tem korakom:

  • PHP posodobite na odpravljeno stanje (8.5.12, 8.4.27, 8.3.36, 8.2.35 ali potrjen backport) in znova zaženite vse procese PHP.
  • Kodo aplikacije znova postavite iz čistega vira, namesto da popravljate posamezne datoteke.
  • Prevzemite samo preverjene vsebine, kot so nalaganja in podatkovna zbirka, in v njih ciljno iščite vneseno kodo.
  • Zamenjajte vse dostopne podatke: podatkovna zbirka, SSH, FTP, skrbniški računi, ključi API.
  • Pravice pisanja spletnega strežnika omejite na najnujnejše in preprečite izvajanje PHP v mapah za nalaganje.

Za WordPress obstajajo značilna skrivališča, ki jih opisuje vodnik Iskanje stranskih vrat v WordPressu. Nato naj se spletna stran nekaj časa nadzira strožje, da ponoven dostop opazite zgodaj.

Kako PHP SOS pomaga konkretno?

  • Dnevnike, datoteke in stanje sistema zavarujemo sledljivo, še preden se karkoli spremeni.
  • Stranska vrata iščemo v datotekah, podatkovni zbirki, cron opravilih in konfiguraciji ter najdbe ovrednotimo.
  • Aplikacijo znova postavimo iz čistega vira, zamenjamo dostope in utrdimo strežnik.
  • Incident dokumentiramo do zaključka, kot podlago za prijave in zavarovalnice.

Potek čiščenja opisuje storitev Odstranitev zlonamerne programske opreme in webshellov.

Pogosta vprašanja

Kaj je webshell?

Webshell je vnesena datoteka, praviloma PHP, prek katere lahko napadalci strežnik upravljajo na daljavo. Pogosto se maskira kot neškodljiva datoteka z neopaznim imenom in ostane aktivna tudi po posodobitvi.

Ali protivirusni skener najde vsak webshell?

Ne. Skenerji prepoznajo znane vzorce, nove ali močno zakrite različice jim ušnejo. Za PHP2Shell poleg tega ni objavljenih, potrjenih Indicators of Compromise, zato je analiza vedenja pomembnejša od seznama podpisov.

Ali zadošča, da najdeno datoteko izbrišem?

Praviloma ne. Napadalci pogosto vzpostavijo več dostopov, na primer dodatne datoteke, cron opravila ali nove skrbniške račune. Brez analize vzroka in zamenjave vseh dostopnih podatkov je ponoven dostop verjeten.

Ali moram po najdbi webshella kaj prijaviti?

Če so lahko prizadeti osebni podatki, lahko obstaja obveznost prijave po GDPR, praviloma v 72 urah. To razjasnite s pooblaščencem za varstvo podatkov ali odvetnikom; to ni pravno svetovanje.

Viri

Takojšnji stik

Vsaka ura šteje. Pišite nam zdaj.

Na kratko opišite sistem, različico PHP in opažanje. Odzovemo se, razjasnimo stanje in delamo na daljavo, dokler incident ni zaključen in dokumentiran.

Takojšnja pomoč