Go achomair: Nuair a thosaíonn PHP-FPM, Apache nó próiseas eile freastalaí gréasáin sliogán ar nós sh nó bash, is ceann de na comharthaí rabhaidh is láidre é do bhriseadh isteach tríd an suíomh gréasáin. Seiceáil crann na bpróiseas, an líne ordaithe agus eolaire oibre an tsliogáin sula stopann tú aon ní. Is féidir le sliogáin ghearra aonair a bheith dleathach; is beagnach riamh nach bhfuil sliogáin fhada le huirlisí líonra.
Cén fáth go n-insíonn an patrún seo oiread sin
Freagraíonn freastalaí gréasáin d'iarratais. Ní thosaíonn PHP-FPM, an bainisteoir próisis a ritheann scripteanna PHP don fhreastalaí gréasáin, cláir eile chuige sin de ghnáth. Ciallaíonn sliogán faoin bhfreastalaí gréasáin gur ghlaoigh cód PHP clár d'aon ghnó. Tá an feidhmchlár á dhéanamh d'aon ghnó, nó chuir duine eile cód isteach.
Do PHP2Shell níl aon Indicators of Compromise foilsithe agus deimhnithe ann, is é sin liosta de shainchomharthaí seasta. Tá an brath bunaithe ar iompar. De réir na dtuarascálacha atá againn, tá próisis freastalaí gréasáin nó PHP-FPM a thosaíonn sliogán i measc na gcomharthaí rabhaidh ginearálta is láidre. Baineann sé sin le gach leochaileacht trínar féidir le hionsaitheoirí cód a rith ar an bhfreastalaí. Tugann An bhfuil mé sáraithe cheana? forléargas ar chomharthaí eile.
Cén fáth go bhfuil an sliogán chomh tábhachtach d'ionsaitheoir? Le leochaileacht ní féidir leis ar dtús ach orduithe aonair a thabhairt tríd an bpróiseas PHP. Déanann sliogán ionad oibre compordach de: is féidir leis breathnú thart, uirlisí a íoslódáil, sonraí rochtana a léamh as comhaid chumraíochta agus é féin a bhunú go buan. An té a aithníonn an sliogán, aithníonn sé an t-ionsaitheoir go minic ag an nóiméad a théann sé ón gcéad rochtain go dtí an fíorsprioc.
PHP-FPM ag tosú bash: crann na bpróiseas a léamh
Tá próiseas tuismitheora ag gach próiseas faoi Linux. Is í an cheist an ritheann sliogán mar leanbh de phróiseas freastalaí gréasáin. Ní léann na horduithe seo ach:
# Crann na bpróiseas le húsáideoir, PID tuismitheora agus am tosaithe
ps -eo user,pid,ppid,lstart,cmd --forest | grep -B2 -A4 -E "[p]hp-fpm|[a]pache2|[h]ttpd|[l]sphp"
# Sliogáin a ritheann faoi úsáideoirí tipiciúla freastalaí gréasáin
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx) " | grep -E "[ /](ba|da)?sh( |$)"
# An crann ón bpróiseas PHP-FPM is sine
pstree -alp "$(pgrep -o php-fpm)"
Má tá sliogán amhrasach aimsithe agat, tugann na hiontrálacha faoi /proc leideanna eile, léitheoireacht amháin freisin:
PID=12345 # PID an tsliogáin amhrasaigh
tr '\0' ' ' < /proc/$PID/cmdline; echo # an líne ordaithe iomlán
ls -l /proc/$PID/cwd /proc/$PID/exe # eolaire oibre agus comhad an chláir
ls -l /proc/$PID/fd 2>/dev/null | grep socket # naisc líonra oscailte
Is minic a bhíonn ainmneacha próisis ar Debian agus Ubuntu php8.3-fpm nó rud comhchosúil; oiriúnaigh na patrúin chuardaigh. Is comhartha soiléir iad eolairí oibre i /tmp, /dev/shm nó i bhfillteáin uaslódála.
Eisceachtaí dleathacha agus fíorchomharthaí rabhaidh
Glaonn roinnt feidhmchlár cláir trí PHP. D'fhéadfadh sliogán a bheith ann ar feadh tamaill ghairid dá bharr, mar shampla nuair a thugann PHP ríomhphoist trí sendmail_path nó nuair a phróiseálann feidhmchlár íomhánna le huirlis sheachtrach. Ní mhaireann sliogáin den sórt sin ach soicindí agus glaonn siad an clár céanna i gcónaí. Doiciméadaigh na cásanna ionchais seo go glan uair amháin; ansin tarraingíonn aon fhorbairt uathu aird láithreach, in ionad dul amú i dtuile teachtaireachtaí aitheanta.
| Breathnóireacht | Níos neamhdhíobhálaí, má | Amhrasach, má |
|---|---|---|
| Sliogán gairid faoi PHP-FPM | thosaíonn sé clár aitheanta den fheidhmchlár | tá an sprioc agus an cuspóir neamhshoiléir |
| Sliogán a ritheann níos faide | riamh | ritheann sé nóiméid nó uaireanta |
| Uirlisí líonra mar phróiseas linbh | iarratas nuashonraithe nó API aitheanta den fheidhmchlár | leanann íoslódálacha isteach in eolairí sealadacha |
| Eolaire oibre | fillteán tionscadail an fheidhmchláir | /tmp, /dev/shm, fillteán uaslódála |
| Am | thagann sé le gníomh aitheanta, mar shampla seoladh ríomhphoist | san oíche, gan gníomhaíocht úsáideora, go minic |
Mura bhfuil a fhios agat an nglaonn d'fheidhmchlár cláir, fiafraigh den fhorbróir nó cuardaigh sa chód feidhmeanna ar nós exec, shell_exec, system, passthru, proc_open agus popen. Is gnách torthaí i do chód féin; ní gnách torthaí i gcomhaid anaithnide.
Monatóireacht bhuan in ionad breathnú uair amháin
Ní ghabhann pictiúr tapa le ps ach sliogáin atá ag rith faoi láthair. Sleamhnaíonn próisis ghearra tríd. Is iontaofa é tosú clár ag an úsáideoir freastalaí gréasáin a logáil go buan. Faoi Linux déanann an tseirbhís iniúchta auditd é le riail do thosú clár ag úsáideoir an fhreastalaí gréasáin. Déantar an mheastóireacht léitheoireacht amháin:
# Tosuithe cláir logáilte faoi eochair rialach a thaispeáint (eochair mar shampla)
sudo ausearch -k web_exec --start today -i | grep -E "exe=|proctitle="
Braitheann cuma na rialach ar an dáilte agus ar aitheantas an úsáideora; tástáil í ar dtús, mar tagann a lán iontrálacha ar fhreastalaithe a bhfuil ualach trom orthu.
Déanann dhá chur-leis an monatóireacht iontaofa. Ar an gcéad dul síos, ba cheart logaí a sheoladh chuig córas lárnach freisin, mar is féidir le hionsaitheoir le cearta root logaí áitiúla a scriosadh. Ar an dara dul síos, teastaíonn aláram: ba cheart go spreagfadh tosú cláir ag úsáideoir an fhreastalaí gréasáin nach bhfuil ar liosta gearr de chláir ionchais teachtaireacht, ní iontráil loga amháin. An té a úsáideann cheana réiteach brathta ar fheistí deiridh nó ar fhreastalaithe, is féidir leis an riail chéanna a mhapáil ansin. Mar chosc is féidir an méid nach bhfuil gá ag an bhfeidhmchlár leis a bhac le disable_functions. Ní dhúnann sé sin leochaileacht san ateangaire, ach cuireann sé isteach ar chéim dár gcionn an ionsaitheora. Tá sonraí le fáil faoi disable_functions a úsáid i gceart.
Cad atá le déanamh nuair a aimsíonn tú sliogán faoin bhfreastalaí gréasáin
- Doiciméadú: Aschur
ps, líne ordaithe, eolaire oibre agus naisc oscailte a shábháil i gcomhad lasmuigh den eolaire gréasáin. - Gan glanadh: Gan comhaid a scriosadh agus gan próisis a stopadh sula bhfuil na rianta cosanta.
- Scaradh: An freastalaí a thógáil den líonra nó an rochtain a theorannú go mór.
- Cúis a lorg: Logaí, comhaid nua agus buanseasmhacht ar nós cronjobs a sheiceáil, féach Próisis amhrasacha a aimsiú ar fhreastalaithe Linux.
- Rochtain a athrú: Meastar go bhfuil gach pasfhocal agus eochair a bhí ar an bhfreastalaí ar eolas.
Má ritheann an feidhmchlár i gcoimeádáin, baineann an prionsabal céanna ar scála beag. Tá sliogán sa choimeádán PHP chomh hamhrasach agus atá ar fhreastalaí clasaiceach, agus is minic nach bhfuil sé i bhfíomhánna coimeádáin ach toisc go dtugann an íomhá bhunúsach leis é. Cosain staid an choimeádáin sula n-atosaíonn tú é, mar imíonn na rianta sa chóras comhad sealadach leis an gcoimeádán.
Seiceáil an comharsanacht freisin. Is minic a dhéanann ionsaitheoir le sliogán ar fhreastalaí gréasáin iarracht córais eile a shroicheadh as sin, mar shampla an bunachar sonraí, stóras cúltaca nó comhéadain bhainistíochta inmheánacha. Déanann sonraí rochtana i gcomhaid chumraíochta an fheidhmchláir é seo éasca dó.
Is teagmhas slándála é sliogán fada faoi PHP-FPM ar fhreastalaí le sonraí custaiméirí. Láimhseáil é amhlaidh: cosain, scar, oibrigh go struchtúrtha, iarr dualgais fógartha a sheiceáil.
Conas a chabhraíonn PHP SOS go praiticiúil?
- An fhaisnéis a mheas: Seiceálaimid crann na bpróiseas, línte ordaithe agus naisc agus deighilimid iompar feidhmchláir ó rianta briste isteach.
- Rianta a chosaint: Cosnaímid staid an chórais ar bhealach intreoraithe sula n-athraítear aon ní.
- An teagmhas a láimhseáil: Leis an Freagairt ar Theagmhais treoraímid ón gcuimsiú go dtí an dúnadh doiciméadaithe.
- Cosaint bhuan: Cuirimid logáil tosuithe cláir ar bun agus teorannaímid feidhmeanna PHP leis an méid is gá. Míníonn PHP-FPM mínithe conas a oibríonn PHP-FPM go hinmheánach.
Ceisteanna coitianta
An ionsaí é gach sliogán faoi PHP-FPM?
Ní hea gach ceann. Glaonn roinnt feidhmchlár ar chláir trí PHP d'aon ghnó, mar shampla le haghaidh próiseáil íomhánna nó seoladh ríomhphoist, agus is féidir sliogán a bheith ann go hachomair dá bharr. Éiríonn sé amhrasach nuair a ritheann an sliogán níos faide, nuair a thosaíonn sé uirlisí líonra nó nuair a oibríonn sé ó eolairí neamhghnácha.
Ar cheart dom an próiseas amhrasach a stopadh láithreach?
Doiciméadaigh ar dtús, agus ansin gníomhaigh. Taifead sonraí an phróisis, an líne ordaithe, an t-eolaire oibre agus naisc líonra. Ina dhiaidh sin scar an freastalaí. Scriosann stopadh tapa rianta agus ní chuireann sé cosc ar an ionsaitheoir filleadh.
An bhfuil sainchomharthaí deimhnithe brathta ann do PHP2Shell?
Níl. Níl aon Indicators of Compromise foilsithe agus deimhnithe ann. Is comhartha rabhaidh ginearálta iad sliogáin faoin bhfreastalaí gréasáin do bhriseadh isteach trí fheidhmchláir ghréasáin, ní do PHP2Shell go sonrach.
Conas a chuirim cosc ar PHP ó shliogáin a thosú ar chor ar bith?
Trí disable_functions is féidir feidhmeanna ar nós exec, shell_exec, system agus proc_open a bhac, mura bhfuil siad ag teastáil ón bhfeidhmchlár. Ní dhúnann sé sin leochaileacht san ateangaire PHP, ach déanann sé an leas a bhaint as níos deacra.