|

BugTraq #5
Xakep, номер #042, стр. 042-008-3
sidex@katerina:ttyp3:~> ps -u12345
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
xakep 12345 0,0 0,0 1388 0 p6 IWsJ - 0:00,00 -tcsh (tcsh)
С не меньшим успехом обозреваются и принадлежащие root'у процессы. Пример аналогичен. Интереснее же то, что просмотр реализуется и прибавлением лишь классического axu, так что:
xakep@meat:ttyp3:~> ps axu
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
xakep 45853 0,0 0,1 428 272 p3 R+J 18:53 0:00,00 ps axu
root 515 0,0 0,3 1744 600 ?? SsJ 9:26 0:19,97 screen
xakep 1020 0,0 0,0 1404 0 p2 IWsJ - 0:00,00 /bin/tcsh
xakep 1025 0,0 0,9 3996 1672 p2 S+J 9:26 0:51,67
/usr/local/bin/irs
Итого, общая форма для натягивания: ps -<аргумент><PID>. Уже из первого примера понятно, что все получается и вовсе без указания аргумента. Патча замечено не было.
Локальный DoS и взятие root'a OpenBSD
BT id 4708
Класс - ошибка условий
Тип эксплойтинга - локальный
Дата - 09.05.02
Автор - FozZy fozzy@dmpfrance.com
Только редкий лентяй не пытался применить баг FreeBSD по теме файл-дескрипторов, случившийся в апреле, в проекции на другие BSD-клоны. Поддавшись стадному инстинкту, я сам безуспешно пытался взять OpenBSD и NetBSD-системы. Почему не удалось поroot'ить Net - было не совсем понятно (техническая неграмотность автора ;). Open же не поддался, т.к., начиная с 98 года, ядро системы успешно справляется с проблемой: в функции execve, когда файл-дескриптор 0,1 или 2 закрывается, стартует новый, позволяя уже в относительной безопасности запустить setuid'ную программу.
Но, как водится, свято место - пусто не бывает, и французские хакера-умельцы придумали "способ лучше", и теперь ты можешь заDoS'ить нелюбимый, но не пропатченный сервант или даже взять там r00t'a. Из пометки "баг локальный" понятно, что потребуется локальный юзерский доступ, можно без включения в wheel-группу. Обвал системы реализуется за счет отсутствия в системе лимита на число введенных дескрипторов. Т.е. просто нет параметра подобного ограничению на число запущенных процессов. В итоге, злодей может без особых проблем зафлудить таблицы дескрипторов: запущенный процесс создает канал в системе, а сам канал уже оборачивается двумя уникальными дескрипторами. Вполне понятно, что даже при установленном лимите на число процов, крякер сможет просто запускать процесс и сразу его убивать, заливая новую дозу в таблицу. На определенном этапе автоматизированного повторения операции даже root не сможет дать простейшую команду типа "ls", т.к. будет наблюдать надпись "Two many opened files in system" или "No ld.so". Также в потенциальной опасности находятся уже запущенные процессы. Не исключается возможность реализации DoS'a и удаленно, хотя к моменту написания сих строк успешного прецедента не получилось.
Назад на стр. 042-008-2 Содержание Вперед на стр. 042-008-4
|