Оранжевая революция Sashiks (lubimovv@inbox.ru) Хакер, номер #076, стр. 076-048-2 Подключившись с этой оболочке, я решил осмотреться в системе. Как я уже сказал, в системе мои права были, собственно говоря, никакими (nobody) и поэтому первая моя цель заключалась в том, чтобы получить статус какого-то активного системного пользователя, и в дальнейшем поднять рутовые привилегии. Первая команда "uname -a" уже ничего хорошего не светила - ядро было новой версии 2.6.10, и уязвимо только для недавно вышедшего эксплоита elf_lbl (www.web-hack.ru/exploit/source/elflbl_v108.c). К сожалению, собрать эту отмычку удается не на всех машинах и именно на данной системе сплойт не давал ожидаемого эффекта :(. Сначала я немного расстроился, но пока что не думал сдаваться. Первое что пришло на ум - пропарсить доступные на чтение файлы, в которых пользователи, возможно, записали пароли. Но найти ничего не удалось, интересно, что на винте находилось много папок с домашними страничками разных фирм и организаций. Оказывается, я ломал сайт не какой-то убогой организации, а целого хостера. Подняв ifconfig я увидел, что на машине стоит 3 адаптера (хотя два из них функционировали в пределах одной сети). Решено было запустить nmap в бэкграунде (к счастью для взломщика была установлена не самая старая версия). Пока сканер работал, я продолжал свою миссию. Решено было просмотреть логи Апача. Уж что-что, а хоть это доступно для чтения. Скомандовав "cat /path_to_apache_logs/access_log.x|grep pass |", я ожидал получить все строки из логов вебсервера, где есть вхождение “pass” и не прогадал, уже в четвертом журнале я наткнулся на такую запись: ?auth=1&login=morda&password=%27%2Cblabla%2Cf%27 Конечно, была вероятность, что лабуда, идущая после password, подойдет в качестве системного пароля к учетной записи morda. Но сначала надо было эту строчку перевести к стандартному виду. Делается это элементарной php-функцией urldecode(), которой передается декодируемая строка. Так я получил предполагаемый пароль и, скрестив пальцы, попробовал подключиться по ssh на сервер. И что я увидел? Hacker inside Нет, меня не послали нафиг надписью "Authentiсation failed"! Передо мной появилось стандартное приглашение bash, и это означало, что теперь у меня есть доступ к системе из-под полноценного пользователя morda. Примечательно, что команда cd ~ возвращала не в /home/morda а на каталог выше. Папки чужих юзеров просмотреть не удалось, поэтому я перешел директорию morda. В папке находились только наброски web-страничек, SP2 на винду, какие-то прайсы. Не нашлось .bash_history - он попросту отсутствовал. Помнишь, я наткнулся на каталог с сайтами различных организаций? Так вот некоторые из них принадлежали юзеру morda. Перед исследованием /home/httpd (именно там лежали странички), я залил в папку /tmp/.backup брутфорсер hydra с официального сайта www.thc.org. И конечно солидный словарь (русские слова в английской раскладке). Оставалось собрать список пользователей с валидным шеллами. Как водится, на хостинге было много учетных записей, у которых интерпретатора не было и мне нам были совершенно не нужны. Я заюзал скрипт, который и доставал учетные записи, элементарный код которого приведен на врезке. Я добыл имена пользователей и натравил гидру на локальный FTP в надежде получить еще какие-либо пассы. Причем замечу, что скрипт записывает пару логин : логин, что удобно только в том случае, если надо быстро (обычно удаленно) подобрать пароль. Это особенно эффективно, когда в passwd храниться много учетных записей. Ведь та же гидра с опцией -e n s подбирает пароль равный логину, и "пустой" пароль. Впрочем, можешь использовать перловый скрипт Форба, они аналогичны в этом :). |