Қабырғалық утилитада (CVE-2024-28085) осалдық анықталды, ол util-linux бумасында жеткізіледі және терминалдарға хабарламалар жіберуге арналған, ол басқа пайдаланушылардың терминалдарына қашу ретін басқару арқылы шабуыл жасауға мүмкіндік береді. Ақаулық қабырға утилитасының кіріс ағынындағы қашу реттілігін блоктайтынымен, бірақ пәрмен жолы дәлелдерінде мұны жасамауынан, шабуылдаушыға басқа пайдаланушылардың терминалдарындағы қашу реттілігінен құтылуға мүмкіндік беруінен туындайды.
Мысалы, "wall $(printf "\033[33mHI")" пәрменін орындау арқылы "HI" сөзін сары түспен басып шығаруға болады. Көрсеткішті жылжытуға, экрандағы мазмұнды тазалауға және ауыстыруға мүмкіндік беретін көшіру ретін пайдалану арқылы сіз басқа пайдаланушының терминалында sudo құпия сөзі сұрауын көрсетуді модельдеуге болады. Егер пайдаланушы қулықты байқамай, өз құпия сөзін енгізсе, құпия сөз енгізу журналында жоқ пәрмен ретінде пайда болады (шын мәнінде пайдаланушы пәрменнің орнына өзінің құпия сөзін пәрмен жолына енгізеді). “\033[3A” // курсорды 3 жолға жоғары жылжыту “\033[K” // алдыңғы шығысты жою “a_user: [sudo] құпия сөзі:” // жалған sudo сұрауын көрсету “\033[?25l” / / "\033[38;2;48;10;36м" енгізуін жасыру үшін фон түсін орнату
Енгізілген пәрмен табылмағаны туралы ескерту берілгенде, көптеген дистрибутивтер /usr/lib/command-not-found өңдегішін іске қосады, ол жетіспейтін пәрменді қамтитын буманы анықтауға әрекеттенеді және оны орнатуға болатын-болмайтыны туралы кеңес береді. . Мәселе мынада, пәрмен табылмаған өңдеушісі іске қосылғанда, жүйеде процестерді қарау кезінде (мысалы, жойылған қызметтік бағдарламаны іске қосу әрекеті кезінде) көрінетін пәрмен жолы параметрі ретінде оған жоқ пәрмен беріледі. “xsnow”, “/usr” процестер тізімінде /lib/command-not-found - xsnow”) көрінетін болады. Тиісінше, шабуылдаушы іске қосылған процестерді бақылай алады (мысалы, болжанған PID нөмірі үшін «/proc/$pid/cmdline» пайда болуын талдау арқылы) және пәрмен жолында жәбірленуші енгізген құпия сөзді анықтай алады.
Пайдаланушыға жалған sudo шақыруына жауап ретінде құпия сөзді енгізу үшін трюк ұсынылды, оның мәні процесстер тізімінде sudo утилитасының нақты іске қосылуын қадағалау, оның аяқталуын күту және содан кейін бірден «қабырға» арқылы шабуыл жасаңыз. Қашу ретін басқару арқылы шабуылдаушы sudo нақты орындалғаннан кейін хабарды жалған құпия сөзді қайта енгізу сұрауымен ауыстыра алады. Жәбірленуші парольді енгізу кезінде қателесті деп ойлауы мүмкін және парольді екінші рет енгізіп, «команда табылмады» өңдеушісінің аргументтерінде құпия сөзді ашады.
Для успешной атаки требуется установка режима «mesg» в значение «y», которое по умолчанию выставлено в Ubuntu, Debian и CentOS/RHEL. Возможность проведения атаки продемонстрирована в Ubuntu 22.04 в конфигурации по умолчанию при использовании gnome-terminal. В Debian атака затруднена, так как в дистрибутиве по умолчанию не включён обработчик «command-not-found», а в CentOS/RHEL атака не сработает, так как утилита wall установлена без флага setgid и не имеет доступа к чужим терминалам. При использовании windows-terminal атака может быть модифицирована для изменения содержимого буфера обмена.
Осалдық util-linux бумасында 2013 жылдан бері бар, 2.24 шығарылымы қабырғадағы пәрмен жолында хабарды көрсету мүмкіндігін қосқаннан кейін, бірақ қашу ретін тазалауды ұмытып кетті. Осалдықты түзету util-linux 2.40 кешегі шығарылымында қамтылған. Бір қызығы, util-linux 2.39 шығарылымындағы осалдықты жоюға тырысқанда, басқа ұқсас осалдық анықталды, ол тілдерді манипуляциялау арқылы басқару таңбаларын ауыстыруға мүмкіндік береді.
Ақпарат көзі: opennet.ru
