Aktuālā situācija: PHP2Shell. Divas kritiskas PHP ievainojamības (CVSS 9.2) ļauj izpildīt ļaunprātīgu kodu bez pieteikšanās. Ielāpi kopš 21.10.2026.Kas jādara tagad →

Webshell atklāšana un noņemšana

Kā uz PHP tīmekļa serveriem atrast slēptās piekļuves, nesabojājot pēdas, un kāpēc ar dzēšanu vien reti pietiek.

Aktuāls uz 4 min lasīšanas laiksRokasgrāmatas

Īsi: webshell atpazīstat pēc jauniem vai mainītiem PHP failiem neparastās vietās, pēc tīmekļa servera lietotāja svešiem procesiem un neparastiem savienojumiem. Pirms kaut ko dzēšat, saglabājiet pēdas, un atjaunojiet kodu no tīra avota. Ielāps vien slēpto piekļuvi nenoņem.

Kāpēc webshell pēc PHP2Shell ir aktuāla tēma

Ievainojamības CVE-2026-109618 un CVE-2026-109619 pašā PHP ļauj attālināti izpildīt ļaunprātīgu kodu bez pieteikšanās. Pēc sekmīga uzbrukuma acīmredzams mērķis ir pastāvīga slēptā piekļuve, tātad webshell. Tā paliek spēkā arī tad, ja PHP starplaikā ir atjaunināts.

Saskaņā ar plašsaziņas līdzekļu ziņojumiem pirmais uzbrukuma mēģinājums tika novērots jau 17.10.2026, ielāpi sekoja 21.10. Kas šajā laikā bija ievainojams, tam jāpārbauda mērķtiecīgi. Apstiprināti Indicators of Compromise līdz šim nav publicēti. Meklēšana tāpēc balstās uz uzvedības novirzēm, nevis uz gatavu sarakstu.

Rīkoties nekavējoties

Ja serverī ar klientu datiem atrodat webshell: neko nedzēsiet pārsteidzīgi. Vispirms saglabājiet pierādījumus, pēc tam izolējiet serveri un plānojiet tālāko apstrādi.

Kā atpazīt webshell: failu pārbaude

Lielākā daļa webshell ir PHP faili tīmekļa direktorijā. Uzkrītoši ir faili, kas radušies vai mainīti pēc 17.10., PHP faili augšupielāžu un kešatmiņas mapēs, kā arī faili ar aizsegtu kodu. Turpmākās komandas neko nemaina, tās tikai uzskaita:

# PHP faili, kas mainīti kopš 17.10.2026
find /var/www -type f -name "*.php*" -newermt "2026-10-17" -ls

# PHP faili augšupielāžu, kešatmiņas vai tmp mapēs
find /var/www -type f -name "*.php*" \( -path "*upload*" -o -path "*cache*" -o -path "*tmp*" \) -ls

# Tipisks aizsegums: eval kopā ar dekodēšanu
grep -rlE "eval\s*\(\s*(base64_decode|gzinflate|str_rot13|gzuncompress)" /var/www --include="*.php"

# Neparasti garas rindas bieži norāda uz saspiestu kodu
grep -rlE ".{3000,}" /var/www --include="*.php"

Atradumi ir norādes, nevis pierādījumi. Daži spraudņi likumīgi izmanto kodētu kodu. Salīdziniet aizdomīgos failus ar ražotāja oriģinālo pakotni. Visuzticamāk ir salīdzinājums ar kontrolsummām vai versiju kontroles sistēmu, piemēram, Git:

# Novirzes no pēdējā zināmā stāvokļa Git repozitorijā
git -C /var/www/projekt status --porcelain

Laika zīmogu var viltot. Tāpēc nepaļaujieties ne tikai uz faila izmaiņu datumu.

Kādas pazīmes failu padara aizdomīgu

Pazīme Kāpēc tā krīt acīs
PHP fails augšupielāžu vai attēlu mapē Tur jābūt tikai multividei
Dubults paplašinājums, piemēram, .jpg.php vai .php.png Maskēšanās kā nekaitīgs fails
Ļoti garas rindas bez pārtraukuma Tipiski saspiestam vai šifrētam kodam
Faila nosaukums līdzīgs kodola failam, bet nav oriģinālajā pakotnē Maskēšanās zināmā vidē
Īpašnieks vai tiesības atšķiras no blakus failiem Fails radīts citā veidā

Jo vairāk pazīmju sakrīt, jo lielāka varbūtība, ka atradums ir patiess. Aizdomīgus failus atveriet tikai kā tekstu, nekad ar pārlūku, jo izsaukums caur vietni kodu izpildītu.

Procesu, savienojumu un cron uzdevumu pārbaude

Aktīva webshell bieži atstāj pēdas ārpus failu sistēmas. Tīmekļa servera lietotājs, piemēram, www-data, apache vai nginx, parasti nestartē čaulas, tīkla rīkus vai kompilatorus.

# Tipisko tīmekļa servera lietotāju procesi
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx)"

# Atvērtie tīkla savienojumi ar piederošo procesu
sudo ss -tunap | grep -E "php|www-data|apache|nginx"

# Tīmekļa servera lietotāja ieplānotie uzdevumi
sudo crontab -u www-data -l
ls -la /etc/cron.d /var/spool/cron 2>/dev/null

Uzkrītoši ir pastāvīgi izejoši savienojumi uz nezināmiem mērķiem, procesi ar mīklainiem nosaukumiem un cron uzdevumi, kas no interneta lejupielādē failus. Pārbaudiet arī piekļuves žurnālus, vai nav pieprasījumu uz failiem, kuru agrāk nebija. Kā to izdarīt, apraksta ceļvedis Tīmekļa servera žurnālu izvērtēšana pēc uzbrukuma.

Pēdu saglabāšana pirms noņemšanas

Kas dzēš pirmais, zaudē atbildes uz svarīgākajiem jautājumiem: kā uzbrucējs iekļuva, ko viņš redzēja, kuri dati ir skarti? Šīs atbildes jums vajadzīgas iespējamam VDAR ziņojumam, apdrošinātājiem un lēmumam, vai ir apdraudātas arī citas sistēmas.

Lietderīga secība:

  1. Dokumentēt stāvokli: procesu saraksts, tīkla savienojumi, pieteikušies lietotāji.
  2. Aizdomīgos failus un žurnālus nokopēt ar kontrolsummu, tos neatverot un neizpildot.
  3. Ja iespējams, izveidot sistēmas attēlu vai virtuālās mašīnas momentuzņēmumu.
  4. Serveri atvienot no tīkla vai stipri ierobežot piekļuvi.

Sistēmām ar sensitīviem datiem vai iespējamu tiesvedību saglabāšanai jānotiek forensiski tīri. Fona informāciju atradīsiet rakstā IT forensika pēc tīmekļa servera uzbrukuma.

Webshell tīra noņemšana

Viena faila dzēšana reti ir beigas. Uzbrucēji bieži izveido vairākas piekļuves: papildu failus slēptās vietās, ierakstus konfigurācijas failos, piemēram, .htaccess vai .user.ini, jaunus administratoru kontus lietojumprogrammā vai cron uzdevumus. Uzticama attīrīšana seko šiem soļiem:

  • PHP novest līdz izlabotam stāvoklim (8.5.12, 8.4.27, 8.3.36, 8.2.35 vai apstiprināts backports) un pārstartēt visus PHP procesus.
  • Lietojumprogrammas kodu uzstādīt no jauna no tīra avota, nevis labot atsevišķus failus.
  • Pārņemt tikai pārbaudītu saturu, piemēram, augšupielādes un datubāzi, un tur mērķtiecīgi meklēt ievadītu kodu.
  • Nomainīt visus piekļuves datus: datubāzi, SSH, FTP, administratoru kontus, API atslēgas.
  • Ierobežot tīmekļa servera rakstīšanas tiesības līdz nepieciešamajam un aizliegt PHP izpildi augšupielāžu mapēs.

WordPress ir savas tipiskas slēptuves, ko apraksta ceļvedis Backdoor atrašana WordPress. Pēc tam vietne kādu laiku jāuzrauga stingrāk, lai atkārtotu piekļuvi pamanītu savlaicīgi.

Kā PHP SOS palīdz konkrēti?

  • Žurnālus, failus un sistēmas stāvokli saglabājam izsekojami, pirms kaut kas tiek mainīts.
  • Meklējam slēptās piekļuves failos, datubāzē, cron uzdevumos un konfigurācijā un klasificējam atradumus.
  • Lietojumprogrammu uzstādām no jauna no tīra avota, nomainām piekļuves un nostiprinām serveri.
  • Incidentu dokumentējam līdz tā noslēgumam, kā pamatu ziņojumiem un apdrošinātājiem.

Attīrīšanas norisi apraksta pakalpojums Ļaunprogrammatūras un webshell noņemšana.

Biežāk uzdotie jautājumi

Kas ir webshell?

Webshell ir ievadīts fails, parasti PHP, ar kura palīdzību uzbrucēji var attālināti vadīt serveri. Tas bieži maskējas kā nekaitīgs fails ar neuzkrītošu nosaukumu un paliek aktīvs arī pēc atjauninājuma.

Vai antivīrusa skeneris atrod katru webshell?

Nē. Skeneri atpazīst zināmus paraugus, jaunie vai stipri aizsegtie varianti izslīd cauri. Par PHP2Shell turklāt nav publicētu, apstiprinātu Indicators of Compromise, tāpēc uzvedības analīze ir svarīgāka par parakstu sarakstu.

Vai pietiek ar atrastā faila dzēšanu?

Parasti nē. Uzbrucēji bieži izveido vairākas piekļuves, piemēram, papildu failus, cron uzdevumus vai jaunus administratoru kontus. Bez cēloņu analīzes un visu piekļuves datu nomaiņas atkārtota piekļuve ir ticama.

Vai pēc webshell atrašanas man kaut kas jāpaziņo?

Ja var būt skarti personas dati, var pastāvēt ziņošanas pienākums saskaņā ar VDAR, parasti 72 stundu laikā. Noskaidrojiet to ar savu datu aizsardzības speciālistu vai advokātu; šī nav juridiska konsultācija.

Avoti

Tūlītējs kontakts

Katra stunda ir svarīga. Rakstiet mums tūlīt.

Īsi aprakstiet sistēmu, PHP versiju un novēroto. Mēs sazināsimies, noskaidrosim situāciju un strādāsim attālināti, līdz incidents ir slēgts un dokumentēts.

Tūlītēja palīdzība