Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #81, СЕНТЯБРЬ 2005 г.

Борьба со жлобским ISP

Александр Любимов aka Sashiks

Хакер, номер #081, стр. 081-060-1


( real_sshx@mail.ru )

История взлома жадного до чужих денег провайдера

Недавно ко мне за помощью обратился один читатель. Парень рассказывал о том, что вот уже несколько лет местный провайдер честно ворует деньги с его аккаунта и выставляет зверские счета за свои услуги. Несчастный юзер послушно выкладывает ловандос за инет (ведь альтернативы нет — городок маленький и ISP там только один), в то время как некоторые («свои») пользователи провайдера обладают анлимитными акками и пользуются услугами Сети абсолютно бесплатно. Все, о чем просил бедолага,— достать эти самые безлимитные пассы, чтобы хоть немного сократить дефицит своего бюджета. Внимательно прочитав письмо, я решил помочь.

[преступление и наказание]

Взлом любого ISP — довольно рискованное и неблагодарное занятие, ведь большинство провов содержат нехилый состав специалистов, техников и крутых сисадминов. Поэтому настоящий хак провайдера (а не кража pwl'ок через шары) дело нелегкое, и я бы, наверно, ни за что не согласился бы откликнуться на отзыв неудачливого чела, если бы не посчитал это правильным. Суди сам, ведь втихую снимать деньги с баланса пачками в корне неправильная политика, и это по сути незаконно — обдирать народ. А любое преступление должно быть наказано. По-своему. В этот раз я решил выступить в роле некого правосудия. Моя задача была довольно тривиальна — получить доступ к серверу и проникнуть в базу биллинговой системы (хы, он сказал тривиальная :). Если честно, зачем я пошел на это дело я не знаю, ведь кроме того что я мог нажить себе кучу неприятностей от провайдерского суппорта, я ничего не получал. Ну да ладно, к черту мелочи, пора приступать к активным действиям :).

[за огненной стеной]

Получив адрес сайта цели я не мешкая запустил с шелла nmap. Пока сканер делал сове грязное дело я решил взглянуть на сайт V.I.S.P.'а (это название провайдера). Главная страница выглядела довольно прилично, все было на своем месте — тарифы, статистика, веб-интерфейс к мылу, гостевая книга, ссылки. Были даже чат и форум (не надо так улыбаться — это не phpBB 2 :)) – они стали первыми претендентами на тщательное обследование. Прошло уже несколько минут и nmap, скорее всего, уже закончил свою боевую разведку. Но не тут то было! Сканер упорно молчал довольно долгое время. Либо это сетевая IDS на сервере, либо хорошо настроенный файрвол, а может и то и другое. Данное суждение ни как не могло радовать, поэтому чтобы убедиться что же такое в конец концов мешает скану, я решил телнетом опробовать несколько стандартных портов. Большинство демонов молчали и надпись "Connection Refused" не появлялась — значит сервер таки охранялся файрволом. А значит далее копать эту тему не стоит, и на сервисы, которые крутились на машине я решил забить. Ладно, значит пора вернуться к вебу. Перед тем как ковырять чат с форумом неплохо было бы заглянуть в гостевую. Отзывов было немного, в основном от админа, который восхищался своим чудесным сайтом :). Мое внимание привлекла адресная строка в браузере «index.php?page=gb/guestbook.php». С виду напоминает любимый всеми including. Попробовав подставить в параметр page незабвенную строку ../../../../etc/passwd получил сообщение о том что в ссылке присутствуют недопустимые символы. В итоге выяснилось что скрипт жестко контролировал вхождение «точки» и «слэша» в имя файла, а это значило что от инклуда сценарий был защищен надежно. Между тем замечу, что в этой истории таких ситуаций будет много, когда, казалось бы, уже найден известный баг и его реализация, но на самом деле все намного сложнее и чтобы решить задачу нужно подойти к ней нестандартно, не так как обычно. А теперь приступим к ковырянию чата. Зайдя по линку в чат я сразу же узнал в нем довольно популярный движок Sp-Chat, которые молодые web-мастеры часто используют в своих проектах. Довольно странно, ведь в письме чел сказал, что, цитирую «техобслуживание у них не хилое и спецов не меняют». Хм, может под «техобслуживанием» имелись ввиду не навороченные web-мастеры, а профессиональные технички с ВО и красными дипломами :). Хотя, чего греха таить, в одно время я и сам использовал Sp-Chat на одном из своих проектов, и поэтому отчетливо помнил, что пароли юзеров можно было подсмотреть в одном из файлов. Я конечно не помнил, были ли они в plain тексте или нет, но знал наверняка что, так или иначе, доступ к ним получить возможно. А если в чате тусуется сам администратор, то можно заполучить заветный логин:пароль, правда пока неясно к чему, ведь доступ к машине был наглухо зафильтрован файрволом, а админский интерфейс к сайту я пока еще не нашел. Впрочем, сейчас это не так уж важно. Первым делом нужно было достать сорцы чата. С песней я отправился на www.woweb.ru и в разделе скрипты->PHP->Чаты нашел нужный нам движок, благо версии у них были идентичны: 2.21. Скачав архив я принялся тщательно изучать сорцы. Первым делом меня интересовал доступ к папке data/users (как я предполагал, там и находились параметры учетных записей юзеров) и файлу chat_db. Но в папке data лежал .htaccess который, по идее, запрещал доступ к любому элементу каталога. Тут я ненадолго замешался, но решив, что «была не была», все же ввел в браузер «www.visp.com.ua/spchat/data/users». Мне повезло, и в Опере отобразился листинг всех юзеров чата (то есть, файл .htaccess не работал и апач разрешал мне свободно просматривать папку с информацией о пользователях). Был, правда, один минус – я не мог прочесть ни одного файла, потому что не учел что инфа храниться в формате php-кода и соответственно, web-сервер просто выполнял эти сценарии, не показывая мне кода :).

Содержание  Вперед на стр. 081-060-2