Haavatavus, mis vÔimaldab sisestada escape-jÀrjendeid teiste terminalidesse.

Utiliidil wall, mis on osa util-linux paketist ja mĂ”eldud sĂ”numite saatmiseks terminalidesse, avastati haavatavus (CVE-2024-28085), mis vĂ”imaldab rĂŒnnata teiste kasutajate terminale escape-jĂ€rjestuste manipuleerimise kaudu. Probleem tuleneb sellest, et utiliit wall blokeerib escape-jĂ€rjestuste kasutamise sisendvoos, kuid ei tee seda kĂ€surea argumentide osas, mis vĂ”imaldab rĂŒndajal kĂ€ivitada escape-jĂ€rjestusi teiste kasutajate terminalides.

NĂ€iteks, kui tĂ€ita 'wall $(printf "\033[33mHI")', saab kuvada sĂ”numit "HI" kollases vĂ€rvis. Escape-jĂ€rjestuste abil, mis vĂ”imaldavad kursorit liigutada, sisu ekraanilt kustutada ja asendada, saab simuleerida sudo utiliidi parooli sisestamise kutset teise kasutaja terminalis. Kui kasutaja ei mĂ€rka petukĂ€iku ja sisestab oma parooli, siis parool registreeritakse sisestusajaloos kui mitteeksisteeriv kĂ€sk (pĂ”himĂ”tteliselt sisestab kasutaja kĂ€skude asemel oma parooli kĂ€sureale). "\033[3A" // liigutame kursori 3 rida ĂŒles "\033[K" // kustutame eelmise vĂ€ljundi "[sudo] parool kasutajalt a_user:" // kuvame vale sudo kutse "\033[?25l" // seame taustavĂ€rvi, et varjata sisestust "\033[38;2;48;10;36m"

Teavituse andmisel, et sisestatud kĂ€sku ei leitud, kĂ€ivitub paljudes jaotustes kĂ€itleja /usr/lib/command-not-found, mis pĂŒĂŒab mÀÀrata paketti, milles puuduv kĂ€sk esineb, ning anda ettepaneku selle installimiseks. Probleem seisneb aga selles, et kĂ€itleja command-not-found'ile antakse mittetuvastatav kĂ€sk kĂ€surea parameetrina, mis on nĂ€htav sĂŒsteemi protsesside vaatamisel (nĂ€iteks, kui proovida kĂ€ivitada installimata utiliiti 'xsnow', ilmub protsesside loendis ' /usr/lib/command-not-found -- xsnow'). Seega vĂ”ib rĂŒndaja korraldada kĂ€ivitatud protsesside jĂ€lgimise (nĂ€iteks analĂŒĂŒsides ilmumist '/proc/$pid/cmdline' prognoositava PID numbri jaoks) ja tuvastada ohvri sisestatud parooli kĂ€sureal.

Kuna kasutaja sisestaks parooli vale sudo kutse peale, on pakutud nipp, mis seisneb tĂ”elise sudo utiliidi kĂ€ivitamise jĂ€lgimises protsesside loendis, selle lĂ”ppemist ootamises ja rĂŒnnaku lĂ€biviimises "wall" kohe pĂ€rast seda. KĂ€su escape-jĂ€rjestuste manipuleerimise kaudu saab rĂŒndaja asendada tĂ”elise sudo tĂ€itmise jĂ€rel oleva sĂ”numi vale parooli uuesti sisestamise kutsega. Ohver vĂ”ib arvata, et tegi sisestamisel vea ja sisestada parooli teist korda, paljastades parooli "command-not-found" töötleja argumentides.

Eduka rĂŒnnaku jaoks peab "mesg" reĆŸiim olema seatud vÀÀrtusele "y", mis on mĂ”nes Linuxi jaotuses vaikimisi seatud Ubuntu, Debian ja CentOS/RHEL puhul. RĂŒnnaku teostamise vĂ”imalust demonstreeritakse Ubuntu 22.04 vaikimisi konfiguratsioonis gnome-terminal’is. Debianis on rĂŒnnak keeruline, kuna vaikimisi jaotuses ei ole "command-not-found" töötlejat, ning CentOS/RHEL-is ei Ă”nnestu rĂŒnnak, kuna wall utiliit on seatud ilma setgid liputa ja tal puudub ligipÀÀs teistele terminalidele. Windows-terminali kasutamisel saab rĂŒnnakut muuta lĂ”ike sisu muutmiseks.

Haavatavus ilmnes util-linux paketis alates 2013. aastast, kui versioonis 2.24 lisati vĂ”imalus edastada sĂ”num kĂ€sureal wall, kuid unustati rakendada escape-jĂ€rjestuste puhastamist. Haavatavuse parandamine on kaasatud eilse util-linux 2.40 versiooni. Huvitav on see, et util-linux 2.39 versiooni parandamise katses tuvastati veel ĂŒks sarnane haavatavus, mis vĂ”imaldab juhtivate sĂŒmbolite asendamist locale'ide manipulatsiooni kaudu.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster