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

ЖивоЖурнальная атака

Master-lame-master

Хакер, номер #075, стр. 075-044-3


Повторно залив картинку, я опять переименовал ее в cmd.php. Теперь я мог передавать скрипту атрибут, который впоследствии интерпретировался как команда. Все работало, но меня очень напрягало каждый раз сливать код скрипта в консоль либо сохранять результат команды во временном файле. Я просто отправил запрос на скачивание отдельного PHP-файла, обладающего полноценными возможностями выполнения команд. Мое творение я сохранил под именем test.php и теперь уже без всяких извращений использовал его в корыстных целях.

Для того чтобы выполнить заветную просьбу Бублика, мне нужно было выцепить из базы аккаунт Хинта. Но для этого необходимо знать логин и пароль к БД. Как подобает обученному гражданину, я был уверен, что ссылка на конфигурационный файл находится в исходниках index.php и прочих сценариев. Бегло просмотрев шапку индексного сценария, я нашел линк на файл inc/main.php. Радостно представляя реакцию Хинта на мой пост от его ника, я скомандовал, чтобы скрипт прочитал конфиг main.php. Но не тут-то было! Как выяснилось, каталог inc, как и все вложенные файлы, мог читаться только пользователем ljcomua и группой ljcomua. Расклад был не из лучших, но я даже не думал сдаваться. Одна из самых первых команд, отправленная серверу, была uname –a. Сервер находился под управлением достаточно сырого ядрышка 2.6.7, для которого было выпущено около пяти действующих эксплойтов. Один из них позволял менять групповой идентификатор на произвольном файле или каталоге. То есть, например, если файлом владеет пользователь root и группа root, то с помощью эксплойта хакер легко сможет поменять группу этого файла на свою.

Залив файл raptor_chown.c с помощью wget, я без труда его скомпилировал. Затем запустил с параметром /home/ljcomua/public_html/inc и убедился в работоспособности хакерского творения. Действительно, вместо предыдущей записи атрибутов ljcomua:ljcomua я увидел ljcomua:nobody. Теперь никто не мешал мне прочитать все конфиги движка рунетового ЖЖ.

Открыв main.php, я обнаружил там ссылку на еще один файл под названием values.php. Именно там я нашел четыре заветных переменных: sqlhost, sqluser, sqlpass и sqlbase. Пароль ничем не был зашифрован, так что никто не мешал мне подсоединиться к удаленному сервису mySQL. Вначале я попробовал сделать это через мой любимый шелл, но по какой-то загадочной причине я не смог увидеть ни одной базы. Видимо, настройки прав доступа позволяли просматривать содержимое баз данных лишь с локалхоста. «Ну с локалхоста, так с локалхоста», - подумал я и попытался натравить локальный MySQL-клиент на 3306 порт. Но опять меня ждали какие-то ошибки в параметрах. Отчаявшись, я просто попробовал задампить таблицу users базы $sqlbase. На этом шаге все прошло без ошибок – база успешно слилась в локальный файл users.sql.

Теперь мне оставалось слить дамп заветной таблицы к себе на диск и перегнать его в формат MySQL. Как только все было сделано, я ввел в клиент запрос select * from users where username=’h1nt’ и получил всю информацию о Хинте. Пароль был оформлен в виде MD5-хэша, но это не означало, что всю свою оставшуюся жизнь я буду расшифровывать продвинутый пассворд CD-редактора :). Скрипты lj.com.ua могут проводить аутентификацию как по обычному, так и по шифрованному паролю. Поэтому я без проблем сумел залогиниться под аккаунтом Хинта и отправить заранее подготовленное сообщение. Но мой план с треском провалился. Все потому, что на очередной пьянке с Бубликом Хинт поставил на его компьютер умный снифер и перехватил нашу переписку с редактором рубрики PC-ZONE. Прознав, что его задницу подвергают опасности, он быстро поменял пароль на главный ресурс Живого Журнала. В связи с этим сервер и вернул ошибку аутентификации на livejournal.com.

Назад на стр. 075-044-2  Содержание  Вперед на стр. 075-044-4