Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Agħraf kodiċi PHP moħbi

Kodiċi PHP li ma jinqarax b'eval u base64_decode huwa sinjal klassiku ta' kodiċi malizzjuż introdott. Liema mudelli tfittex, kif issibhom mingħajr periklu u meta l-moħbi huwa leġittimu.

Stat 6 min. qariSkoperta u forensika

Fil-qosor: Kodiċi PHP moħbi huwa kodiċi li sar intenzjonalment illeġibbli, ġeneralment permezz ta' kodifikazzjoni u kompressjoni li jinħallu biss waqt it-tħaddim. Mudelli tipiċi ta' tagħrif huma eval flimkien ma' base64_decode, gzinflate jew str_rot13, linji twal ħafna, sekwenzi hex u ismijiet ta' funzjonijiet li jinġabru minn partijiet individwali. Fittex b'kmandi grep bla ħsara, qatt tesegwixxi l-kodiċi u qabbel is-sejbiet mal-pakkett oriġinali.

Għaliex l-attakkanti jaħbu l-kodiċi tagħhom

Min iħalli webshell jew backdoor fuq server jrid li tibqa' mhux skoperta għal żmien twil. Kodiċi li jinqara jaqbad l-għajn ta' kull amministratur li jiftaħ il-fajl, u kull scanner isibu. Għalhekk l-attakkanti jippakkjaw il-kodiċi tagħhom: jiġi kodifikat, kompress u biss meta jiġi sejjaħ jerġa' jinġabar u jiġi eżegwit.

Għal PHP2Shell m'hemm l-ebda Indicators of Compromise ikkonfermati. Kodiċi moħbi mhuwiex karatteristika ta' din il-vulnerabbiltà, imma sinjal ġenerali li xi ħadd introduċa kodiċi, irrispettivament minn liema triq. Kif issib u tneħħi webshells b'mod ġenerali jiddeskrivih Agħraf u neħħi webshell. Dan l-artikolu jikkonċentra fuq il-mistoqsija kif tagħraf kodiċi moħbi.

eval, base64 u oħrajn: il-blokki tipiċi

Il-moħbi jsegwi kważi dejjem l-istess prinċipju: blokk ta' data illeġibbli jinbidel lura minn funzjoni waħda jew iktar f'kodiċi li mbagħad jiġi eżegwit. Il-blokki li ġejjin jerġgħu jidhru ripetutament.

Blokk Eżempji Għaliex jaqbad l-għajn
Eżekuzzjoni eval, assert b'sekwenza ta' karattri (sa PHP 7.x), create_function (sa PHP 7.x) jesegwixxi test bħala kodiċi
Dekodifikazzjoni base64_decode, str_rot13, hex2bin, strrev, convert_uudecode jerġa' jagħmel id-data leġibbli
Dekompressjoni gzinflate, gzuncompress, gzdecode jiftaħ kodiċi mdaħħal
Assemblaġġ ktajjen chr(), konkatenazzjoni ta' biċċiet qosra, escapes \x jaħbi ismijiet ta' funzjonijiet
Sejħa dinamika varjabbli bħala isem tal-funzjoni, call_user_func, array_map b'sekwenza ta' karattri is-sejħa ma tidher imkien fi test ċar
Aċċess għas-sistema system, exec, shell_exec, passthru, proc_open, popen kmandi fuq is-server

Skont il-manwal ta' PHP, assert() minn PHP 8.0 'il quddiem ma jivvalutax aktar sekwenzi ta' karattri bħala kodiċi, u create_function() tneħħa f'PHP 8.0. Fuq servers b'verżjonijiet eqdem ta' PHP it-tnejn jibqgħu termini rilevanti għat-tiftix.

Blokk wieħed rari huwa suspettuż, base64_decode pereżempju jużawh ħafna applikazzjonijiet b'mod leġittimu. Isir suspettuż il-kombinazzjoni: dekodifikazzjoni li r-riżultat tagħha jmur direttament fi eżekuzzjoni.

Fittex mingħajr periklu: kmandi grep bla ħsara

Il-kmandi li ġejjin ifittxu fil-fajls biss bħala test. Ma jesegwixxu l-ebda kodiċi PHP. Adatta l-mogħdija.

# Eżekuzzjoni kkombinata ma' dekodifikazzjoni jew dekompressjoni
grep -rlE "(eval|assert)\s*\(\s*(base64_decode|gzinflate|gzuncompress|str_rot13|hex2bin)" /var/www --include="*.php*"

# Linji twal ħafna (spiss kodiċi mpakkjat)
grep -rlE ".{2000,}" /var/www --include="*.php*"

# Ħafna escapes hex jew ktajjen chr() f'linja waħda
grep -rlE "(\\\\x[0-9a-fA-F]{2}){20,}" /var/www --include="*.php*"
grep -rlE "(chr\s*\(\s*[0-9]+\s*\)\s*\.\s*){8,}" /var/www --include="*.php*"

# Sejħa ta' funzjoni permezz ta' varjabbli direttament wara assenjazzjoni minn sekwenzi ta' karattri
grep -rnE "\\\$[a-zA-Z_]+\s*=\s*['\"][a-z_]{4,}['\"]\s*;\s*\\\$[a-zA-Z_]+\s*\(" /var/www --include="*.php*" | head -50

Iċċekkja r-riżultati l-ewwel b'ls -l u t-timestamp u imbagħad iftaħhom biss bħala test, pereżempju b'less. Qatt tsejjaħx fajls suspettużi permezz tal-browser, għax b'hekk is-server jesegwihom.

Fejn normalment jinsab kodiċi moħbi

Kodiċi moħbi rari jinsab f'fajl proprju u li jaqbad l-għajn. Aktar spiss jiddaħħal fi fajls eżistenti, fil-bidu nett jew fl-aħħar nett, spiss wara ħafna linji vojta, biex ma jaqbadx l-għajn minnufih meta jinfetaħ. Popolari huma fajls li jitgħabbew f'kull sejħa: l-index.php ċentrali, fajls tal-konfigurazzjoni u l-fajls tal-funzjonijiet ta' theme.

Triq partikolarment diskreta tgħaddi mill-konfigurazzjoni. Bl-issettjar auto_prepend_file PHP jgħabbi fajl addizzjonali qabel kull skript. Jekk jinsab f'.user.ini jew .htaccess li ħoloq attakkant, il-kodiċi tiegħu jaħdem ma' kull sejħa ta' paġna, mingħajr ma jinbidel ebda fajl tal-applikazzjoni. Il-fajl imdaħħal ta' spiss ikollu estensjoni bla ħsara bħal .ico jew .png.

# Kodiċi addizzjonali jitgħabba qabel jew wara kull skript?
grep -rnE "auto_(prepend|append)_file" /var/www --include=".user.ini" --include=".htaccess" --include="*.conf" 2>/dev/null

# Kodiċi PHP fi fajls b'estensjoni ta' immaġni jew ikona
grep -rlE "<\?php" /var/www --include="*.ico" --include="*.png" --include="*.jpg" --include="*.gif" 2>/dev/null

Ifred il-moħbi leġittimu minn kodiċi malizzjuż

Mhux kull kodiċi illeġibbli huwa malizzjuż. Tliet każijiet jiġru spiss:

  1. Encoders kummerċjali: Xi manifatturi ta' plugins u softwer jipproteġu l-kodiċi tagħhom b'għodod bħal ionCube jew SourceGuardian. Il-fajls ma jinqarawx, imma tipikament jirreferu għall-loader meħtieġ. Qabbilhom mal-pakkett oriġinali.
  2. Kodiċi minifikat jew iġġenerat: Caches u engines tat-templates joħolqu linji twal mingħajr qsim, madankollu mingħajr eżekuzzjoni ta' test dekodifikat.
  3. Data mdaħħla: Immaġini jew fonts bħala sekwenza Base64 fi fajl PHP huma mhux tas-soltu, imma bla ħsara, sakemm ir-riżultat ma jiġix eżegwit.

L-iktar test affidabbli huwa t-tqabbil mas-sors: jekk il-fajl ġej mingħajr bidla mill-pakkett tal-manifattur, huwa leġittimu. Jekk ma jinsab f'ebda pakkett oriġinali jew jiddevja minnu, jixraq li jiġi investigat.

Importanti

Tippruvax tiddekripta kodiċi moħbi fuq is-server produttiv, pereżempju billi tissostitwixxi eval b'output u tissejjaħ il-fajl. Anke żball wieħed hemmhekk jesegwixxi l-kodiċi malizzjuż. L-analiżi tappartjeni f'ambjent iżolat.

Limiti tat-tiftix ta' mudelli

L-attakkanti jafu l-kmandi komuni tat-tiftix. Jaqsmu ismijiet ta' funzjonijiet, jinġabru waqt it-tħaddim jew jibagħtu l-kodiċi veru fid-database, fi fajls tal-immaġni jew f'daħliet tal-konfigurazzjoni. Tiftix ta' mudelli għalhekk isib ħafna, imma mhux kollox. Għaliex anke scanners isibu limiti hawnhekk tispjegah Scanners tal-malware għal websajts: dak li jsibu u dak li ma jsibux.

Sejba, barra minn hekk, rari tkun l-unika. L-attakkanti spiss jużaw l-istess blokk f'diversi fajls, pereżempju isem ta' varjabbli li jaqbad l-għajn jew sekwenza distinta fil-bidu tal-blokk kodifikat. Wara sejba kkonfermata għalhekk fittex b'mod immirat eżattament din is-sekwenza fid-direttorju tal-web kollu, anke f'websajts oħra fuq l-istess server. Hekk issib aħwa li l-ebda tiftix ġenerali ta' mudelli ma qabad.

Kompli t-tiftix bit-tqabbil ma' fajls oriġinali u b'ħarsa fid-database, ara Iċċekkja d-database għal kodiċi introdott. B'mod preventiv jistgħu jiġu mblukkati funzjonijiet tas-sistema mhux meħtieġa, kif deskritt fil-gwida Kif tuża sew disable_functions.

Kif tgħin PHP SOS b'mod konkret?

  • Infittxu: Infittxu fi fajls u fid-database b'mudelli estiżi u nqabblu ma' pakketti oriġinali.
  • Neżaminaw: Neżaminaw kodiċi suspettuż f'ambjent iżolat, mingħajr ma nipperikolaw is-sistema tagħkom.
  • Intnaddfu: Bit-Tneħħija tal-malware neħħu l-partijiet kollha u nagħlqu t-triq tad-dħul.
  • Nassiguraw: Nillimitaw il-funzjonijiet ta' PHP u d-drittijiet tal-kitba u nissorveljaw fajls ġodda jew mibdula.

Mistoqsijiet frekwenti

eval b'base64_decode huwa dejjem kodiċi malizzjuż?

Mhux dejjem, imma spiss ħafna. Kodiċi leġittimu kważi ma jeħtieġx din il-kombinazzjoni. Fi fajls li ma jappartjenux għall-applikazzjoni tiegħek jew għal plugin magħruf, huwa sinjal qawwi ta' twissija.

Nista' ndekodifika kodiċi moħbi biex naqrah?

Biss mingħajr ma teżegwih u mhux fuq is-server produttiv. Anke eżekuzzjoni aċċidentali tista' tikkawża ħsara. Fid-dubju ħalli l-analiżi f'idejn speċjalisti li jaħdmu b'ambjenti iżolati.

Għaliex l-iscanner tal-malware tiegħi ma jsibx il-kodiċi?

L-iscanners ifittxu mudelli magħrufa. L-attakkanti jibdlu l-kodiċi tagħhom kontinwament, jaqsmu ismijiet ta' funzjonijiet jew iġibuhom flimkien waqt it-tħaddim. Skennjar vojt għalhekk mhuwiex prova ta' server nadif.

X'inhu dwar plugins kriptati kummerċjalment?

Xi manifatturi jipproteġu l-kodiċi tagħhom b'encoders bħal ionCube jew SourceGuardian. Fajls bħal dawn ma jinqarawx, imma huma leġittimi jekk ġejjin mill-manifattur. Qabbilhom mal-pakkett oriġinali.

disable_functions jgħin kontra kodiċi moħbi?

Parzjalment. Funzjonijiet bħal exec jew system jistgħu jiġu mblukkati, eval min-naħa l-oħra le, għax huwa kostrutt tal-lingwa u mhux funzjoni. Il-blokk jagħmel il-pass li jmiss tal-attakkanti aktar diffiċli, imma ma jipprevjenix kull kodiċi malizzjuż.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata