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

Воскрешение ботнета

_1nf3ct0r_ (dr.pascal@mail.ru)

Хакер, номер #084, стр. 084-072-1


История о том, как пополняются хакерские ботнеты

Проснувшись рано в воскресенье, включив &RQ и поставив статус в инвизибл, я хотел закончить недавно начатое дело - взломать один сайт в зоне .ru, который был достаточно популярным и посещаемым. Это понадобилось мне для того, чтобы возродить потери моего ботнета, но, к сожалению, боты умирают довольно быстро :(. Включив браузер и подключив свежий анонимный прокси, я приступил к пополнению своей сети зомби-машин.

[разборки с ERROR500]

Страница быстро загрузилась и передо мной предстало меню навигации по сайту. Чтобы получить доступ к некоторым дополнительным сервисам, я зарегистрировался на сайте. Первые пять минут бесполезного тыкания по ссылкам совершенно ничего полезного не принесли. Я никогда не любил ручной поиск скриптов и решил просканировать ресурс при помощи недавно скачанного и неиспробованного пакета NRG-tools, который имел в себе функцию web-анализатора, сканирующего структуру сайта.

Сканер выдал мне кучу ссылок, и я принялся искать бажный скрипт. Некоторое время на глаза ничего подозрительного не попадалось, но вскоре я увидел очень интересный по своему виду линк - www.victim.ru/sjok.php?id=86. Ты уже, наверное, догадался, что я хотел сделать. Не буду тянуть кота за хвост и скажу, что скрипт был болен SQL-инъекцией. После проверки скрипта на данную уязвимость (www.victim.ru/sbsctl.php?id=86') была выдана следующая ошибка: INTERNAL SERVERAL ERROR 500.

Ты спросишь, причем тут SQL-инъекция? А при том, если после тестирования скрипта на баг что-то изменилось (сообщение о любой ошибке, в том числе Error 500 или тому подобное), то скрипт действительно уязвим. Мне пришлось подбирать название таблицы, составлять UNION-запросы. Первым, пришедшим мне в голову, оказался запрос следующего вида:

http://www.victim.ru/sjok.php?id=-86 UNION SELECT 0,0,0,login,password,id,0,0,0,0,0 FROM _название_таблицы_/*

Но, к сожалению, не все складывалось в мою пользу. Во-первых, я не обладал достаточной квалификацией для организации этой атаки, а во-вторых, у меня не было никаких подсказок для того, чтобы вытащить записи из БД:

1. Мне не было известно название таблицы

2. Мне не были известны названия колонок

После часа перебора названий таблиц мне захотелось найти какой-нибудь другой баг, благодаря которому я бы смог получить шелл. Но к моему огорчению, сайт не особо радовал меня обилием скриптов, а этот баг, как мне казалось, был единственным :(. На сайте крутился форум phpBB последней версии. В публичных источниках эксплойтов к нему не было, на покупку приватной отмычки у меня не было лишних денег, тем более покупать было не у кого.

Забить на такой сайт мне не особо хотелось, поэтому я решил не сдаваться. Еще раз проверил сайт на баги, но опять все безуспешно. Но это не проблема! Я немного подумал и решил заюзать атаку SiXSS.

[SiXSS в подарок!]

Что за SiXSS? Итак, поясняю. Это расшифровывается как SQL injection Cross Site Scripting - два вида атак, совмещенных в одну: SQL-инъекция для межсайтового скриптинга. Такую атаку можно осуществить благодаря тому, что SQL-запрос вида UNION SELECT может выводить произвольный текст на страницу. Если ты не знаком с данной технологией атаки, то советую прочитать статью о SiXSS в статье о продвинутых SQL-инъекциях, которую можно отыскать на www.securitylab.ru.

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