Intro
Всем привет. Недавно закончил взлом малазийского сервера. Весь путь я спотыкался о подводные камни. Вот и решил все изложить. Это моя первая статья, не пинайте
Хочется поблагодарить таких ребят как:
Osstudio- за все чему научил.
BigBear- За все, чем помог.
Pashkela- За то, что ответил на мой вопрос про рут.
P.S. Pashkela, я все таки понял как! Спасибо.
Поиск SQL
Сервер был cari.com.my. Это был заказ от спамеров.
По привычке я кинул урл в acunetix, открыл ФФ и начал искать.
Искал я не с помощью кавычки (т.к. это далеко не всегда обнаруживает уязвимость), а с помощью:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]order[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]by[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]+--+[/COLOR][/COLOR]
Рандомно открыл одну из страниц, и начал действовать.
Удача была на моей стороне, и параметр
id в скрипте
c.php при запросе
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"]?[/COLOR][COLOR="#0000BB"]id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]100[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]order[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]by[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]+--+[/COLOR][/COLOR]
Любезно переадресовал меня на какой-то другой ресурс с 100 новостью.
По коже пробежали мурашки, за заказ платили много, и такая удача была редкостью.
Дрожащими руками я ввел в браузере:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"]?[/COLOR][COLOR="#0000BB"]id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]100[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]order[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]by[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]1000[/COLOR][COLOR="#007700"]+--+[/COLOR][/COLOR]
На сером фоне моего браузера красовалась черная надпись
ERROR: order by 1000 --
Я ликовал...
Раскрутка SQL
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"]?[/COLOR][COLOR="#0000BB"]id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]100[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]order[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]by[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]5[/COLOR][COLOR="#007700"]+--+[/COLOR][/COLOR]
Вываливал ошибку.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"]?[/COLOR][COLOR="#0000BB"]id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]100[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]order[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]by[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]4[/COLOR][COLOR="#007700"]+--+[/COLOR][/COLOR]
Любезно редиректил на левый ресурс.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"]?[/COLOR][COLOR="#0000BB"]id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]100[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]UNION[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]SELECT[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]2[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]3[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]4[/COLOR][COLOR="#007700"]+--+[/COLOR][/COLOR]
Переадрисация была на следующий урл:
Сообщение от
None
http://1/
С улыбкой на все лицо я ввел:
Сообщение от
None
c.php?id=100+UNION+SELECT+concat_ws(0x3a,user(),da tabase),2,3,4+--+
Редирект на адрес:
Сообщение от
None
http://guest@{IP}:forum_50
Айпишник не помню, но это дало мне понять, что мускул стоит не на этом сервере, кроме того, об этом свидетельствовал закрытый порт мускула.
Я попробовал прочитать логин пароль и хост из
mysql.user
У меня появился хэш пароля рута
Он совпадал с паролем guest.
FILE_PRIV y guest были N, но т.к. мускул стоял отдельно это мне все равно бы не помогло.
Коннект к мускулу был возможен только с конкретных ипов... Я понял, что придется залить шелл.
Вход в админку
Воткнув в хавидж адрес портала, и нажав на кнопочку
FIND ADMIN я получил адрес /admin/, но страничка выдавала 403. Я подумал, что если залогинится на сам портал под админским акком - доступ будет. И пошел искать пароль админа в базе.
Довольно быстро я вытянул хэш, это был md5(stots).
Залогинился на сервер, с гордым и довольным лицом набрал /admin/ и...
обламался! 403.
Пару часов потратил на то, чтобы найти в конфигах путь к админке.
Сообщение от
None
/admin/admincp.php
Крайне злой что есть силы уебал по энтэру...
Мне предложили ввести пароль ещё раз...
Все... я внутри.
Внутри админки
Движок был DiscuZ 7.2.
Не exploit-db.com не гугл уязвимостей не нашли.
Я начал искать, через что можно залить шелл, ну или хотя бы файл.
Пару часов поиска ничего не дали.
Обратился к друзьям, но у них тоже ничего не вышло...
Времени было уже за 2 ночи, и нужно было что-то придумывать...
Вышел покурить, на холоде мозг вошел в режим сверхпроводимости... И появилась мысль! А что если разрешить аттачить на форуме *.php ???
Да! В админке были четкие настройки аттачей. Разрешил админам аттачить пхп, зашел на форум, и залил WSO. Через скуль посмотрел адрес файла... переход... root... энтер... я в всо!
WSO
Не заморачиваясь посмотрел config.ini.php
Перешел в всо в о вкладку SQL, ввел данные, я в БД.
Сохраняя дамп на свой винт, я пил кофе и писал заказчикам, что все готово. Дал ссылку, мне перевили деньги, и я лег спать.
На следующий день я решил закрепится на сервере.
Понаделал копий всо в разных дирах, понатыкал минишелов в разных файлах. Готово. Осталось рутнуть сервер, и создать суидник.
Предварительно я в наглую заменил рекламу на портале на свою. Трафик был на столько огромен, что деньги в партнерке просто лились на щет.
Война с админом
Естественно после 23 баксов, поднятых на рекламме, пароли сменили, а мой прокси забанили. Наивные
Ответил я тем, что забанил админа, и поменял пароль на свой. Ну и рекламку вернул
На следующий день Половину моих шеллов снесли, установили грамотные права на запись.
возвращал
Нужно было рутать систему.
Ядро было 2.6.18-164.el5.
эксплоит-дб выдал сплоит от эсидбитчез. После устранения специально допущенных ошибок в сплоите, всеравно не компилилось. Спасибо Pashkela за
подсказанный способ.
r00t
Вернул все обратно, всю рекламу, все пароли и тд.
Создал суидник.
Через некоторое время залогиниватся опять перестало.
В таблице с юзерами была такая структура
Код:
uid:username:password:email:прочая инфа
А первой записью было следующее:
Сообщение от
None
Contact:me:skype_id
Я крайне удивился такой креативности.
Общение с админами
После переговоров заключили сделку.
Я помогу профиксить все уязвимости, а мне дадут денег.
За заказ оплату я уже получил, и впринципе, все было неплохо. На том и порешили.
Вобщем, вот! Моя не большая история-статья. Почему статья? Потому, что описал всю технологию, и может быть, кому-то это будет полезно.
Всем спасибо!
Ваш P1r0t3xn1k