Университетский хак Александр Любимов aka Sashiks Хакер, номер #079, стр. 079-050-4 [миссия невыполнима] Надо было как-то спасти ситуацию. Нужна была хоть какая-то зацепка. Я выполнил cat /etc/passwd|grep bash и увидел, что юзеров с bash-оболочкой было только двое, не считая root'а. Вообще-то в passwd было много пользователей, но у большинства у них был только ftp-доступ к машине. Я присмотрелся к их директориям, которые по большей части находились в /var/www/vhosts. В каталоге было множество сайтов (именно те самые страницы кафедр, что располагались на главной странице университета), и среди них была очень интересная папка logs. В ней жило нереальное количество апачевских логов по всем хостящимся на машине сайтам. Перебирать их все вручную — самоубийство, поэтому я за две минуты написал вот такой вот скрипт: [скрипт-парсер логов] #!/usr/bin/perl $dir="/var/www/vhosts/logs"; opendir(DIR,$dir); @a= readdir DIR; foreach(@a){ print "Viewing $_ ... \n"; system("cat $dir/$_ |grep pass >>/tmp/grepped.txt"); } print "Done \n"; Он считывает все файлы из папки с логами, парсит каждый на наличие строки «pass». Рекомендую прибегать к его услугам, когда требуется пересмотреть множество лог-файлов на наличие нужной строки и при этом не потерять время и рассудок :). Все «грепанутые» строки сохранялись в файл grepped.txt в темпе. «Собственно, почему ты решил просматривать апачевские журналы?» — спросишь ты. А все потому, что в журналах есть очень много интересных записей httpd-демона. Вот смотри: ты обращаешься к серверу www.sobakoff.net/pots.php и думаешь, что останешься безнаказанным :). Не тут-то было. В этот момент на стороне сервера все запросы сохраняются в файл (обычно access.log). Таким же образом, если во время выполнения запроса произошла ошибка (например: pots.php — нет такого файла на сервере!), то результат аналогичным образом старательно записывается в error.log. Вот так в лог-файлы могут попадать различные интересные записи, например пароли от админок или другая ценная для нас информация. Поэтому одной из важных задач при проникновении на сервер является просмотр журналов http-демона. Итак, я запустил парсер логов и тупо втыкал в экран, по которому быстро побежали строчки, свидетельствовавшие о том, что проходит проверка журналов. Судя по размеру grepped.txt, ночь предстояла долгая и, без сомнений, веселая :). [победа за нами] Утро следующего дня. Я просмотрел по диагонали два лог-файла общим размером в 8 Мб и узнал о сервере очень много интересных подробностей, но, к сожалению, рутового пароля среди полученных не оказалось. Я пробовал парсить конфиги с другими параметрами, но так ничего ценного и не выудил ;(. Выход напрашивался один: нужно запустить брутфорсер и натравить его на ftp-сервер, чтобы поднять полноценный акк на сервере. Я закачал на сервант гидру, записал валидные учетные записи, загрузил несколько больших словарей и запустил подбор аккаунтов для локального FTP. Это довольно бронебойный прием: скорость локального брута достигает огромных значений. Стоит ли говорить, что я доковырял сервер довольно быстро :). |